I want to implement time evolution operator of a hamiltonian in qiskit. I am using circ.hamiltonian(H,time,list(range(N))) to get the circuit. This method does not allow me to input imaginary time. Is there a way I can get the time evolution operator in qiskit with imaginary time as input?


1 Answer 1


Imaginary time evolution cannot be implemented with a unitary gate, as $e^{-tH}$ for a Hamiltonian $H$ is no unitary operation and does not preserve the norm of the quantum state. Classically, we can just renormalize the state after the application $$ \begin{aligned} |\tilde\psi(t+\Delta_t)\rangle &= e^{-\Delta_t H}|\psi(t)\rangle \\ |\psi(t+\Delta_t)\rangle &= \frac{|\tilde\psi(t+\Delta_t)\rangle}{\sqrt{\langle\tilde\psi(t+\Delta_t)|\tilde\psi(t+\Delta_t)\rangle}} \end{aligned} $$ However on the quantum computer we have to make use of different techniques, as we cannot simply normalize the state (nor implement the non-unitary operation).

Common approaches are

The simplest to get started is likely the variational time evolution, as there is also a Qiskti implementation available.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.