中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 1012查看
  • 1回复

求解matlab非线性方程组

[复制链接]


该用户从未签到

发表于 27-6-2011 20:22:48 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


请大侠们帮忙看看,这是我的mfile

function y=myfun(x)

a=0.020;
b=0.024;
r=0.001;
aa=35;
L=0.300;
n=16;
S=L/sind(aa);

R=b+2*r;
At=pi*(b^2-a^2);
Ah=pi*r^2;
Eh=206000000000;
Gh=79000000000;
Et=7840000;
v=0.47;
I=pi*r^4/4;
J=I*2;
F=500;

%12个方程组解12个未知数
y(1)=F-x(1)-n*x(5);
y(2)=2*pi*b*L*x(2)-n*S*x(6);
y(3)=x(3)-x(7);
y(4)=x(4)-x(8);
y(5)=x(3)+b*v/Et/At*x(1)-b/Et*((a^2+b^2)/(b^2-a^2)-v)*x(2);
y(6)=x(4)-L/Et/At*x(1)-2*b^2*v*L/Et/(b^2-a^2)*x(2);

y(7)=x(6)-Eh*I*(cosd(x(10))^2/x(12)-cosd(aa)^2/R)*sind(x(10))^2*cosd(x(10))^2/x(12)^2+Gh*J*(sind(x(10))*cosd(x(10))/x(12)-sind(aa)*cosd(aa)/R)*sind(x(10))*cosd(x(10))^3/x(12)^2-x(9)*cosd(x(10))^2/x(12);

y(8)=x(5)-x(9)*sind(x(10))+Eh*I*(cosd(x(10))^2/x(12)-cosd(aa)^2/R)*sind(x(10))*cosd(x(10))^2/x(12)-Gh*J*(sind(x(10))*cosd(x(10))/x(12)-sind(aa)*cosd(aa)/R)*cosd(x(10))^3/x(12);

y(9)=x(12)-R*(1+x(9)/Eh/Ah)*sind(x(10))/sind(aa)*tand(aa)/(1+x(11)/2/pi)/tand(x(10));
y(10)=x(8)-L*((1+x(9)/Eh/Ah)*sind(x(10))/sind(aa)-1);
y(11)=x(11)-S*((1+x(9)/Eh/Ah)*cosd(x(10))/x(12)-cosd(aa)/R);
y(12)=x(12)-R;



调用函数:
x=fsolve(@myfun,[300; 10000; 0.005; 0.02; 500; 1000; 0.005; 0.02; 50; 35; 0; 0.026],optimset('Display','iter'))

算到92步停止,结果为
x =

  1.0e+006 *

   -0.0068
    3.8905
    0.0000
   -0.0000
    0.0005
    0.0212
    0.0000
   -0.0000
    0.0009
    0.0000
    0.0000
    0.0000

这里的1.0e+006 *是不是说明结果局部收敛就停止了?
除了调整初值还有没有别的方法可以解决这个问题呢?

小妹在此先谢过啦!!!


该用户从未签到

发表于 24-7-2012 16:25:40 | 显示全部楼层
simulink试试看
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 23-12-2024 14:02 , Processed in 0.340204 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.