关于MATLAB符号运算的问题如何用Matlab解带参数的方程组?比如下面:1.2*x+y=4;2.x+y=3;但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];这个时候我尝试用solve求解:eq1='a(1)*x+a(2)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 20:11:39
关于MATLAB符号运算的问题如何用Matlab解带参数的方程组?比如下面:1.2*x+y=4;2.x+y=3;但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];这个时候我尝试用solve求解:eq1='a(1)*x+a(2)

关于MATLAB符号运算的问题如何用Matlab解带参数的方程组?比如下面:1.2*x+y=4;2.x+y=3;但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];这个时候我尝试用solve求解:eq1='a(1)*x+a(2)
关于MATLAB符号运算的问题
如何用Matlab解带参数的方程组?
比如下面:
1.2*x+y=4;
2.x+y=3;
但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];
这个时候我尝试用solve求解:
eq1='a(1)*x+a(2)*y=4;
eq2='b(1)*x+b(2)*y=3;
syms x y;
[x y]=solve(eq1,eq2,x,y);
x y返回的值是不对的,有几个问题:
1.如果在solve中指定变量x y(如上面一样)就得不到结果,如果不指定变量(删除solve中最后两项),就可以得出结果,这个区别在哪里?
2.如果不指定变量会得到一个x y关于a b四个元素的表达式,这个时候为何用subs(x) subs(y)还是表达式的形式,而不是数值?并且用double(subs(x))会报错,但是用eval(x)就可以得到数值结果,请问MATLAB在操作表达式的时候将a(1)这样的元素当成了一个新变量的名字了吗?何时subs(x)可以得到实际的数值,何时需要double(sbus())?
还有关于MATLAB符号运算的书能不能推荐一本啊?

关于MATLAB符号运算的问题如何用Matlab解带参数的方程组?比如下面:1.2*x+y=4;2.x+y=3;但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];这个时候我尝试用solve求解:eq1='a(1)*x+a(2)

1、MATLAB的符号运算是借助于其它符号运算内核完成的,2008a之前是用Maple,2008b之后用MuPad,不同版本对符号运算的具体支持可能存在差别,例如,你说的第一个问题,我在6.5和2007b、2013a等几种版本下测试,用这两种写法都可以得到相同的结果:

[x y]=solve(eq1,eq2,x,y)
[x y]=solve(eq1,eq2)

所以,谈到符号运算的问题时,最好说明自己使用的版本,以便有针对性地解决.

 

至于说两种写法的区别,前面一种指定把哪个变量作为未知数,后一种写法由符号运算内核自动确定,对于x、y、a、b这样的四个变量而言,两种写法没有区别.

 

2、subs和eval这两个函数的最主要区别是,subs适用于结果中仍然存在符号量的情况,得到的结果一般是解析表达式,而eval则适用于结果是具体的数值的情况,不能再含有未知量.

 

就实际测试的结果看,几种版本用eval都可以得到相同的结果,但用subs的情况则有差别:6.5和2007b会导致出错,而2013a不报错,但得到的结果中仍然有a(1)等符号.这一点也许正意味着,MATLAB可能真的将a(1)这样的元素当成了一个新变量的名字.

 

3、其实用符号运算解方程,比较合理的做法是先定义符号变量,然后用符号变量(而不是用字符串)写方程:

a=[2 1]; b=[1 1];
syms x y;
eq1=a(1)*x+a(2)*y-4;
eq2=b(1)*x+b(2)*y-3;
[x, y]=solve(eq1,eq2,x,y)

这段代码在各种版本下都能正确运行,而且得到的结果无论用subs(x)、double(x)还是eval(x)都可以转换为数值.

关于MATLAB符号运算的问题如何用Matlab解带参数的方程组?比如下面:1.2*x+y=4;2.x+y=3;但是如果系数阵里面的元素是由另外一个变量的来的,即a=[2 1]; b=[1 1];这个时候我尝试用solve求解:eq1='a(1)*x+a(2) matlab符号运算问题请问怎样才能求出x关于h的表达式? 如何用matlab实现两个函数的卷积运算 matlab中如何解决整数规划问题关于供应链设施选址问题的《容量无限制成本固定模型》,如何用matlab解决 如何用MATLAB处理线性规划问题 如何用matlab解决百钱百鸡问题 如何用matlab绘制matlab的标志 乘方如何用数学符号表示?乘方是如何运算的?乘方如何用数学符号表示?乘方是如何运算的?老师叫查的. 关于matlab符号计算的问题:已知位移s对于时间t求导为速度v,速度v对于时间t求导为加速度a,已知公式y=s^2*v^2,如何用matlab来计算y对于时间t的导数?(上面只是一个跟我需要做的相似的一个例子, 的 如何用符号表示 5个4如何用数学符号运算等于16 8,8,10,3如何用运算符号等于24 请教高手::一个 用matlab计算组合数 的问题matlab如何用公式或函数求图中简单问题! MATLAB中 符号运算的小问题如题,我有两个小问题:1、syms x sf=x^5+3*x^4+4*x^3+2*x^2+3*x+6x=(s-1)/(s+1)如果我想输出f(s)怎么办?(即,如何用简单一点的方法把x=(s-1)/(s+1)带入到第二行中)2、不用循环 数据库基础问题,关系代数的基本运算有哪些,如何用这些基本运算表示其他运算? 如何用matlab 算行列式的值? 如何用matlab画隐式方程的图像? 如何用matlab求一亿内的素数?