24小时热门版块排行榜    

查看: 201  |  回复: 1
当前主题已经存档。

kele888888

金虫 (小有名气)

[交流] [求助]懂MATLAB解非线性方程组得虫虫近来看一下~

3个方程,3个未知数为x, y ,z
K1,K2,K3,a 分别为常数;.

编如下程序求解:

clear
clc
syms  x y z a k1 k2 k3;
expr1 = '(4*x+y-3*z)^4*(2*x-y-z)^2-k1*(1/(a+1)-x)*(a/(a+1)-x-y+z)*(1+4*x-2*z)^4';
expr2 = '(4*x+y-3*z)*y-k2*(2*x-y-z)*(a/(a+1)-x-y+z)';
expr3 = 'z*(a/(a+1)-x-y+z)*(1+4*x-2*z)^2-k3*(2*x-y-z)*(4*x+y-3*z)^3';
fun1 = subs(expr1,{a,k1,k2,k3},{1,1,1,1});
fun2 = subs(expr2,{a,k1,k2,k3},{1,1,1,1});
fun3 = subs(expr3,{a,k1,k2,k3},{1,1,1,1});
s=solve(fun1,fun2,fun3);
result=[s.x,s.y,s.z];

当a,k1,k2,k3取值如:{1,1,1,1,}可以算出解;当当a,k1,k2,k3取值如{3,21000,12,18255}时,怎么结果如下:

Warning: Explicit solution could not be found.
> In D:\Program\matlab\toolbox\symbolic\solve.m at line 133
  In D:\Program\matlab\toolbox\symbolic\@sym\solve.m at line 49
  In D:\Program\matlab\work\zyh.m at line 10
??? Access to an object's fields is only permitted within its methods.

Error in ==> D:\Program\matlab\work\zyh.m
On line 11  ==> result=[s.x,s.y,s.z]

是不是意味着没有解呢?而且解一个要30分钟(CPU 是T7300 ),太慢了。
可是按理应该有解啊?用fsolve 程序是不是可以求解(不太会用 ),而且更快??能帮忙解决一下吗?20个金币相谢!急!

[ Last edited by kele888888 on 2008-9-16 at 13:28 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kele888888

金虫 (小有名气)

有高手能帮忙看一下吗?
2楼2008-09-16 14:32:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kele888888 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见