【光学】基于matlab圆孔衍射动态模拟【含Matlab源码 795期】
【摘要】
一、获取代码方式
获取代码方式1: 完整代码已上传我的资源:【光学】基于matlab圆孔衍射动态模拟【含Matlab源码 795期】
获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博...
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【光学】基于matlab圆孔衍射动态模拟【含Matlab源码 795期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、部分源代码
% 圆孔的夫琅和费衍射
%
close all
figure('position',[217 266 694 244]);
axes('position',[0.05,0.08,0.6,0.8]);hold on;
title('Fraunhofer Diffraction of a Round Hole',...
'fontsize',14)
set(gcf,'doublebuffer','on');
axis([-4,12,-5,5]);
rectangle('position',[0,1,0.2,3],'FaceColor',[0.1,0.3,0.4]);
rectangle('position',[0,-4,0.2,3],'FaceColor',[0.1,0.3,0.4]);
rectangle('position',[3.8,-4,0.4,8],'FaceColor',...
[0.4,0.3,0.4],'Curvature',[1,1]);
rectangle('position',[11,-5,0.4,10],'FaceColor',[0.1,0.3,0.4]);
h1=plot([-4,-4],[-0.7,-0.7]);
h2=plot([-4,-4],[0,0]);
h3=plot([-4,-4],[0.7,0.7]);
for k=-4:.1:0;
pause(0.05);
set([h1,h2,h3],'xdata',[-4,k]);
end
y=-4:.1:4;
a=linspace(-atan(4/11),atan(4/11),length(y));
a=10*sin(a);
II=abs(sinc(a)).^2*6;
x=11-II;
plot(x,y,'r')
K=find(diff(sign(diff(II)))==-2)+1;
yyN=y(K);
P=zeros(3,5); yN=[-0.7,0,0.7];H=P;
for m=1:3;
for n=1:5;
p=polyfit([0,11],[yN(m),yyN(n)],1);
P(m,n)=complex(p(1),p(2));
H(m,n)=plot(0,yN(m));
end
end
for Q=0:.1:11;
pause(0.05)
for w=1:15;
[m,n]=ind2sub([3,5],w);
Y=polyval([real(P(w)),imag(P(w))],Q);
set(H(w),'xdata',[0,Q],'ydata',[yN(m),Y]);
end
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
三、运行结果

四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/115871127
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)