yyhutao 发表于 2009-5-1 00:17:36

分享FOX-LIX 程序

%————初始化—————————————
lm=632.8e-9;    %波长
L=100*lm;         %腔长
a=25*lm;         %腔镜线宽
k=2*pi/lm;         %波失
x1=linspace(-a,a,1000);%取1000个点积分
Un_n=zeros(1,1000);
Un_n_1=Un_n;
%———求解第一次的迭代结果——————
for m=1:1000
    x=x1(m);
y=exp((-i*k*(x-x1).^2)/(2*L));
Un_n(m)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
end
%————对第一次的归一化————
a=zeros(1,1000);
a=abs(Un_n);%求解振幅
yabsmax=max(a);%振幅最大值
Un_n=Un_n/yabsmax;%归一化
Un_2=a/yabsmax;%振幅归一化
Yn_2=angle(Un_n);%相位分布
%————迭代299次重复第一次过程——
for m=1:299
    for n=1:1000
         x=x1(n);
    y= exp((-i*k*(x-x1).^2)/(2*L)).*Un_n;
   Un_n_1(n)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
    end
   Un_n= Un_n_1;
    a=zeros(1,1000);
a=abs(Un_n);
yabsmax=max(a);
Un_n=Un_n/yabsmax;
end
Un_300=a/yabsmax;
Yn_300=angle(Un_n);
%————迭代第300次重复第一次过程——
for n=1:1000
         x=x1(n);
    y= exp((-i*k*(x-x1).^2)/(2*L)).*Un_n;
   Un_n_1(n)=sqrt(i/(pi*L)*exp(-i*k*L))*sum(y(1:1000));
end
Un_n= Un_n_1;
a=zeros(1,1000);
   a=abs(Un_n);
yabsmax=max(a);
Un_n=Un_n/yabsmax;
Un_301= a/yabsmax;
Yn_301=angle(Un_n);
%———画出振幅特性————
plot(Un_2) ;
hold on;
plot(Un_300,'r') ;
hold on;
plot(Un_301,'g') ;
%———画出相位特性————
figure;
plot(Yn_2) ;
hold on;
plot(Yn_300,'r') ;
hold on;
plot(Yn_301,'g') ;

Leelaser 发表于 2009-5-3 10:47:24

very good 顶:shutup:

再也不能这样 发表于 2009-5-3 15:29:39

many thanks to yyhutao................

matthewlas 发表于 2009-5-8 16:35:02

怎么是死循环 呢 ????????????
页: [1]
查看完整版本: 分享FOX-LIX 程序