Maintain unitary time evolution for a nonlinear ODE

106 Views Asked by At

I want to solve a nonlinear ODE of matrix $A(t)$ $$\mathrm{i}\dot A = A(t)M(t),\:\mathrm{with}\: M(t)=A^\dagger(t)H(t)A(t)$$ where $H(t)$ and hence $M(t)$ are Hermitian. Therefore, I presume the time evolution of $A(t)$ is unitary. Is there any algorithm that can maintain this unitarity? I've heard of Crank-Nicolson, but is it for linear ODE and $M$ is independent of $t$?

1

There are 1 best solutions below

4
On BEST ANSWER

You would like to get a formula $$A_{k+1}=A_kU_k,~~~U_k=(I-\tfrac12iS_k\Delta t)(I+\tfrac12iS_kΔt)^{-1},$$ where $S_k$ is symmetric/hermitean and close to $M(t_k,A_k)$. This construction ensures that $U^*=U^{-1}$ is unitary, so that if $A_0$ has this property, it is kept over the whole integration.

Now let's compare expansions to establish second order. Just setting $S_k=M_k$ would give a first order method. For the second derivative of the exact solution we get $$ -\ddot A=i\dot A M+iA(\dot A^*HA+A^*\dot HA+A^*H\dot A) =AM^2+A(-M^2+iA^*\dot HA+M^2) $$ So on the one hand $$ A(t_k+Δt)=A_k\Bigl(I-iMΔt-\tfrac12M^2Δt^2-i\tfrac12A^*\dot HAΔt^2+O(Δt^3)\Bigr) $$ and on the other $$\begin{align} A_{k+1}&=A_k\Bigl(I-\tfrac12iSΔt)(I-\tfrac12iSΔt+(\tfrac12iSΔt)^2+O(Δt^3)\Bigr) \\ &=A_k\Bigl(I-iSΔt-\tfrac12S^2Δt^2+O(Δt^3)\Bigr) \end{align}$$ Now try an expansion $S=M+NΔt+O(Δt^2)$. Comparing one reads off $N=\frac12A^*\dot HA$.

From this information one can construct a semi-implicit method $$\begin{align} S&=A_k^*H(t_k+\tfrac12Δt)A_k\\ A_{k+1}&=A_k(I-iSΔt/2)(I+iSΔt/2)^{-1} \end{align}$$