如何在scilab中获得曲线

时间:2014-06-24 13:30:03

标签: c++ scilab

我做了以下算法:

c=3e8;//m/s 
h=6.6e-34;//J*s 
lambda=200e-9;//m 
E=h*c/lambda;//J 
k0=(2*E)/(h*c);//m^-1 
l=10; 
n=1.33; 
rd=20*10^-6; 
r=1*10^-9:200:10*rd;//m 
for i=1:length(r) 
if r(i)<=rd then 
    Ep(i)=(E*(n^2-1))+(E*l*(l+1)/(k0^2*r(i).^2));//J 
elseif r>rd then 
    Ep(i)=(E*(n^2-1))+(E*l*(l+1)/(k0^2*r(i).^2)); 
end 
end 
clf 
plot2d(r,Ep,style=1); 

我必须获得一条曲线,目前我的程序只计算一个值。

1 个答案:

答案 0 :(得分:0)

c=3.000D+08;
h=6.600D-34;
lambda=0.0000002;
E=h*c/lambda;
k0=(2*E)/(h*c);
l=10;
n=1.33;
rd=0.00002; 
r=1.000D-09:0.000002:10*rd;
for i=1:length(r)
    if r(i)<=rd then
        Ep(i)=(E*(n^2-1))+(E*l*(l+1)/(k0^2*r(i).^2));
    elseif r>rd then
        Ep(i)=(E*(n^2-1))+(E*l*(l+1)/(k0^2*r(i).^2));
    end
end
plot(log(r),log(Ep'));

这是情节:

Plot