欢迎来到天天文库
浏览记录
ID:52684663
大小:110.50 KB
页数:5页
时间:2020-03-29
《分步傅里叶算法的MATLAB程序实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、分步傅里叶算法的MATLAB程序实现举例模型:其中:或线性部分:两边同时对x变量作傅里叶变换两边积分即最后有再对x变量作作傅里叶逆变换非线性部分:两边积分当时最后有折射率部分:两边同时对x变量作傅里叶变换再对x变量作作傅里叶逆变换MATLAB程序实现:clearalldelta=1;x0=1;%%-------------------n=2048;hx=0.06;x=(-n/2:n/2-1)*hx;hw=2*pi/(n*hx);w=fftshift((-n/2:n/2-1)*hw);%%----
2、---------------q=exp(-1*(x-x0).^2/2)+exp(-1*(x+x0).^2/2);%q=sech(x);u1(:,1)=(abs(q).^2)';%-------------------L=500;nm=L*100;h=L/nm;%-------------------forj=1:nmj;Dz=exp(delta*j*h)D=exp(i*((i*w).^2/2)*h/2);qstep1=ifft(D.*fft(q));n_index=ifft(fft(abs(q
3、step1).^2)./(Dz*w.^2+1));N=exp(i*n_index*h);qstep2=N.*qstep1;q=ifft(D.*fft(qstep2));u=abs(q);r=floor(2+(j-1)/L);u1(:,r)=u';endz=0:L*h:L;figure(1)mesh(x,z,u1');view(0,90)figure(2)plot(x,u1(:,end),'r',x,V,'b')虚时间变换:作虚时间变换:得到MATLAB程序实现:线性部分:两边同时傅里叶变换两边积
4、分即最后有再作傅里叶逆变换非线性部分:两边积分当时最后有clearallLh=0;p=1;omega=1;Dz=0;%%-------------------n=2048;hx=0.06;x=(-n/2:n/2-1)*hx;hw=2*pi/(n*hx);w=fftshift((-n/2:n/2-1)*hw);%%-------------------q=exp(-1*(x).^2/2);%q=sech(x);intensity=2;u1(:,1)=(abs(q).^2)';%----------
5、---------V=p*(cos(omega*x)).^2.*(1+Lh*exp(-x.^8/128));%--------------------L=500;nm=L*100;h=L/nm;%-------------------forj=1:nmj;D=exp(((i*w).^2/2)*h/2);qstep1=ifft(D.*fft(q));n_index=ifft(fft(abs(qstep1).^2)./(Dz*w.^2+1));N=exp((V+n_index)*h);qstep2=
6、N.*qstep1;q=ifft(D.*fft(qstep2));q=sqrt(intensity)*q/sqrt(sum(abs(q).^2)*hx);u=abs(q);r=floor(2+(j-1)/L);u1(:,r)=u';endkin=-sum((q(3:end)-q(1:end-2)).^2)/4/hx;p_i=sum(2*q.^2.*(abs(q).^2+V+n_index))*hx;b=(kin+p_i)/2/intensityz=0:L*h:L;figure(1)mesh(x,
7、z,u1');view(0,90)figure(2)plot(x,u1(:,end),'r',x,V,'b')
此文档下载收益归作者所有