qrisp.operators.qubit.QubitOperator.get_measurement#
- QubitOperator.get_measurement(qarg, precision=0.01, backend=None, compile=True, compilation_kwargs={}, subs_dic={}, precompiled_qc=None, diagonalisation_method='commuting_qw', measurement_data=None)[source]#
This method returns the expected value of a Hamiltonian for the state of a quantum argument. Note that this method measures the hermitized version of the operator:
\[H = (O + O^\dagger)/2\]- Parameters:
- qargQuantumVariable or list[Qubit]
The quantum argument to evaluate the Hamiltonian on.
- precisionfloat, optional
The precision with which the expectation of the Hamiltonian is to be evaluated. The default is 0.01. The number of shots scales quadratically with the inverse precision.
- backendBackendClient, optional
The backend on which to evaluate the quantum circuit. The default can be specified in the file default_backend.py.
- compilebool, optional
Boolean indicating if the .compile method of the underlying QuantumSession should be called before. The default is
True
.- compilation_kwargsdict, optional
Keyword arguments for the compile method. For more details check
QuantumSession.compile
. The default is{}
.- subs_dicdict, optional
A dictionary of Sympy symbols and floats to specify parameters in the case of a circuit with unspecified, abstract parameters. The default is
{}
.- precompiled_qcQuantumCircuit, optional
A precompiled quantum circuit.
- diagonalisation_methodstr, optional
Specifies the method for grouping and diagonalizing the QubitOperator. Available are
commuting_qw
, i.e., the operator is grouped based on qubit-wise commutativity of terms, andcommuting
, i.e., the operator is grouped based on commutativity of terms. The default iscommuting_qw
.- measurement_dataQubitOperatorMeasurement
Cached data to accelerate the measurement procedure. Automatically generated by default.
- Returns:
- float
The expected value of the Hamiltonian.
- Raises:
- Exception
If the containing QuantumSession is in a quantum environment, it is not possible to execute measurements.
Examples
We define a Hamiltonian, and measure its expected value for the state of a QuantumVariable.
from qrisp import QuantumVariable, h from qrisp.operators.qubit import X,Y,Z qv = QuantumVariable(2) h(qv) H = Z(0)*Z(1) res = H.get_measurement(qv) print(res) #Yields 0.0011251406425802912