Matlab:实现杨氏双缝干涉仿真

本文基于光学原理,用Matlab实现杨氏双缝干涉现象仿真。


Project Code
% 作者:ZQJ
% 日期:2021.1.4 星期一
%***********************模拟杨氏干涉现象**************************
clear,clc;
% 基本参数输入及处理*********************************
% 本例输入:Lambda = 500;  d = 2; D = 1;
Lambda = input('输入光的波长(单位为nm):');
Lambda = Lambda * 1e-9;       %波长单位转为:m
d = input('输入两个缝的间距(单位为mm):');
d = d * 1e-3;                 %缝间隙单位转为:m
D = input('输入缝到屏的距离(单位为m):');
I0 = 1;                       %两列波的光强

Xmax = 5*Lambda*D/d;          %Xmax取第五级亮纹位置(边界)--单位为:m
x = linspace(-Xmax,Xmax,101); %坐标取样101份
I = zeros(101,1);

for i=1:101
    r1 = sqrt((x(i)+d/2)^2+D^2);    %在x坐标轴上的情况
    r2 = sqrt((x(i)-d/2)^2+D^2);
    phi = 2*pi*(r2-r1)/Lambda;      %两列波在该点的相位差
    I(i,:) = 4*I0*cos(phi/2)^2;     %合成波光强
end

% 合成光强灰度分布图*************************
I_change = I./4 .*255;               %光强归一化 并转为255灰度值
subplot(2,1,1);
image(x,Xmax,I_change');             %设置x和y的像素,显示数值
colormap(gray(255));                 %妆点灰度色彩
xlabel('空间坐标x');
title('合成光强空间分布');

% 合成光强函数分布图*************************
subplot(2,1,2);
plot(x,I');
axis([-Xmax,Xmax,0,4]);
xlabel('空间坐标x'), ylabel('合成光强度');
title('合成光强空间分布函数');
仿真结果图:

在这里插入图片描述


专栏内容供作者本人或大家学习使用,多多指教 ~

  • 23
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值