solve求解非线性方程组一问
solve函数中的一些数值是不是不能用变量来取代啊?例如:
function tty
a=5;
b=3;
c=solve('x1+x2=a,x1*x2=b')
d=c.x1(2)
怎么输出的表达式是:
d =
1/2*a+1/2*(a^2-4*b)^(1/2)
是用a和b来表示的?
小弟初学matlab,还望高手指点,谢谢 c=solve('x1+x2=a,x1*x2=b')
计算完之后
c.x1和c.x2分别表示x1和x2的解 可是我还要利用求解得到的结果来构建另外一个方程组,上面举的例子只是想把求解得到的一个结果赋值给d,为什么出来之后却是用字母表示的,字母a和b我已经赋值了啊:
m文件:
function tty
a=5;
b=3;
c=solve('x1+x2=a,x1*x2=b')
d=c.x1(2)
运行结果:
c =
x1:
x2:
d =
1/2*a+1/2*(a^2-4*b)^(1/2) solve是符号运算的
换fsolve 谢谢happy,可是我觉得fsolve对初值要求太严格了,计算结果远不如solve精确啊 那就自己找一个精度高、计算快的算法写个小程序,不一定要用现成的
另外如果规模比较大,不建议用matlab
页:
[1]