24小时热门版块排行榜    

查看: 587  |  回复: 5

ThomsonW

铁虫 (初入文坛)

[求助] matlab 已有2人参与

我需要解一个非线性三元方程组,见图片。其中P&/P=0.1/3,m=50,k1=6.7
,k2=5.56E+13,k3=1.24E+11。编辑的matlab程序如下,可出现了些问题,我不知道怎么回事?求高人指点
function dd
x0 = [0.01  0.4  0.2]';
x = fsolve(@NonlinEqs,x0);
%               
function f = NonlinEqs(x);
tmp= 50 - 2*x(1) - x(2) - x(3);
f(1) =(51-x(1))*(x(1)-x(2))*(x(1)-x(3))*0.1/(3*(1-x(1))*tmp^2) -6.7;
f(2) = x(2)*(x(2)+x(3))/((x(1)-x(2))*tmp) -5.56E+13;
f(3) = x(3)*(x(2)+x(3))/((x(1)-x(3))*tmp) -1.24E+11;
计算结果如下:
>> dd

No solution found.

fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared, but the vector of function values
is not near zero as measured by the default value of the function tolerance.

<stopping criteria details>


fsolve stopped because the relative norm of the current step, 6.778107e-013, is less than
max(options.TolX^2,eps) = 1.000000e-012. However, the sum of squared function values,
r = 3.091375e+027, exceeds sqrt(options.TolFun) = 1.000000e-003.

Optimization Metric                                               Options
relative norm(step) =  6.78e-013                max(TolX^2,eps) =  1e-012 (default)
r =  3.09e+027                                    sqrt(TolFun) = 1.0e-003 (default)

我不知道上面说的是怎么回事,求高人帮助!!!!!!
matlab
CIYO$ZU85C~TZ2%NP599D0Q.jpg



[ Last edited by ThomsonW on 2014-3-10 at 21:00 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

AV兄

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
ThomsonW: 金币+1, 有帮助 2014-03-11 08:52:58
x0 = [0.01  0.4  0.2]';  
这句话后面有个撇号  去掉试试  我也是新手  呵呵
欢迎光临我的 AI 社区 http://keepdl.org
2楼2014-03-10 22:47:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
ThomsonW: 金币+10, ★★★很有帮助 2014-03-11 08:52:44
看你跑完程序的提示,求解采用的算法应该是信赖域折线(狗腿)法。程序在你给的初值的情况下开始迭代,发现迭代步已经缩小到阈值以下,目标函数仍未收敛。你可以改用LM算法试试,或者改变初值,或者检查下你的函数模型。

[ 发自手机版 http://muchong.com/3g ]
3楼2014-03-11 00:52:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ThomsonW

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by 戴钢盔的猪头 at 2014-03-11 00:52:18
看你跑完程序的提示,求解采用的算法应该是信赖域折线(狗腿)法。程序在你给的初值的情况下开始迭代,发现迭代步已经缩小到阈值以下,目标函数仍未收敛。你可以改用LM算法试试,或者改变初值,或者检查下你的函数模 ...

嗯,解非线性方程组一般就是用fsolve函数,LM算法我不懂、、、
4楼2014-03-11 08:52:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ThomsonW

铁虫 (初入文坛)

引用回帖:
3楼: Originally posted by 戴钢盔的猪头 at 2014-03-11 00:52:18
看你跑完程序的提示,求解采用的算法应该是信赖域折线(狗腿)法。程序在你给的初值的情况下开始迭代,发现迭代步已经缩小到阈值以下,目标函数仍未收敛。你可以改用LM算法试试,或者改变初值,或者检查下你的函数模 ...

主要就是解图片中的方程组x1,x2,x3.其它字母都给有值,求指点!!!
5楼2014-03-11 08:54:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
ThomsonW: 金币+19, ★★★很有帮助 2014-03-15 12:38:24
引用回帖:
5楼: Originally posted by ThomsonW at 2014-03-11 08:54:57
主要就是解图片中的方程组x1,x2,x3.其它字母都给有值,求指点!!!...

fsolve是个集成的函数,具体的求解算法可以选择,默认的好像就是信赖域折线,你先help一下这个函数。

[ 发自手机版 http://muchong.com/3g ]
6楼2014-03-11 15:09:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ThomsonW 的主题更新
信息提示
请填处理意见