I have been using Qiskit to simulate some oscillators using Hamiltonian simulation. A next step I would like to make is adding dissipation of these oscillators in some way. I think it would be possible by having a partially complex 'Hamiltonian' as that would result in something proportional to

$$ e^{Ht} $$

However when I try this, I get errors about the complex part. I understand that a Hamiltonian is normally Hermitian, but is there a way to simulate this in Qiskit anyway?

If not, are there any other ways to simulate a dissipative system?


1 Answer 1


You can use quantum imaginary time evolution (QITE) techniques to simulate $e^{Ht}$. Qiskit algorithms package contains ImaginaryTimeEvolver interface with two implementations:

The following code snippet shows how to use SciPyImaginaryEvolver:

from qiskit.quantum_info import Statevector, SparsePauliOp
from qiskit_algorithms import SciPyImaginaryEvolver
from qiskit_algorithms.time_evolvers.time_evolution_problem import TimeEvolutionProblem

initial_state = Statevector.from_label("0")
hamiltonian = SparsePauliOp.from_list([('X', 1.0)])
tau = 100

evolution_problem = TimeEvolutionProblem(hamiltonian, tau, initial_state)
classic_evolver = SciPyImaginaryEvolver(num_timesteps=300)
result = classic_evolver.evolve(evolution_problem)

  • $\begingroup$ Can VarQITE be combined with TrotterQRTE? I’m guessing that VarQITE is less efficient than TrotterQRTE.? And only a small part of my Hamiltonian is imaginary. $\endgroup$ Commented May 26 at 15:04

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.