Expectation — Hamiltonian and Pauli Expectation Values
API reference for expectation value computation functions. These functions compute the expected value of observable operators with respect to quantum states prepared by quantum programs.
expval_hamiltonian
Computes the expectation value of a Hamiltonian operator with respect to the quantum state prepared by a given program.
Signature
python
expval_hamiltonian(
prog: QProg,
hamiltonian: Hamiltonian,
shots: int = 1,
model: NoiseModel = NoiseModel(),
used_threads: int = 4,
backend: str = "CPU"
) -> floatParameters
| Parameter | Type | Description |
|---|---|---|
| prog | QProg | Quantum program preparing the state |
| hamiltonian | Hamiltonian | The Hamiltonian operator |
| shots | int | Number of measurement shots (default 1) |
| model | NoiseModel | Noise model for simulation (default ideal) |
| used_threads | int | Number of parallel threads (default 4) |
| backend | str | Computation backend: "CPU" or "GPU" (default "CPU") |
Returns
float — The expectation value
Examples
python
from pyqpanda3.core import H, CNOT, RX, QProg, expval_hamiltonian
from pyqpanda3.hamiltonian import PauliOperator
from pyqpanda3.hamiltonian import Hamiltonian
# Build a state preparation circuit
prog = QProg()
prog << H(0) << CNOT(0, 1) << RX(0, 0.5)
# Define a Hamiltonian: H = 0.5 * Z0 Z1 + 0.3 * X0
pauli_op = PauliOperator({"Z0 Z1": 0.5, "X0": 0.3})
ham = Hamiltonian(pauli_op)
# Compute expectation value
exp_val = expval_hamiltonian(prog, ham, shots=1000)
print(f"Expectation value: {exp_val}")Mathematical Background
The expectation value is computed as:
where
expval_pauli_operator
Computes the expectation value of a Pauli operator with respect to the quantum state prepared by a given program.
Signature
python
expval_pauli_operator(
prog: QProg,
pauli_operator: PauliOperator,
shots: int = 1,
model: NoiseModel = NoiseModel(),
used_threads: int = 4,
backend: str = "CPU"
) -> floatParameters
| Parameter | Type | Description |
|---|---|---|
| prog | QProg | Quantum program preparing the state |
| pauli_operator | PauliOperator | The Pauli operator |
| shots | int | Number of measurement shots (default 1) |
| model | NoiseModel | Noise model for simulation (default ideal) |
| used_threads | int | Number of parallel threads (default 4) |
| backend | str | Computation backend: "CPU" or "GPU" (default "CPU") |
Returns
float — The expectation value of the Pauli operator.
Examples
python
from pyqpanda3.core import H, QProg, expval_pauli_operator
from pyqpanda3.hamiltonian import PauliOperator
prog = QProg()
prog << H(0)
# Define Pauli operator: Z0
pauli_op = PauliOperator({"Z0": 1.0})
# Compute expectation value (should be ~0 for |+> state)
exp_val = expval_pauli_operator(prog, pauli_op, shots=1000)
print(f"Expectation of Z on |+>: {exp_val}")See Also
- Hamiltonian — Hamiltonian class
- PauliOperator — PauliOperator class
- Simulator — CPUQVM also provides expval methods (deprecated)
- VQCircuit — Variational circuit with gradient computation