|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 X( M1 | Q4 |6 ?MATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟' @% W7 V6 j" L2 w
%% 定义实验的参数. t% n7 p4 j. Z) T! v" Q
clear;clc;close all
, v3 O- v# U+ `, Xlambda=3000e-9; % 光的波长% }9 ]" D$ _% h
d=7e-5; % 双孔的距离
' ~/ g1 c- D, [% f- @1 PD=1.2; % 屏幕距双孔的距离
% C1 L; W, s0 o0 ]! G4 I9 L) p- ~# Y% \5 E3 w
%% 定义观察屏幕的范围, 并计算各个观测点的坐标值
/ G x+ k7 o: s3 ?1 [- c1 ?& t9 uxa=-2; % 最小的横坐标值1 L7 {* y, W; m
xb=2; % 最大的横坐标值
% \* P# z: D: B. C# W; ~ya=-0.5; % 最小的纵坐标值
6 p2 G% l7 L }" yyb=0.5; % 最大的纵坐标值
2 W* G2 X- v( M! o; ^& U* u& A8 Gn1=1000; % x 方向等分份数
, r% J$ d; `( zn2=1000; % y 方向等分份数
$ g6 z6 }$ }9 L7 z5 Y" [! I4 c, B
3 j c# |6 z! G9 Rx=linspace(xa,xb,n1); % x 坐标
6 K; U% y. A9 y# k$ D: u5 I( g5 Wy=linspace(ya,yb,n2); % y 坐标
3 M, U9 o; s6 ]9 z, |4 d8 X[xx,yy]=meshgrid(x,y); % 网格化处理, 得到观测点的坐标值
; \+ I/ ^; ?/ U1 Z" q, ?# F. E
^( d7 Z8 N: E! h# z5 S. W%% 计算各个观测点处的光强( k3 }4 ^& E+ g8 O# g/ ^
k=2*pi/lambda; % 计算波数1 E6 r- `& _) B2 [! r; M2 s
r1=sqrt((xx-d/2).^2+yy.^2+D^2); % 观测点到孔 1 的距离$ ]% V# \8 D+ Y: ~# f( w) s+ z9 G
r2=sqrt((xx+d/2).^2+yy.^2+D^2); % 观测点到孔 2 的距离- ^. z( z, B% o. \
I=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2; % 计算观测点处的光强- g8 U, X$ T4 }5 t8 U
I=I/(max(max(I))); % 归一化处理4 c: S& N5 V0 V2 N" X
! @, b9 H4 G$ h- Y, x# Q4 N5 ^%% 绘制杨氏双孔干涉条纹, m5 e h! t7 n* H+ E: O0 ]
figure1 E. K5 ^6 m1 k _. j
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
* S9 C# t6 G) a. b0 o @) `3 nsubplot(2,1,1)
1 }8 ~8 X0 k5 Q3 q) limage([xa xb],[ya yb],I*255) % 显示条纹在屏幕上的二维图像
$ q$ ?% G, m! B' f* Qcolormap(gray(255)) % 图像显示为黑白, 图像的灰度值为 255 级) |+ Y8 ?6 O' r y6 i* u8 ?2 ^5 h
axis equal2 h: N3 e1 C6 W3 M( X% p( F
axis([xa xb ya yb])
; G- ?2 M4 ]+ @. X6 uxlabel('x (m)')
# X+ c5 [! `7 {! ]ylabel('y (m)')
' ~ i: a) ^/ \* ntitle('杨氏双孔干涉条纹')
* J/ W3 Z- g G1 c2 k$ V; Y2 W
" U* o8 h: g. f/ X+ D; f* c%% 绘制光强分布的三维图3 v" T: M6 c, `; e9 `" @, q
subplot(2,1,2)% m1 }$ P6 X# k: q8 j
mesh(xx,yy,I)9 y8 h `% @9 Y7 {/ I
xlabel('x (m)')
; g9 v! Z$ z' o% G1 [( Y( nylabel('y (m)')& {- ?. u/ w1 R4 x! A
zlabel('光强')9 o9 N( y, o- J4 p" f. n2 H! ?
title('光强分布') |
|