Matlab 代码:

%单缝衍射对多缝干涉的调制
      clear
     clf
     a=0.8e-5; d=4e-5; lamda=5e-7;   % 缝宽、缝间距、波长
     N=input('请输入缝数 N= ') ;   %输入缝数
    theta = -0.015*pi:0.00001: 0.015*pi;  %衍射角度变化范围
    phi=2*pi*d*sin(theta)/ lamda;  %将衍射角转化为相位角
    u= pi*a*sin(theta)/ lamda;
   I0=(sinc(u)).^2;   %计算单缝相对光强
   Id=(sin(N*phi/2)./sin(phi/2)).^2;  %计算多缝相对光强
   I= I0.* Id;     %单缝衍射对多缝干涉调制后的光强
  subplot(2,2,1)
  plot(sin(theta), I0, 'b')  %画出单缝衍射相对光强的分布
  xlabel('sin(theta)');
  ylabel('单缝衍射相对光强');
 subplot(2,2,2)
 plot(sin(theta), Id, 'k')  %画出N缝衍射相对光强的分布
 xlabel('sin(theta)');  ylabel('多缝干涉相对光强');
 subplot(2,1,2)
 plot(sin(theta), N*N*I0, ':b', sin(theta), I, 'k')  %画出单缝衍射对多缝干涉调制后的 光强分布图
 xlabel('sin(theta)');  ylabel('光栅衍射的相对光强');


(命令行:请输入缝数 N= 8)



操作视频: