24小时热门版块排行榜    

查看: 536  |  回复: 0

jxnuhjj

新虫 (小有名气)

[交流] 非线性薛定谔方程,帮忙吧,急!(截止到2010年5月19日)

光在光纤中传播时满足非线性方程:Ez+i/2*Ett+a/2*E=i*r*|E|^2*E,
其中E为激光包络的慢变振幅,Ez为E对z(传输距离)求一阶偏导,Ett为E对t求二阶偏导。a,r为常数。怎么用Matlab求解呢?E是一数值序列,由其他方程求解出来的。
网上有相关程序,但都是基于具体脉冲形状的分步付里叶法,而我这里的E是离散序列。请前辈们赐教了呵呵。如:
clc; clear all; close all; clf;
cputime=0;
tic;
ln=1;
i=sqrt(-1);
Po=.00064; %input pwr in watts
alpha=0; % Fiber loss value in dB/km
alph=alpha/(4.343); %Ref page#55 eqn 2.5.3 Fiber optic Comm by GP Agrawal
gamma=0.003; %fiber non linearity in /W/m
to=125e-12; %initial pulse width in second
C=-2; %Input chirp parameter for first calculation
b2=-20e-27; %2nd order disp. (s2/m)
Ld=(to^2)/(abs(b2)); %dispersion length in meter
pi=3.1415926535;
Ao=sqrt(Po); %Amplitude
%----------------------------------------------------------
tau =- 4096e-12:1e-12: 4095e-12;%  dt=t/to
dt=1e-12;
rel_error=1e-5;
h=1000;% step size
for ii=0.1:0.1:1.5 %the various fiber lengths can be varied and this vector can be changed
z=ii*Ld;
    u=Ao*exp(-((1+i*(-C))/2)*(tau/to).^2);%page#47 G.P.AGrawal
    figure(1)
   plot(abs(u),'r');
   title('Input Pulse'); xlabel('Time'); ylabel('Amplitude');
grid on;
hold on;
l=max(size(u));   
%%%%%%%%%%%%%%%%%%%%%%%
fwhm1=find(abs(u)>abs(max(u)/2));
fwhm1=length(fwhm1);
dw=1/l/dt*2*pi;
w=(-1*l/2:1:l/2-1)*dw;
u=fftshift(u);
w=fftshift(w);
spectrum=fft(fftshift(u)); %Pulse spectrum
for jj=h:h:z
spectrum=spectrum.*exp(-alph*(h/2)+i*b2/2*w.^2*(h/2)) ;  %前h/2进行损耗和色散计算
f=ifft(spectrum);
f=f.*exp(i*gamma*((abs(f)).^2)*(h)); %h进行非线性计算
spectrum=fft(f);
spectrum=spectrum.*exp(-alph*(h/2)+i*b2/2*w.^2*(h/2)) ;  %后h/2进行损耗和色散计算
end
f=ifft(spectrum);
op_pulse(ln,=abs(f);%saving output pulse at all intervals
fwhm=find(abs(f)>abs(max(f)/2));
fwhm=length(fwhm);
ratio=fwhm/fwhm1; %PBR at every value
pbratio(ln)=ratio;%saving PBR at every step size
dd=atand((abs(imag(f)))/(abs(real(f))));
phadisp(ln)=dd;%saving pulse phase
ln=ln+1;
end
toc;
cputime=toc;
figure(2);
mesh(op_pulse(1:1:ln-1,);
title('Pulse Evolution');
xlabel('Time'); ylabel('distance'); zlabel('amplitude');

[ Last edited by jxnuhjj on 2010-5-18 at 09:10 ]
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jxnuhjj 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见