【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

举报
海神之光 发表于 2022/05/29 04:28:56 2022/05/29
5.1k+ 0 0
【摘要】 一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私...

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、部分源代码

%读入实验参数

lambda=str2num(get(handles.edit1,'string'))*1e-9;  %读入波长

d=str2num(get(handles.edit2,'string'))*1e-3;       %读入孔距

D=str2num(get(handles.edit3,'string'));            %读入观察屏距离
%读入观察范围参数

xa=str2num(get(handles.edit4,'string'));     %最小的横坐标值

xb=str2num(get(handles.edit5,'string'));     %最大的横坐标值

n1=str2num(get(handles.edit6,'string'));     %x方向等分份数

ya=str2num(get(handles.edit7,'string'));     %最小的纵坐标值

yb=str2num(get(handles.edit8,'string'));     %最大的纵坐标值

n2=str2num(get(handles.edit9,'string'));     %y方向等分份数
k=2*pi/lambda;          %计算波数

x=linspace(xa,xb,n1);   %x坐标

y=linspace(ya,yb,n2);   %y坐标

[x,y]=meshgrid(x,y);

r1=sqrt((x-d/2).^2+y.^2+D^2);

r2=sqrt((x+d/2).^2+y.^2+D^2);

I=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2;

I=I/(max(max(I))); 

I=I*255;
axes(handles.axes1)

x=linspace(xa,xb,n1);

y=linspace(ya,yb,n2);

image(x,y,I)

colormap(gray(255))

xlabel('x (m)')

ylabel('y (m)')

title('杨氏双孔干涉条纹')

%读入实验参数

lambda=str2num(get(handles.edit1,'string'))*1e-9;  %读入波长

d=str2num(get(handles.edit2,'string'))*1e-3;       %读入孔距

D=str2num(get(handles.edit3,'string'));            %读入观察屏距离
%读入观察范围参数

xa=str2num(get(handles.edit4,'string'));     %最小的横坐标值

xb=str2num(get(handles.edit5,'string'));     %最大的横坐标值

n1=str2num(get(handles.edit6,'string'));     %x方向等分份数

ya=str2num(get(handles.edit7,'string'));     %最小的纵坐标值

yb=str2num(get(handles.edit8,'string'));     %最大的纵坐标值

n2=str2num(get(handles.edit9,'string'));     %y方向等分份数
k=2*pi/lambda;          %计算波数

x=linspace(xa,xb,n1);   %x坐标

y=linspace(ya,yb,n2);   %y坐标

[x,y]=meshgrid(x,y);

r1=sqrt((x-d/2).^2+y.^2+D^2);

r2=sqrt((x+d/2).^2+y.^2+D^2);

I=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2;

I=I/(max(max(I)));
axes(handles.axes1)

x=linspace(xa,xb,n1);

y=linspace(ya,yb,n2);
mesh(x,y,I) 

colormap(hot) 

xlabel('x (m)') 

ylabel('y (m)') 

zlabel('光强') 

title('光强分布')
  
 

三、运行结果

在这里插入图片描述
在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/112093463

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。