Simulating Schrödinger Equation in 1 Dimension


The time dependent schrodingers equation is:

ψ(x,t)t=iH^ψ(x,t)

If this is implemented as simple as possible with Euler's method, it will usually be inaccurate and cause the waveform to explode due to integration errors. Simulating the equation will require a more accurate method.


The iterative simulation will approximate ψ as a finite dimensional vector, so it should approximate H^ a matrix.

ψ(x,t)t=iH^ψ(x,t)

Assuming the Hamiltonian is constant, integrating gets

ψ(x,t+Δt)=eiH^Δtψ(x,t)

The Hamiltonian operator is equal to H^=22m2x2+V(x).

The second derivative can be calculated by:

limh0df(x+h)dxdf(x)dxh
limh0f(x+h)f(x)hf(x)f(xh)hh
limh0(f(x+h)f(x))(f(x)f(xh))h2
limh0f(x+h)2f(x)+f(xh)h2

We can approximate this with a finite difference.

f(x+Δx)2f(x)+f(xΔx)Δx2

So for each position of 22m2x2 we can make a matrix below. We assume no repeating boundary conditions (equivelent to a discrete sine transform).

22m1Δx2[1112112111]

Then for the V(x) part, it is just a value at each point:

[V(0)V(1)V(n1)V(n)]

So H^ is just the sum of those two matricies

H^=22m1Δx2[1112112111]+[V(0)V(1)V(n1)V(n)]

And then each discrete step of the simulation will go through a certain change in time

ψt+1=eiH^Δtψt