模拟一束光通过透明柱体的过程z2_第1页
模拟一束光通过透明柱体的过程z2_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟一束光通过透明柱体的过程 (z2)摘要:一束光通过一个透明圆柱体,圆柱后有一个屏幕,程序最终反映屏幕上的图象随圆柱半径的变化而变化。其中光强分布是采用相干叠加原理,因为其中采样点数目不足,所以光强分布的结果和真实的有一定差距。增加采样点数目和改变采样点范围能够改善输出光强的结果逼真程度。程序:% 一束光通过一个透明圆柱,圆柱后有一个屏幕,程序% 最终反映屏幕上的图象随圆柱半径的变化而变化close all;clc;clear;figure('Position',5 147 1016 420);axis(0,21,0,8);hold on;set(gca,'xtick

2、',0:3:21);set(gca,'Position',0.05 0.11 0.92 0.815);fill(1,1.1,1.1,1,4.1,4.1,7,7,0.2,0.5,0.8);fill(1,1.1,1.1,1,1,1,3.9,3.9,0.2,0.5,0.8);dx=0.2;k=0.05;ps=linspace(3,5,5);N=16;Pm=linspace(1,7,N)*i+16;for s=1:N;    Z0ps(s)=1.1+4*i;    Kps(s)=Pm(s)-Z0ps(s); 

3、   Z1ps(s)=Z0ps(s)+dx*exp(i*angle(Kps(s);    Hps(s)=plot(Z0ps(s),Z1ps(s),'r');endtext(0.2,4.5,'红','fontsize',14);text(0.2,3.5,'光','fontsize',14);r=3;ts=linspace(0,pi*2,200);hc=plot(9+4i+r*exp(i*ts),'k');x=1.1;zc=9+4i;set(gcf,&#

4、39;Doublebuffer','on');Ns=zeros(size(Z0ps);Z2ps=Z1ps;Z3ps=Z1ps;Knps=exp(i*angle(Kps)*0.5);dxn=0.9*dx;pause(1);title('光的传播阶段');while min(min(real(Z3ps)<16;    x=x+dx;    for s=1:N;        if abs(Z1ps(s)-zc)>r &

5、amp; Ns(s)<1;            Z1ps(s)=Z1ps(s)+dx*exp(i*angle(Kps(s);            S=Z0ps(s),Z1ps(s);            Z2ps(s)=Z1ps(s);Z3ps(s)=Z2p

6、s(s);% 圆柱外传播未接触圆柱        elseif abs(Z2ps(s)-zc)<r & Ns(s)<2;            Z2ps(s)=Z2ps(s)+dxn*exp(i*angle(Knps(s);            S=Z0ps(s),Z1ps(s),Z2p

7、s(s);            set(Hps(s),'XData',real(S),'YData',imag(S);            Z3ps(s)=Z2ps(s);Ns(s)=1;        elseif abs(Z3ps(s)-zc)>r & N

8、s(s)>0.5;            Z3ps(s)=Z3ps(s)+dx*exp(i*angle(Kps(s);            S=Z0ps(s),Z1ps(s),Z2ps(s),Z3ps(s);            set(Hps(s),'

9、;XData',real(S),'YData',imag(S);        end    end    pause(0.1);endfill(16,16.2,16.2,16,1,1,7,7,'k');plot(16.8,16.8,1,7,'k');tt=0;F1ps=Z1ps-zc;F2ps=Z2ps-zc;% 方向aL=linspace(pi-asin(2/r),pi+asin(2/r),200);aL(

10、aL>pi)=-aL(aL>pi);zL=9+4i+r*exp(i*aL);  %  左侧球面取样点yL=linspace(-asin(2/r)*1.2,asin(2/r)*1.2,200); %  右侧球面取样点pL=linspace(1,7,200)*i+16;  % 观察屏取样点Ss=linspace(3,5,200)*i+1.1; % 输入面取样点dG=0;n=1.3; % 折射率lambda=0.6358e-6;dG=abs(1.1+4*i-zL)/lambda; % 输入面与左侧球面的光程差Uz=exp(i*dG)./abs(1.

11、1+4*i-zL);zLm,yLm=meshgrid(zL,yL);dG=abs(zLm-yLm)*n/lambda; % 左侧球面与右侧球面的光程差Uz=sum(meshgrid(Uz).*exp(i*dG)./abs(zLm-yLm);yLm,pLm=meshgrid(yL,pL);dG=abs(yLm-pLm)/lambda; % 右侧球面与观察屏的光程差Uz=sum(meshgrid(Uz).*exp(i*dG)./abs(yLm-pLm);Io=abs(Uz.2);Io=Io/max(Io);  % 输出相对光强hi=plot(17+Io+linspace(1,7,200)

12、*i,'k');text(17,7.5,'强度分布','color',0.1,0.4,0.7);tqx=title('圆柱半径变化阶段');tt=0;while tt<2;    tt=tt+0.2;    r=2.3+0.6*asin(sin(pi*tt);    Z1ps=zc+r*exp(i*angle(F1ps);    Z2ps=zc+r*exp(i*angle(F2ps);  

13、;  for s=1:N;        S=Z0ps(s),Z1ps(s),Z2ps(s),Z3ps(s);        set(Hps(s),'XData',real(S),'YData',imag(S);    end    zliu=9+4i+r*exp(i*ts);    set(hc,'XData'

14、;,real(zliu),'YData',imag(zliu);    % = 利用相干叠加原理计算输出光强 =    aL=linspace(pi-asin(2/r),pi+asin(2/r),200);    aL(aL>pi)=-aL(aL>pi);    zL=9+4i+r*exp(i*aL);  %  左侧球面取样点    yL=linspace(-asin(2/r)*1.2,asin(2

15、/r)*1.2,200); %  右侧球面取样点    lambda=0.6358e-6;    dG=abs(1.1+4*i-zL)/lambda; % 输入面与左侧球面的光程差    Uz=exp(i*dG)./abs(1.1+4*i-zL);    zLm,yLm=meshgrid(zL,yL);    dG=abs(zLm-yLm)*n/lambda; % 左侧球面与右侧球面的光程差    Uz=sum(meshgrid(Uz).*exp(i*dG)./abs(zLm-yLm);    yLm,pLm=meshgrid(yL,pL);    dG=abs(yLm-pLm)/lambda; % 右侧球面与观察屏的光程差    Uz=sum(meshgrid(Uz).*exp(i*dG)./

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论