hello(adsbygoogle = window.adsbygoogle || []).push({});

i just copied the Numerical Code for the NLS equation which is the following:

%---specify input parameters

clear all;

distance=input('enter fiber length(in units of L_D)=');

beta2=input(' dispersion: 1 for normal, -1 for anomalous');

N=input('Nonlinear parameter N=');

mshape=input('m=0 for sech , m>0 for super-Gaussian =');

chirp0=0; % input pulse chirp

%--- set stimulation parameters

nt=1024; Tmax=32; % FFT points and window size

step_num=round(20*distance*N^2); % number of z steps

deltaz=distance/step_num; % step size in tau

%--- tau and omega arrays

tau=(-nt/2:nt/2-1)*dtau; % temporal grid

omega=(pi/Tmax)*[(0:nt/2-1)*(-nt/2 :-1)];% frequency grid

%--- input field profile

if mshape==0

uu= sech(tau)*exxp(-0.5i*chirp0*tau.^2); %soliton

else %super Gaussian

uu=exp((-0.5*(1+1i*chirp0)*tau.^(2*mshape)));

end

%-- plot input pulse shape and spectrum

temp=fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi);%spectrum

figure; subplot(2,1,1);

plot(tau,abs(uu).^2,'--k');hold on;

axis([-5 5 0 inf]);

xlabel('normalized time');

yalebl('normalized power');

title('input and output pulse shape and spectrum');

subplot(2,1,2);

plot(fftshift(omega)/(2*pi),abs(temp).^2,'--k');hold on;

axis([-.5 .5 0 inf]);

xlabel('normalized frequency');

ylabel('spectral power');

%---store dispersive phase shifts to speedup code

dispersion=exp(1i*0.5*beta2*omega.^2 *deltaz);%phase factor

hhz=1i*N^2*deltaz; % nonlinear phase factor

%******[beginning of main loop]****

%scheme:1/2N -> D-> 1/2N; first half step nonlinear

temp=uu.*exp(abs(uu).^2.*hhz/2); %note hhz/2

for n=1:step_num

f_temp=ifft(temp).*dispersion;

u=fft(f_temp);

temp=uu.*exp(abs(uu).^2.*hhz);

end

uu=temp.*exp(-abs(uu).^2.*hhz/2); % final field

temp=fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi);%final spectrum

%*****[end of main loop]********

%----- plot output pulse shape and spectrum

subplot(2,1,1)

plot(tau,abs(uu).^2,'-k')

subplot(2,1,2)

plot(fftshift(omega)/(2*pi),abs(temp).^2,'-k')

and as syntax there no mistake but when i wanted to run it they told me the following error:

Error in ==> Untitlednls at 3

distance= input('enter fiber length(in units of L_D)=');

what should i do even though i just copied it

**Physics Forums - The Fusion of Science and Community**

# [Matlab] Numerical Code for the NLS equation

Have something to add?

- Similar discussions for: [Matlab] Numerical Code for the NLS equation

Loading...

**Physics Forums - The Fusion of Science and Community**