分享FOX-LIX 程序

1.6k 3
发表于 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') ;

回复|共 3 个

Leelaser Lv.6 发表于 2009-5-3 10:47:24|吉林 | 查看全部
very good 顶
再也不能这样 Lv.10 发表于 2009-5-3 15:29:39|浙江 | 查看全部
many thanks to yyhutao................
matthewlas Lv.2 发表于 2009-5-8 16:35:02|北京 | 查看全部
怎么是死循环 呢 ????????????

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

投诉/建议联系

admin@discuz.vip

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2026 光电工程师社区 版权所有 All Rights Reserved. Powered by Discuz! X5.0 Licensed 鄂ICP备17021725号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表