---
title: VarQITE (v0.46)
description: API reference for qiskit.algorithms.VarQITE in qiskit v0.46
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/0.46/qiskit.algorithms.VarQITE
---

# VarQITE

*class* `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](https://github.com/qiskit/qiskit/tree/stable/0.46/qiskit/algorithms/time_evolvers/variational/var_qite.py)

Bases: `VarQTE`, [`ImaginaryTimeEvolver`](/docs/api/qiskit/0.46/qiskit.algorithms.ImaginaryTimeEvolver "qiskit.algorithms.time_evolvers.imaginary_time_evolver.ImaginaryTimeEvolver")

Variational Quantum Imaginary Time Evolution algorithm.

**Parameters**

- **ansatz** ([*QuantumCircuit*](/docs/api/qiskit/0.46/qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) – Ansatz to be used for variational time evolution.
- **initial\_parameters** (*Mapping\[*[*Parameter*](/docs/api/qiskit/0.46/qiskit.circuit.Parameter "qiskit.circuit.Parameter")*,* [*float*](https://docs.python.org/3/library/functions.html#float)*] | Sequence\[*[*float*](https://docs.python.org/3/library/functions.html#float)*]*) – Initial parameter values for the ansatz.
- **variational\_principle** ([*ImaginaryVariationalPrinciple*](/docs/api/qiskit/0.46/qiskit.algorithms.time_evolvers.variational.ImaginaryVariationalPrinciple "qiskit.algorithms.time_evolvers.variational.ImaginaryVariationalPrinciple") *| None*) – Variational Principle to be used. Defaults to `ImaginaryMcLachlanPrinciple`.
- **estimator** ([*BaseEstimator*](/docs/api/qiskit/0.46/qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator") *| None*) – An estimator primitive used for calculating expectation values of TimeEvolutionProblem.aux\_operators.
- **ode\_solver** ([*Type*](/docs/api/qiskit/0.46/circuit_classical#qiskit.circuit.classical.types.Type "qiskit.circuit.classical.types.Type")*\[OdeSolver] |* [*str*](https://docs.python.org/3/library/stdtypes.html#str)) – 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*](https://docs.python.org/3/library/functions.html#int) *| 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*](https://docs.python.org/3/library/functions.html#float)) – Allowed value of an imaginary part that can be neglected if no imaginary part is expected.
- **num\_instability\_tol** ([*float*](https://docs.python.org/3/library/functions.html#float)) – The amount of negative value that is allowed to be rounded up to 0 for quantities that are expected to be non-negative.

## Methods

### evolve

`evolve(evolution_problem)`

Apply Variational Quantum Time Evolution to the given operator.

**Parameters**

**evolution\_problem** ([*TimeEvolutionProblem*](/docs/api/qiskit/0.46/qiskit.algorithms.TimeEvolutionProblem "qiskit.algorithms.time_evolvers.time_evolution_problem.TimeEvolutionProblem")) – Instance defining an evolution problem.

**Returns**

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.

**Raises**

[**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – If `initial_state` is included in the `evolution_problem`.

**Return type**

*VarQTEResult*
