查看: 1575|回复: 3

分享FOX-LIX 程序

[复制链接]
发表于 2009-5-1 00:17:36 | 显示全部楼层 |阅读模式
%————初始化—————————————
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') ;
发表于 2009-5-3 10:47:24 | 显示全部楼层
very good 顶
发表于 2009-5-3 15:29:39 | 显示全部楼层
many thanks to yyhutao................
发表于 2009-5-8 16:35:02 | 显示全部楼层
怎么是死循环 呢 ????????????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 Licensed © 2001-2026 Discuz! Team.|鄂ICP备17021725号-1

在本版发帖
关注公众号
QQ客服返回顶部