我做了以下算法:
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);
我必须获得一条曲线,目前我的程序只计算一个值。
答案 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'));
这是情节: