登录论坛

查看完整版本 : [求助]我写了个程序,每次的运行结果都在变


sqqssqq
2009-04-04, 14:56
我写了个程序,可是每次的运行结果都在变..谁帮我看看...

sqqssqq
2009-04-04, 14:58
下面是程序,急啊~~~~~
T=20:20:200;
a1=5.35583;
a2=0.100473;
a3=0.20692;
a4=100;
a5=11.34929;
a6=1.5334e-2;
b1=4.629e-7;
b2=3.862e-8;
b3=-0.89e-8;
b4=2.657e-5;
p=0.532;%波长532nm
n=30;
f=(T-24.5).*(T+570.832);
mp=(a1+b1*f+(a2+b2*f)./(p^2-(a3+b3*f).^2)+(a4+b4*f)./(p^2-a5^2)-a6*p^2).^(1/2);
mi=(a1+b1*f+(a2+b2*f)./(i.^2-(a3+b3*f).^2)+(a4+b4*f)./(i.^2-a5^2)-a6*i.^2).^(1/2);
s=(1/p-1./i).^(-1);
ms=(a1+b1*f+(a2+b2*f)./(s.^2-(a3+b3*f).^2)+(a4+b4*f)./(s.^2-a5^2)-a6*s.^2).^(1/2);
i=mi.*(1/n+ms./s-mp/p);
plot(T,s)
xlabel('T(℃)')
ylabel('λs(μm)')

云龙九现
2009-04-07, 10:36
T=20:20:200;
a1=5.35583;
a2=0.100473;
a3=0.20692;
a4=100;
a5=11.34929;
a6=1.5334e-2;
b1=4.629e-7;
b2=3.862e-8;
b3=-0.89e-8;
b4=2.657e-5;
p=0.532;%波长532nm
n=30;
f=(T-24.5).*(T+570.832);
mp=(a1+b1*f+(a2+b2*f)./(p^2-(a3+b3*f).^2)+(a4+b4*f)./(p^2-a5^2)-a6*p^2).^(1/2);
mi=(a1+b1*f+(a2+b2*f)./(i.^2-(a3+b3*f).^2)+(a4+b4*f)./(i.^2-a5^2)-a6*i.^2).^(1/2);
s=(1/p-1./i).^(-1);
ms=(a1+b1*f+(a2+b2*f)./(s.^2-(a3+b3*f).^2)+(a4+b4*f)./(s.^2-a5^2)-a6*s.^2).^(1/2);
i=mi.*(1/n+ms./s-mp/p);
plot(T,s)
xlabel('T(℃)')
ylabel('λs(μm)')

____________________________________________________________________
我看了你的程序,你的第16行,求mi的过程中,i的初值是多少?i如果是一个向量,它起码应该有初值吧?

未注册
2009-04-07, 16:11
将S和MS两者的关系用图画出,前提是你需要知道S的大致范围!
他们之间不是有两个方程关系吗,就画两条线,在你规定的范围内应该有10个交点。取出,就可以