当前位置:编程学习 > Matlab >>

matlab 关于双缝干涉的 谁能帮我注释啊 详细点的 包括每个步骤和代码是干什么的 我基本什么都不懂 谢谢了

两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2, r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2) clear lam=500e-9 a=2e-3;D=1; ym=5*lam*D/a;xs=ym; n=101;ys=linspace(-ym,ym,n); for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam; B(i,:)=sum(4*cos(phi/2).^2); end N=0; Br=(B/4.0)*N subplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys)
答案:clear 
lam=500e-9;%λ=lam
a=2e-3;D=1;%变量a,D
ym=5*lam*D/a;xs=ym;
n=101;ys=linspace(-ym,ym,n);%在范围【-ym ym】之间产生n个数据
for i=1:n
    r1=sqrt((ys(i)-a/2).^2+D^2);%r1表达式的matlab书写形式
    r2=sqrt((ys(i)+a/2).^2+D^2);%r2表达式的matlab书写形式 
    phi=2*pi*(r2-r1)./lam;%);%);%Φ表达式的matlab书写形式 
    B(i,:)=sum(4*cos(phi/2).^2);%光强的matlab书写形式
end
N=0;
Br=(B/4.0)*N;
subplot(1,2,1)%把图形画在1行2列图像中的第一幅图中,
image(xs,ys,Br);%画图函数
colormap(gray(N));%控制颜色
subplot(1,2,2)%把图形画在1行2列图像中的第二幅图中,
plot(B,ys) ;%画图函数

上一个:用MATLAB实现1+1=2 的程序代码
下一个:怎么用matlab画y=9*x*e^(-2*x^2),急求代码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,