dq.solver.Expm
Expm()
Explicit matrix exponentiation to compute propagators.
Explicitly batch-compute the propagators for all time intervals in tsave
. These
propagators are then iteratively applied:
- starting from the initial state for
dq.sesolve()
anddq.mesolve()
, to compute states for all times intsave
, - starting from the identity matrix for
dq.sepropagator()
anddq.mepropagator()
, to compute propagators for all times intsave
.
For the Schrödinger equation with constant Hamiltonian \(H\), the propagator from time \(t_0\) to time \(t_1\) is an \(n\times n\) matrix given by $$ U(t_0, t_1) = \exp(-i (t_1 - t_0) H). $$
For the Lindblad master equation with constant Liouvillian \(\mathcal{L}\), the problem is vectorized and the propagator from time \(t_0\) to time \(t_1\) is an \(n^2\times n^2\) matrix given by $$ \mathcal{U}(t_0, t_1) = \exp((t_1 - t_0)\mathcal{L}). $$
Warning
This solver is not recommended for open systems of large dimension, due to the \(\mathcal{O}(n^6)\) scaling of computing the Liouvillian exponential.
Warning
This solver only supports constant or piecewise constant Hamiltonian and jump operators.
Supported gradients
This solver supports differentiation with
dq.gradient.Autograd
(default).