9

Under the influence of a time-independent Hamiltonian $H$, a state $|\psi\rangle$ will evolve after a time $t$ to the final state $|\psi(t)\rangle=e^{-iH t}|\psi\rangle$, while in the most general case of a time-dependent Hamiltonian $H(t)$, the final state can be formally written as $$|\psi(t)\rangle=T\exp\left(-i\int_{t_0}^{t}dt\,H(t)\right) |\psi\rangle.$$ What are the preferred numerical methods to compute $|\psi(t)\rangle$, given $H$, $t$ and $|\psi\rangle$?

glS
  • 27,510
  • 7
  • 37
  • 125

1 Answers1

7

It depends on the Hamiltonian. There are three particular questions whose answers might influence your choice of strategy:

  • Does the Hamiltonian have any particular structure or symmetry?
  • How quickly does the Hamiltonian change in time?
  • What do you know about the initial state in relation to the initial Hamiltonian?

Obviously, if the Hamiltonian has any particular structure or symmetry, you should start by taking advantage of it. For example, if your Hamiltonian $H$ satisfies $$\left[H,\sum_{i=1}^NZ_i\right]=0,$$ then you can split $H$ into a series of subspaces $H=\bigoplus_{i=0}^NH_i$, whose evolutions you can handle separately. This is particularly good if your initial state turns out to be supported on a small number of those subspaces. Another particularly trivial case is of $[H(t),H(s)]=0$ for all $s$ and $t$. In that case, you would start by decomposing the initial state in terms of the eigenvectors.

If your Hamiltonian is changing slowly in time, and your initial state only has support on a small number of eigenstates, it might be worthwhile investigating whether an adiabatic evolution is occurring. In that case, it may be "just" a case of finding the final Hamiltonian and some of its eigenstates.

If it's changing at a reasonable speed, but your initial state still has support only on a small number of the low-energy eigenvectors, then you might use matrix-product states (especially if your Hamiltonian has a one-dimensional structure).

If your Hamiltonian is changing very quickly in time, then the default option of Trotterising the Hamiltonian can work quite badly, with errors building quickly. There are improved techniques that work in these sorts of situations, but I've never seen them applied in the discrete setting of qubits (that said, I've never looked). Things like the explicit Arnoldi method, or explicit Fatunla method. You may find some useful details here.

The default method, which will always work (if you take a small enough $\delta t$) is to split the Hamiltonian evolution into lots of little time steps $\delta t$ and just evaluate $$ \ldots e^{-iH(5\delta t/2)\delta t}e^{-iH(3\delta t/2)\delta t}e^{-iH(\delta t/2)\delta t}|\psi\rangle. $$ This can be improved by using Runge-Kutta type techniques. You can also vary the size of the time step depending on how quickly the Hamiltonian is changing at a particular instant. Some of the quantum techniques for simulation may also be interesting. There have been recent advancements that massively improve the accuracy of those simulations by moving away from the standard Trotterisation.

There's probably plenty more that could be said, but I guess that's enough to get you started.

DaftWullie
  • 62,671
  • 4
  • 55
  • 140