有没有大神,看一下这个MATLAB程式代码,哪里出错了,怎么修改,万分感谢啊!!!

clear;
r1= input('R1=4.31');
w=input('w=0.33');
D=input('爆速(mm/us)=8043');
rou=input('密度(g/cm3)=1.696');
e=2.7138;
gama=rou/(0.14+0.26*rou);
V=gama/(gama+1);
P=rou*D*D/(gama+1);
E=(0.204-0.0734*rou)*rou*D*D;
u6=0.3594*rou.^(0.9).*D/(1+1.3*rou);u19=0.4263*rou.^(0.8)*D/(1+1.3*rou);
f1=10;f2=10;r2=r1*0.27;
while abs(f1)>0.1|abs(f2)>0.1
r1=r1+0.01;r2=0.27*r1;
a=e.^(-r1*V);b=e.^(-r2*V);
m=([r1.*a,r2.*b,(1+w).*V.^(-w-2),rou.*D*D;
a/r1,b/r2,V.^(-w)/w,E+0.5*P.*(1-V);
a,b,V.^(-w-1),P]);
b1=[ rou.*D*D;
, E+0.5*P.*(1-V), P];
s=inv(m)*b1;
A=eval([s(1,1)]);B=eval([s(2,1)]);C=eval([s(3,1)]);
M=[A,B,C];
f1=M(1)*e.^(-r1*2.4)/r1+M(2)*e.^(-r2*2.4)/r2+M(3)/(w*2.4^(w))+0.5*u6*u6*(3.8488+rou/2)-E;
f2=M(1)*e.^(-r1*7)/r1+M(2)*e.^(-r2*7)/r2+M(3)/(w*7^(w))+0.5*u19*u19*(3.8488+rou/2)-E;
end
disp('R1=');disp(r1);disp('R2=');disp(r2);disp('A=');disp(M(1));disp('B=');disp(M(2));disp('C=');disp(M(3));disp('E=');disp(E);disp('w');disp(w);

你这个程序中,m=([r1.*a,r2.*b,(1+w).*V.^(-w-2),rou.*D*D;
a/r1,b/r2,V.^(-w)/w,E+0.5*P.*(1-V);
a,b,V.^(-w-1),P]);
b1=[ rou.*D*D;
, E+0.5*P.*(1-V), P];
s=inv(m)*b1;
m,b1内维不同,造成矩阵缺秩,出现方程有无穷多解。可根据你的实际问题查下,这两个参数哪个错了。
温馨提示:答案为网友推荐,仅供参考
相似回答