20040110430
2008-09-26, 22:52
今天老师布置一个试算的作业,我想通过matlab来实现这种迭代:
function shisuansuoli(V1,H1)
L=100;h=300;q=50000;S=500;EA=10^11;n=0; W=1;% W 为x,y的迭代精度
H=-H1;V=S*q-V1;T1=((V1)^2+H^2)^0.5;T=(V^2+H^2)^0.5;
L1=-H*(S/EA+1/q*log2((V+T)/(T1-V1)));h1=1/(2*EA*q)*(V^2-(V1)^2)+(T-T1)/q;
A1=-(S/EA+1/q*log2((V+T)/(T1-V1)))-(H1)^2/q*(1/(T*(T+V))-1/(T1*(T1+V1)));
A2=H1/q*(1/T-1/T1); B1=A2; B2=-S/EA-(V/T-V1/T1)/q; C=A1*B2-A2*B1;
Ex=L1-L;Ey=h1-h;
while (1)
V2=(Ex*B1-Ey*A1)/C+V1; H2=(Ey*A2-Ex*B2)/C+H1;
if abs(Ex)>W && abs(Ey)>W %若不满足迭代终止条件则继续迭代
V1=V2;H1=H2;n=n+1;
continue;
else
fprintf('迭代次数为:%f\n',n);
fprintf('V1的迭代值为:%f\n',V2);fprintf('H1的迭代值为:%f\n',H2)
break; %满足后输出结果并退出
end
end
然后在Command Window中键入:
clear;V1=input('Please input V1:');H1=input('Please input H1:');shisuansuoli(V1,H1)
回车输入H1,V1的值12500000,1670000之后回车
matlab就一直处于busy状态 这是怎么回事啊?:cool: :cool:
请教各路高手~~
function shisuansuoli(V1,H1)
L=100;h=300;q=50000;S=500;EA=10^11;n=0; W=1;% W 为x,y的迭代精度
H=-H1;V=S*q-V1;T1=((V1)^2+H^2)^0.5;T=(V^2+H^2)^0.5;
L1=-H*(S/EA+1/q*log2((V+T)/(T1-V1)));h1=1/(2*EA*q)*(V^2-(V1)^2)+(T-T1)/q;
A1=-(S/EA+1/q*log2((V+T)/(T1-V1)))-(H1)^2/q*(1/(T*(T+V))-1/(T1*(T1+V1)));
A2=H1/q*(1/T-1/T1); B1=A2; B2=-S/EA-(V/T-V1/T1)/q; C=A1*B2-A2*B1;
Ex=L1-L;Ey=h1-h;
while (1)
V2=(Ex*B1-Ey*A1)/C+V1; H2=(Ey*A2-Ex*B2)/C+H1;
if abs(Ex)>W && abs(Ey)>W %若不满足迭代终止条件则继续迭代
V1=V2;H1=H2;n=n+1;
continue;
else
fprintf('迭代次数为:%f\n',n);
fprintf('V1的迭代值为:%f\n',V2);fprintf('H1的迭代值为:%f\n',H2)
break; %满足后输出结果并退出
end
end
然后在Command Window中键入:
clear;V1=input('Please input V1:');H1=input('Please input H1:');shisuansuoli(V1,H1)
回车输入H1,V1的值12500000,1670000之后回车
matlab就一直处于busy状态 这是怎么回事啊?:cool: :cool:
请教各路高手~~