单缝衍射代码部分:
% Button pushed function: plotButton
function plotButtonPushed(app, event)
b=app.bEditField.Value;
lambda=app.lambdaEditField.Value;
x=(-6:0.001:6);
theta=atan(x);
u=pi*b*sin(theta)/lambda;
y=sin(u).*sin(u)./u.^2;
plot(app.axes1,x,y);
image(app.axes2,256*y.^0.3);
colormap(app.axes2,gray(256));
end
function clearButtonPushed(app, event)
cla(app.axes1,’reset’);
cla(app.axes2,’reset’);
end
光栅衍射代码部分:
% Button pushed function: plotButton
function plotButtonPushed(app, event)
b=app.bEditField.Value;
d=app.dEditField.Value;
lambda=app.lambdaEditField.Value;
f=app.fEditField.Value;
N=app.NEditField.Value;
m=2*lambda*f/b;
x=linspace(-m,m,1001);
for i=1:1001
sintheta=x(i)/f;
u=pi*b*sintheta/lambda;
v=pi*d*sintheta/lambda;
y(i,:)=(sin(u)/u)^2*(sin(N*v)/sin(v))^2;
Y=y/max(y);
end
plot(app.ax1,Y,x);
image(app.ax2,y*256);
colormap(app.ax2,gray(256));
end
运行结果:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!