Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version


qiskit.algorithms.VarQITE(ansatz, initial_parameters, variational_principle=None, estimator=None, ode_solver=<class 'qiskit.algorithms.time_evolvers.variational.solvers.ode.forward_euler_solver.ForwardEulerSolver'>, lse_solver=None, num_timesteps=None, imag_part_tol=1e-07, num_instability_tol=1e-07) GitHub(opens in a new tab)

Bases: VarQTE, ImaginaryTimeEvolver

Variational Quantum Imaginary Time Evolution algorithm.


  • ansatz (QuantumCircuit) – Ansatz to be used for variational time evolution.
  • initial_parameters (Mapping[Parameter, float(opens in a new tab)] | Sequence[float(opens in a new tab)]) – Initial parameter values for the ansatz.
  • variational_principle (ImaginaryVariationalPrinciple | None) – Variational Principle to be used. Defaults to ImaginaryMcLachlanPrinciple.
  • estimator (BaseEstimator | None) – An estimator primitive used for calculating expectation values of TimeEvolutionProblem.aux_operators.
  • ode_solver (Type[OdeSolver] | str(opens in a new tab)) – ODE solver callable that implements a SciPy OdeSolver interface or a string indicating a valid method offered by SciPy.
  • lse_solver (Callable[[np.ndarray, np.ndarray], np.ndarray] | None) – Linear system of equations solver callable. It accepts A and b to solve Ax=b and returns x. If None, the default np.linalg.lstsq solver is used.
  • num_timesteps (int(opens in a new tab) | None) – The number of timesteps to take. If None, it is automatically selected to achieve a timestep of approximately 0.01. Only relevant in case of the ForwardEulerSolver.
  • imag_part_tol (float(opens in a new tab)) – Allowed value of an imaginary part that can be neglected if no imaginary part is expected.
  • num_instability_tol (float(opens in a new tab)) – The amount of negative value that is allowed to be rounded up to 0 for quantities that are expected to be non-negative.




Apply Variational Quantum Time Evolution to the given operator.


evolution_problem (TimeEvolutionProblem) – Instance defining an evolution problem.


Result of the evolution which includes a quantum circuit with bound parameters as an evolved state and, if provided, observables evaluated on the evolved state.


ValueError(opens in a new tab) – If initial_state is included in the evolution_problem.

Return type


Was this page helpful?
Report a bug or request content on GitHub.