Monday, 30 November 2015

quantum mechanics - Solving one dimensional Schrodinger equation with finite difference method


Consider the one-dimensional Schrodinger equation


12D2ψ(x)+V(x)ψ(x)=Eψ(x)


where D2=d2dx2,V(x)=1|x|.


I want to calculate the ground state energy(which is known to be 0.5) with finite difference method.



Suppose ψ(a)=ψ(a)=0 for sufficiently large a.


Split [a,a] into N sub-intervals with equal length h: $$-a=x_1

Now use


D2ψ(xn)ψ(xn1)2ψ(xn)+ψ(xn+1)2h2


and


12D2ψ(xn)+V(xn)ψ(xn)=Eψ(xn)


we get


yn1+2(1+Vnh2)ynyn+1=2h2Eyn


where yn=ψ(xn).


Recall that y1=yN+1=0, we get



H(y2yN)=2h2E(y2yN)


where


H=(2(1+V2h2)112(1+V3h2)112(1+VNh2))


is a N1 tridiagonal matrix.


If the least eigenvalue of H is λ, then I expect λ2h2 to approximate the ground state energy E.


So I write a MATLAB program:


function m = onedimen1(a,M)

N = 2*M+1;


h = 2*a/N;
t = -a;

for i = 1 : N-2
t = t+h;
H(i,i) = 2*(1+vp(t)*h*h);
H(i+1,i) = -1;
H(i,i+1) = -1;
end


H(N-1,N-1) = 2*(1+vp(t+h)*h*h);

m1=eig(H)/(2*h*h);
m = m1(1:5);

function y = vp(x)
y = - 1/(abs(x)) ;
end
end


but when I try


onedimen1(10,100)
onedimen1(10,1000)

the least eigenvalue of H divided by 2h2 appears to be too small(and tends to negative infinity when N increases), but the second largest divided by 2h2 is always near 0.5.


Can anyone explain why?


(P.S. If I change V(x) to V(x)=1|x| then the least eigenvalue of H is stable)



Answer



I'm making this an answer because its too long to be a comment but its just an expansion of the things already stated in comments:


Non-normalizable states: The Schroedinger equation has an infinity of solutions but almost all of them do not have a finite norm (|ψ(x)|2dx is not finite). These are not phyiscally acceptable, since there would not be a probabilistic interpretation, amongst other issues. It is possible that when you discretize your system you are getting solutions that would have infinite norm in the limit h0 and so are not physically acceptable. I strongly suspect this is the issue. To see if this is case look at the wavefunction associated with your bad eigenvalue ( this is the eigenvector associated with the eigenvalue). If in the limit h0, your solution goes to increases faster than 1x as x0 than it is non-normalizable and unphysical.



'Softening the singularity': the issue is that you potential goes to infinity at some point and that general numerical simulations don't like it when things go to infinity. Especially having your potential go to negative infinity since the wavefunction wants to gather around the singularity. The way around this would be to replace your potential 1|x| with say 1x2+a2 where a is some number you pick, and solve for the states. This new potential is the same as the old when xa but it doesn't have any singularity anymore, so it shouldn't be a problem. To get back the real answer solve for the states with smaller and smaller values of a until you see that if a limit is reached. It does not necessarily reach a limit and in this case you will still get the state that diverges.


No comments:

Post a Comment

Understanding Stagnation point in pitot fluid

What is stagnation point in fluid mechanics. At the open end of the pitot tube the velocity of the fluid becomes zero.But that should result...