matlab编程模拟光学实验

论文要用MATLAB对双缝干涉、光栅衍射、牛顿环实验进行编程,我不会也不懂,有matlab高人吗,帮帮我,大体程序我搜到了,但还是有问题,我论文很急,哪位好心人帮我改改,... 论文要用MATLAB对双缝干涉、光栅衍射、牛顿环实验进行编程,我不会也不懂,有matlab高人吗,帮帮我,大体程序我搜到了,但还是有问题,我论文很急,哪位好心人帮我改改,运行一下,把程序跟效果图发给我,真的感激不尽。麻烦留下QQ号,我把文件发给你。谢谢了,分不多,但一定会追加的 展开
 我来答
望人笑官6502
2012-05-27 · TA获得超过6.5万个赞
知道大有可为答主
回答量:3.1万
采纳率:0%
帮助的人:4037万
展开全部
本人从日本回来,单位要求评估一下virtuallab这个软件。本人从事衍射光学设计,在日本和Virtuallab的日本代理有很多的交流,得知这个软件在日本和美国都卖不动,基本上没有人愿意使用这个软件,本人试用了多次,总结其原因如下: E5w;75,
1. 建模能力有限 ,不能支持CAD文件的导入;很多的面型需要编程来实现,采用C#和VB的编程方式反而没有matlab等数学软件编程方便。 <Dd>- K
2. 光学元件类型有限,没有反射镜模型,就是说不能考虑反射镜的模型;不能倾斜和偏心;在光栅工具只能考虑透射场;没有棱镜模型。 <h/%jM>9/
3. 此软件号称做衍射光学元件很强,可是仔细一看,只有傅里叶迭代的优化算法,居然没有常见的模拟退火和遗传算法-----。 0f^{Rp6
4. LED整形,只有微机构光栅模型,没有微结构棱镜和微结构的mirror模型,也就是用来能看看。 V)j[`,M:
5. 所谓的激光工具只是一个摆设,激光的简单的模型都不能分析。 A*EOn1hN
6. 光栅工具的光源只能用理想的平面波;不能考虑反射场。 FEaT}/h;
7. 没见到号称所有的模拟技术都整合在一起,却是只见到几种简单的模拟技术,甚至没有FDTD算法。
-----------------不一一例举了----- J
综上所述,此软件只是适合于高校的教学演示使用。相比而言,没有matlab方便以及适用面广泛,没有能应用的实用价值。 <kak9 6A
回到国内,发现很多的研究所(如上海光机所和长光所)和高校(如南京理工和长春理工)均买了这个软件,而且价格很贵,听说要上100W了,在中国的报价比在美国和日本等地方的价格要高出很多倍,相信大家都懂这是什么原因。如此软件在欧美,使用者基本上没有,在中国却发扬光大。不知道国内的购买者用来做什么,难道需要这么贵的软件来进行教学演示吗?由此可知,软件本身的功能并不是重点,在这种交易后面的东西才是重要。一个愿意买,一个愿意卖,中间各得好处。本人有日本和美国的报价单,价格和国内相比,相差6倍左右,如此不堪一用的软件,居然能够在国内如此高价出售,大家都知道其中的原因。在这个软件所有的功能,本人通过自编程序或者matlab编程均可以实现。 Y@UkP+{f=
国内的购买者再怎么差劲,不至于让人如此欺骗吧--------
dbb627
推荐于2016-11-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1399万
展开全部
function photo_diffraction
%光学衍射仿真 矩形
lmda=632.8e-9;% 波长
xmax=0.05;% 观察屏所取范围
a=1e-3;f=1;
ymax=xmax;
def=0.0001;
x=-xmax:def:xmax;
y=-ymax:def:ymax;
lenm=length(x);
lenn=length(y);
for m=1:lenm
for n=1:lenn
alpha=pi*x(m)*a/(lmda*f);%0.5*k*l*a;
beta=pi*y(n)*a/(lmda*f);%bb=0.5*k*w*b;
I(m,n)=((sin(alpha))/(alpha))^2*((sin(beta))/(beta))^2;
end
end
I=I/(max(max(I)));
[X,Y]=meshgrid(x,y);
figure
mesh(X,Y,I);
xlabel('x');
ylabel('y');
zlabel(' 光强');
rotate3D
hold on
figure
imshow(255*I);
xlabel('x');
ylabel('y');
%---------光学衍射仿真 单缝------------
clear
lam=500e-9;
a= 1e-3; f=1;
xm= 3*lam*f/a;
nx= 51;
xs=linspace(-xm,xm,nx);
np=51;
xp=linspace(0,a,np);
for i=1:nx
sinphi= xs(i)/f;
alpha=2*pi*xp*sinphi/lam;
sumcos=sum(cos(alpha));
sumsin=sum(sin(alpha));
B(i,:)=(sumcos^2+sumsin^2)/np^2;
end
N=255;
Br=(B/max(B))*N;
figure;
subplot(1,2,1)
image(xm,xs,Br);
colormap(gray(N));
subplot(1,2,2)
plot(B,xs);
%--------光学衍射仿真 多缝--------------
clear
lam=500e-9;N=2;
a= 2e-4;z=5;d=5*a;
xm=2*lam*z/a;y0=xm;
n=1001;
x0=linspace(-xm,xm,n);
for i= 1: n
sinphi=x0(i)/z;
alpha=pi*a*sinphi/lam;
beta=pi*d*sinphi/lam;
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=255;
Br=(B/max(B))*NC;
figure;
subplot(1,2,1)
image(y0,x0,Br);
colormap( gray(NC) );
subplot(1,2,2)
plot(B1,x0);
%--------光学衍射仿真 圆孔--------------
clear
lam=500;% '请输入光的波长:')
lam=lam*1e-9;
a=2e-3;
f=1;
m=200;
ym=2000*lam*f;
ys=linspace(-ym,ym,m);
xs=ys;
n=255;
for i=1:m
r=xs(i)^2+ys.^2;
sinth=sqrt(r./(r+f^2));
x=2*pi*a*sinth./lam;
hh=(2*BESSELJ(1,x)).^2./x.^2;
b(:,i)=(hh)'.*5000;
end
figure
subplot(1,2,1)
image(xs,ys,b)
colormap(gray(n))
subplot(1,2,2)
b(:,m/2);
plot(ys,b(:,m/2))
追问
有牛顿环的嘛?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式