Runge-Kutta methods#
Runge-Kutta methods use a Taylor expansion of the state to approximate
\(\Delta \beta\) can either be real or imaginary time, and hence these methods are suitable for both evolution and optimization problems. When using MPS, these methods perform a global optimization of the MPS at each step, i.e., they update all tensors simultaneously.
The order of the expansion p determines the truncation error of the method, which is \(O(\Delta \beta ^{p+1})\), and also the cost of the method, since a higher order implies more operations. Thus, it is important to consider trade-off in cost and accuracy to choose the most suitable method for each application.
The SeeMPS library considers four methods.
1. Euler method#
This is an explicit, first-order Taylor approximation of the evolution, with an error \(\mathcal{O}(\Delta\beta^2)\) and a simple update with a fixed time-step \(\beta_k = k \Delta\beta\).
2. Improved Euler or Heun method#
This is a second-order, fixed-step explicit method that uses two matrix-vector multiplications and two linear combinations of vectors to achieve an error \(\mathcal{O}(\Delta\beta^3)\).
3. Fourth-order Runge-Kutta method#
This algorithm achieves an error \(\mathcal{O}(\Delta\beta^5)\) using four matrix-vector multiplications and four linear combinations of vectors.
4. Runge-Kutta-Fehlberg method#
The Runge-Kutta-Fehlberg algorithm is an adaptative step-size solver that combines a fifth-order accurate integrator \(O(\Delta\beta^5)\) with a sixth-order error estimator \(O(\Delta\beta^6)\). This combination dynamically adjusts the step size \(\Delta\beta\) to maintain the integration error within a specified tolerance. The method requires an initial estimate of the step size, which can be obtained from a simpler method. Each iteration involves six matrix-vector multiplications and six linear combinations, and it may repeat the evolution steps if the proposed step size is deemed unsuitable.
|
Solve a Schrodinger equation using the Euler method. |
|
Solve a Schrodinger equation using the 2nd order Euler method. |
|
Solve a Schrodinger equation using a fourth order Runge-Kutta method. |
|
Solve a Schrodinger equation using a fourth order Runge-Kutta method. |