# VarQITE

`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)`

Bases: `VarQTE`

, `ImaginaryTimeEvolver`

Variational Quantum Imaginary Time Evolution algorithm.

**Parameters**

**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.

## Methods

### evolve

`evolve(evolution_problem)`

Apply Variational Quantum Time Evolution to the given operator.

**Parameters**

**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** (opens in a new tab) – If `initial_state`

is included in the `evolution_problem`

.

**Return type**

*VarQTEResult*