东南小忽悠 发表于 2011-7-13 16:37

解非线性方程组收敛不了怎么解决。

function x=maafun1
format long
x0 = ;
options=optimset('MaxFunEvals',200000,'MaxIter',600000);
= fsolve(@f,x0,options) ;
function F=f(x)
k=5000
ga=19475
ei=415019052
p=20000
h=172-20000/k
ae=0
ea=200000*796.497
a=(p*(p+ga)/ei/ga)^0.5
b=ga/(ga+p)
c=1000
hc=2
F =[k*x(2)-ea*(((h-ae-x(2))^2+(x(1))^2)^0.5-h)/h*(1/(1+(x(3))^2))^0.5;
x(1)-(h-ae-x(2))*x(3);
(x(4)*(1-cos(a*h))-c*h)/p+(p*(c-k*x(2)*x(3))+ga*c)*sin(a*h)/(ga*a*p)-x(1);
(c*cos(a*h)/p+a*b*x(5)*sin(a*h)/p-c/p)-x(7);
c*cos(a*h)/p+(k*x(2)*x(3)*(1-cos(a*h))*p-(ga+p)*c+a*ga*x(4)*sin(a*h))/(ga+p)/p-x(7);
-x(5)*cos(a*h)/p+c*sin(a*h)/a/b/p+x(5)/p-c*h/p-x(6);
x(4)+x(5)-c*(h+hc+h)-p*x(8);
x(1)+x(6)+x(7)*hc-x(8)]


解一个多元非线性方程组   'MaxFunEvals',200000,'MaxIter',600000迭代次数已经取得非常大了,但是还是收敛不了。我这方程检查过很多遍不会错的。请问要怎么解决。希望高手给予帮助,谢谢。
结果如下:F =

-0.00196998854290
-0.11934246867301
   2.67324300248162
-0.04637127539383
-0.04497784503437
   2.38019764407663
-0.01351242000237
14.04077335942650

Maximum number of function evaluations reached:
increase options.MaxFunEvals.

ans =

1.0e+005 *

-0.00013232140533
   0.00000519156024
-0.00000078294316
-2.46425742461584
-2.75264386385792
-0.00015561707175
-0.00000074942350
-0.00042984506407

ChaChing 发表于 2011-7-13 22:29

1.以前没有相关经验, 又没太多时间去试, 抱歉
2.大约瞄了下LZ的主题, 好像都是类似的东西
3.感觉LZ没把相关的式子/背景列出, 可能有经验的人较不愿意出手

东南小忽悠 发表于 2011-7-14 08:55

回复 2 # ChaChing 的帖子

式子背景较为复杂,一时半会也说不清。是一个力学问题
就是根据本构关系,几何关系,平衡关系。得出来的。
其中的3,4,5,6式是由微分方程解出来的。已验证过不会有错。

帮我想想看还有什么办法

LS很热心,表示感谢{:{51}:}

dingd 发表于 2011-7-14 09:08

用1stOpt得到的一组结果:
x1        -0.541506717377644
x2        337.780291226606
x3        0.00318946358946136
x4        468459.791578956
x5        1080718.99003213
x6        60.6845552283401
x7        0.207945340129349
x8        60.5589390805543

东南小忽悠 发表于 2011-7-14 09:50

回复 4 # dingd 的帖子

估计是有两组解吧,条件没限制好   h-ae-x(2)这项必须是大于0的。

1stOpt 软件我以前下过,盗版的好像用不了。。。
{:{19}:}
页: [1]
查看完整版本: 解非线性方程组收敛不了怎么解决。