I am getting NaN values after some iterations in my loop
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I get NaN values after few iterations using fourier transform this happens every time I add the fourier transform of V*psi into the equation for that I am using fft fxn
X=(-M/2:M/2-1)*dx;
dk=2*pi/(M*dx);
K=(-M/2:M/2-1)*dk;
psi=(1/sqrt(2)).*randn(1,M)+(i/sqrt(2)).*randn(1,M);
V=(X.^2)/2;
Tmax=40;
dt=0.004;
Nt=round(Tmax/dt);
Fpsi=zeros(Nt+1,M);
FVpsi=zeros(Nt,M);
Fpsisq=zeros(Nt,M);
for t=1:Nt
Fpsi(t,:)=fft(psi(t,:));
FVpsi(t,:)=fft(V.*psi(t,:));
Fpsisq(t,:)=fft((abs(psi(t,:)).^2).*psi(t,:));
Fpsi(t+1,:)=Fpsi(t,:)+dt.*(K.*K.*Fpsi(t,:)+FVpsi+g.*Fpsi);
psi(t+1,:)=ifft(Fpsi(t+1,:));
end
0 Commenti
Risposte (1)
Matt J
il 3 Mag 2021
To find out where they are first introduced, you can use,
>> dbstop if naninf
2 Commenti
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!