全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
8954 6
2012-04-13
用matlab求非线性方程组的解,但是求得的解代入第2、3、4个方程后,其方程都不等于0,为什么?



第一步,myfun.m如下:
function F = myfun(x)
F=9.1-(6.02)*(1+x(2)*exp(4*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(4*x(3)));
14.2-(16.82)*(1+x(2)*exp(14*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(14*x(3)));
8.4-(44.02)*(1+x(2)*exp(22*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(22*x(3)));
10.4-(127.39)*(1+x(2)*exp(32*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(32*x(3)));
第二步:
x0 = [1;1;0.01;1];
options=optimset('Display','iter');
[x,fval] = fsolve(@myf,x0,options)  % Call solver

结果为:
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt
algorithm instead.
> In fsolve at 314

                                        First-Order                    Norm of
Iteration  Func-count    Residual       optimality      Lambda           step
     0           5           82.81             161         0.01
     1          10         1.17548            23.6        0.001       0.513936
     2          15       0.0031149            1.14       0.0001      0.0342564
     3          20    2.61253e-008          0.0033       1e-005     0.00195934
     4          25    1.85746e-018       2.78e-008       1e-006   5.70737e-006
     5          30    3.15544e-030       3.62e-014       1e-007   4.81251e-011

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.

<stopping criteria details>


x =

    1.0116
    1.0057
    0.0328
    1.4889


fval =

  1.7764e-015

第三步:代入第二个方程
r2=(16.82)*(1.0057+1.0057*exp(14*0.0328))*(1.4889^1.5-1)/((1.0116*1.0057)*exp(14*0.0328))

r2 =

   22.1604

根据第二个方程这个值应当是14.2。所以有问题?为什么呢?

谢谢了












二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-4-13 20:14:47
是不是表达式写错了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-13 20:34:25
能具体点儿吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-14 09:32:47
F should be a vector function....
function F = myfun(x)
F=[ 9.1-(6.02)*(1+x(2)*exp(4*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(4*x(3))); ...
14.2-(16.82)*(1+x(2)*exp(14*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(14*x(3))); ...
8.4-(44.02)*(1+x(2)*exp(22*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(22*x(3))); ...
10.4-(127.39)*(1+x(2)*exp(32*x(3)))*(x(4)^1.5-1)/(x(1)*x(2)*exp(32*x(3))) ];

But, still not solvable!
Check your expression
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-14 22:25:46
根据jyliao的建议,成功求解,谢谢!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-14 22:26:37
能推荐一本书吗?中英文均可!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群