|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' V6 |/ H" N3 n' {/ H2 j
MATLAB源程序代码分享:杨氏双孔干涉实验的MATLAB计算模拟$ G9 r5 J( Z9 p8 {1 [
%% 定义实验的参数" B. f4 s1 [2 b) N
clear;clc;close all0 u. d( D$ Y* [
lambda=3000e-9; % 光的波长; T4 I9 F! T: e- |
d=7e-5; % 双孔的距离' F; _- |; A7 x7 _# w8 w
D=1.2; % 屏幕距双孔的距离. g) X) w2 b9 j, x5 ]- c
/ t% s3 T$ x* i, T( u%% 定义观察屏幕的范围, 并计算各个观测点的坐标值) g9 e& w1 E+ T9 W q8 E' M
xa=-2; % 最小的横坐标值' p- B; {6 M! f/ {. g0 Q4 [, k
xb=2; % 最大的横坐标值2 n: a2 X$ o1 e( c" o0 N) F+ Z
ya=-0.5; % 最小的纵坐标值0 T. i! i- s. \3 g, ~
yb=0.5; % 最大的纵坐标值) @) }( a- I; L2 t0 H9 U
n1=1000; % x 方向等分份数0 s& R. \3 z& F9 b" O/ J. d/ J) a
n2=1000; % y 方向等分份数& G" i- f' y. ]& a" Q) P% @
2 Q! q. y: \8 b4 @/ W* F
x=linspace(xa,xb,n1); % x 坐标$ S. P" ~, J" h2 z, T. ^5 h! c
y=linspace(ya,yb,n2); % y 坐标
. L( A# J* x/ {% f" D: @/ m1 E3 n5 R$ d0 g[xx,yy]=meshgrid(x,y); % 网格化处理, 得到观测点的坐标值( |5 w" p5 F+ ]! N" B3 F4 q
2 |0 D& A1 o* z6 e% z0 ]: q4 ~! ?' B
%% 计算各个观测点处的光强) D/ k0 h' s) d/ j2 K/ K& j
k=2*pi/lambda; % 计算波数1 \. P' ~+ q" j# w) a
r1=sqrt((xx-d/2).^2+yy.^2+D^2); % 观测点到孔 1 的距离5 m! m3 Q% a+ w( }5 x8 i5 w J( G
r2=sqrt((xx+d/2).^2+yy.^2+D^2); % 观测点到孔 2 的距离& K7 o" m( `$ k+ j, `
I=(cos(k*r1)./r1+cos(k*r2)./r2).^2+(sin(k*r1)./r1+sin(k*r2)./r2).^2; % 计算观测点处的光强2 N& N' l; \; ], m' g: q/ x/ A
I=I/(max(max(I))); % 归一化处理
: \! w: w) n* |" f$ p( x8 `" i, u4 d% L
%% 绘制杨氏双孔干涉条纹 z& \7 `$ h4 J; C9 s" V: s
figure" m* `$ G" x/ |7 o. y: N ]8 Z5 O
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸
7 b: d! b6 I( G. }5 a: B1 x vsubplot(2,1,1)
0 i! v9 H' v0 k1 X# mimage([xa xb],[ya yb],I*255) % 显示条纹在屏幕上的二维图像5 o- o& Y2 u J/ s
colormap(gray(255)) % 图像显示为黑白, 图像的灰度值为 255 级$ r; L# ]0 ?: ~
axis equal( n8 @( W+ @2 i, p$ W
axis([xa xb ya yb])
$ C2 l- {* d/ A: \3 Y5 R0 h8 Kxlabel('x (m)'). [; _% s, {2 T% G$ F
ylabel('y (m)')! Y/ s" r# {# Y, p9 W
title('杨氏双孔干涉条纹')* \, v' f8 {' T4 z* Z+ Y& `
8 |" a. R0 o6 ?/ d* A%% 绘制光强分布的三维图
! h! Q, l! [6 Usubplot(2,1,2)% M) o$ g R- v4 Q+ B6 q
mesh(xx,yy,I)
% o0 V; z4 a1 _xlabel('x (m)')
4 R# m Z6 }3 ^ylabel('y (m)')
P5 ^. e h' @# `* @4 P C% r" mzlabel('光强') e9 ^& d1 Z8 W
title('光强分布') |
|