# Numerical solution to the Landau-Zener problem

I tried to use a midpoint method and numerically solve the Schrödinger equation for the original Landau-Zener (LZ) problem: a $$2\times 2$$ Hamiltonian

$$\left(\begin{array}{c} \alpha t\\ \delta \end{array}\begin{array}{c} \delta \\-\alpha t \end{array}\right)$$

with initial condition $$\psi=(1, 0)$$ (the ground state) at some $$t=−1000$$, and say $$\alpha=0.01$$ and $$\delta=0.04$$. I took a huge amount of time slices $$(10^8)$$ which gives a time step of ~$$10^{−5}$$.

My goal is to reach the exact value from the LZ formula, but no matter how small a time step I take, I always have an error of 0.1%, after averaging over the oscillations that arise in the asymptotic behaviour.

Has anyone encountered this problem?

### Here is my Matlab code:

alpha=0.01;

delta=0.04;

N=100000001;

ti=-1000;

tf=1000;

time=linspace(ti,tf,N);

sec=time(2)-time(1);

c1=[1,zeros(1,N-1)];

c2=[0,zeros(1,N-1)];

p=exp(-2*pi*delta^2/(alpha*2));

disp(sqrt(p))

for t=2:N

c1(t)=c1(t-1)-1i*sec*(alpha*(time(t-1)+sec/2)*(c1(t-1)-1i*sec/2*
(alpha*time(t-1)*c1(t-1)+delta*c2(t-1)))+delta*(c2(t-1)-1i*sec/2*(-alpha*time(t-
1)*c2(t-1)+delta*c1(t-1))));

c2(t)=c2(t-1)-1i*sec*(-alpha*(time(t-1)+sec/2)*(c2(t-1)-1i*sec/2*(-

alpha*time(t-1)*c2(t-1)+delta*c1(t-1)))+delta*(c1(t-1)-1i*sec/2*(alpha*time(t-

1)*c1(t-1)+delta*c2(t-1))));

end

disp(sum(abs(c1(end-(N-1)/50:end))/((N-1)/50+1)));


Also posted at Physics SE.

I encountered a similar problem recently and i assume it is a purely numerical issue. When you plot $$|c_1(t)|^2$$ you see that even at $$t=1000$$, it oscillates rapidly with amplitude larger than your error. With larger values for ti, tf and N, the result still changes. Did you try other integration routines than your midpoint method? I am no expert in this field, but maybe there are integration routines that are more efficient with osciallting functions.

However, i wonder how you got your equations for $$c1(t)$$ and $$c2(t)$$. When I set up a Hamiltonian similar to yours, i get:

$$\dot c_1 = -i \alpha t c_1 - i \delta c_2$$ $$\dot c_2 = -i \delta c_1 + i \alpha t c_2$$

My equations (using the midpoint mehtod) then contain only the first summand of your equations, i.e.:

c1(t)=c1(t-1)-1i*sec*(alpha*(time(t-1)+sec/2)*(c1(t-1)-1i*sec/2*(alpha*time(t-1)*c1(t-1)+delta*c2(t-1))));

c2(t)=c2(t-1)-1i*sec*(-alpha*(time(t-1)+sec/2)*(c2(t-1)-1i*sec/2*(-alpha*time(t-1)*c2(t-1)+delta*c1(t-1))));


$$c_1(t+\Delta t) = c_1(t) - i \Delta t \left[ \alpha (t+\Delta t) \left( c_1(t) -i \frac{\Delta t}{2} \left[ \alpha t c_1(t) + \delta c_2(t) \right] \right) \right]$$
• I apologize, I simply made an error when plugging the differential equations into the formula for the midpoint method, your equations are correct. However, I tried various different integration methods and found out that the Adams-Moulton-Bashfort Predictor-Corrector method worked best for me. However, even with this algorithm, the resulting "survival probability" varies by $\pm0.1$% depending on the integration limits and time step. However, this accuracy is sufficient for me. – Thomas Nov 6 '19 at 19:02