qml.math.expectation_value

expectation_value(operator_matrix, state_vector, check_state=False, check_operator=False, c_dtype='complex128')[source]

Compute the expectation value of an operator with respect to a pure state.

The expectation value is the probabilistic expected result of an experiment. Given a pure state, i.e., a state which can be represented as a single vector \(\ket{\psi}\) in the Hilbert space, the expectation value of an operator \(A\) can computed as

\[\langle A \rangle_\psi = \bra{\psi} A \ket{\psi}\]
Parameters
  • operator_matrix (tensor_like) – operator matrix with shape (2**N, 2**N) or (batch_dim, 2**N, 2**N).

  • state_vector (tensor_like) – state vector with shape (2**N) or (batch_dim, 2**N).

  • check_state (bool) – if True, the function will check the validity of the state vector via its shape and the norm.

  • check_operator (bool) – if True, the function will check the validity of the operator via its shape and whether it is hermitian.

  • c_dtype (str) – complex floating point precision type.

Returns

Expectation value of the operator for the state vector.

Return type

float

Example

The expectation value for any operator can obtained by passing their matrix representation as an argument. For example, for a 2 qubit state, we can compute the expectation value of the operator \(Z \otimes I\) as

>>> import pennylane as qml
>>> import numpy as np
>>> state_vector = [1 / np.sqrt(2), 0, 1 / np.sqrt(2), 0]
>>> operator_matrix = qml.matrix(qml.PauliZ(0), wire_order=[0, 1])
>>> qml.math.expectation_value(operator_matrix, state_vector)
tensor(-2.23711432e-17+0.j, requires_grad=True)

Contents

Using PennyLane

Release news

Development

API

Internals