|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: a' L* w: W( s$ I9 AMATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟
& o W& j i7 q! X%% 定义实验的参数
& J P. v1 H# d8 D7 ~( tclear;clc;close all8 y* s. a8 x( H6 j. a
lambda=3000e-9; % 光的波长
1 p! I0 A4 m6 N: e5 pd=7e-5; % 双孔的距离. a' C: g8 D2 e! J4 f+ z7 u6 K4 O' n
D=1.2; % 屏幕距双孔的距离/ G7 H6 h2 j* T- x9 g- U
8 l5 I; w% Q! F%% 定义观察屏幕的范围, 并计算各个观测点的坐标值3 ^1 x: K5 i4 V8 O4 W: Z
xa=-2; % 最小的横坐标值
& R- b1 T9 f% k$ g: jxb=2; % 最大的横坐标值
1 l: F3 i0 O7 [1 v4 v# x: Gya=-0.5; % 最小的纵坐标值! V, r- M5 c7 t) {7 U9 @
yb=0.5; % 最大的纵坐标值
: v1 j J3 X3 X+ X8 ]; d0 In1=1000; % x 方向等分份数
2 [. d+ y3 q; d% y+ m$ N/ Fn2=1000; % y 方向等分份数
1 c$ d: m% t- Q: h: z) i# z0 L
, ^2 L5 d# |! Z% ]/ s' E8 rx=linspace(xa,xb,n1); % x 坐标" e1 A3 \ _: L$ y
y=linspace(ya,yb,n2); % y 坐标8 K& h A& T) u+ C. ]8 _2 D
[xx,yy]=meshgrid(x,y); % 网格化处理, 得到观测点的坐标值9 D( Z4 [3 h" a3 T9 t1 c
, b, f) \- C, L8 m
%% 计算各个观测点处的光强' }+ G \2 C' B" z& ~$ L
k=2*pi/lambda; % 计算波数
& p7 o7 J2 n% o! _! u) ~7 k! Rr1=sqrt((xx-d/2).^2+yy.^2+D^2); % 观测点到孔 1 的距离4 S/ V. l1 e9 V7 {0 J% _
r2=sqrt((xx+d/2).^2+yy.^2+D^2); % 观测点到孔 2 的距离
( x6 |" g8 ~0 v7 ^2 q. y! E2 v7 jI=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2; % 计算观测点处的光强
' F( S; p# v' n6 m- S1 EI=I/(max(max(I))); % 归一化处理- Q% ]$ S4 L. e* s4 c
8 V) H% {( A9 }7 [' T6 B' h9 m0 N9 A%% 绘制杨氏双孔干涉条纹& A/ Z3 y/ ]( Z. h/ M# y" Z
figure* |) C; U# V) k3 U" w9 Q3 J( k
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
! h( c7 B, ]0 ~) e$ \subplot(2,1,1)# {& O) Y# u" N/ D2 l- g% x5 T
image([xa xb],[ya yb],I*255) % 显示条纹在屏幕上的二维图像. Z# z$ o: `$ M0 E+ {
colormap(gray(255)) % 图像显示为黑白, 图像的灰度值为 255 级4 n. e; v8 _2 o! z
axis equal
/ ]; L# z; g+ `: a, Z3 naxis([xa xb ya yb]): E8 v+ B& V2 c6 @! A
xlabel('x (m)')4 w( F* {& q7 d$ r
ylabel('y (m)')/ q' Z8 s- L: e1 y
title('杨氏双孔干涉条纹')
6 @4 @$ M4 Z0 O4 a `1 G0 u' t% o: Z# @1 _
%% 绘制光强分布的三维图* b* n* u6 x/ M# e" y+ D
subplot(2,1,2)
, ^. m' N1 e" e4 P7 Z1 R/ Jmesh(xx,yy,I)) b2 w. n" G/ j& o; Z
xlabel('x (m)')1 k" b/ p9 n/ w6 c* _( ^: B) d( H1 r
ylabel('y (m)')
# S: C* Z' }; H$ ?* w0 W* ^zlabel('光强')1 m) v9 `4 v! g7 R! |' W* `. C
title('光强分布') |
|