|
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
请大侠们帮忙看看,这是我的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 *是不是说明结果局部收敛就停止了?
除了调整初值还有没有别的方法可以解决这个问题呢?
小妹在此先谢过啦!!! |
|