一、获取代码方式


二、部分源代码

%读入实验参数

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 GUI杨氏双缝干涉【含Matlab源码 001期】_参考文献

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

四、matlab版本及参考文献

1 matlab版本

2014a

2 参考文献

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