期望值 — 哈密顿量与泡利期望值
期望值计算函数的 API 参考。这些函数计算可观测量算符相对于量子程序制备的量子态的期望值。
expval_hamiltonian
计算哈密顿量算符相对于给定程序制备的量子态的期望值。
签名
python
expval_hamiltonian(
prog: QProg,
hamiltonian: Hamiltonian,
shots: int = 1,
model: NoiseModel = NoiseModel(),
used_threads: int = 4,
backend: str = "CPU"
) -> float参数
| 参数 | 类型 | 说明 |
|---|---|---|
| prog | QProg | 制备态的量子程序 |
| hamiltonian | Hamiltonian | 哈密顿量算符 |
| shots | int | 测量 shot 数(默认 1) |
| model | NoiseModel | 模拟的噪声模型(默认理想) |
| used_threads | int | 并行线程数(默认 4) |
| backend | str | 计算后端:"CPU" 或 "GPU"(默认 "CPU") |
返回
float — 哈密顿量的期望值
示例
python
from pyqpanda3.core import H, CNOT, RX, QProg, expval_hamiltonian
from pyqpanda3.hamiltonian import PauliOperator
from pyqpanda3.hamiltonian import Hamiltonian
# 构建态制备线路
prog = QProg()
prog << H(0) << CNOT(0, 1) << RX(0, 0.5)
# 定义哈密顿量:H = 0.5 * Z0 Z1 + 0.3 * X0
pauli_op = PauliOperator({"Z0 Z1": 0.5, "X0": 0.3})
ham = Hamiltonian(pauli_op)
# 计算期望值
exp_val = expval_hamiltonian(prog, ham, shots=1000)
print(f"Expectation value: {exp_val}")数学背景
期望值计算如下:
其中
expval_pauli_operator
计算泡利算符相对于给定程序制备的量子态的期望值。
签名
python
expval_pauli_operator(
prog: QProg,
pauli_operator: PauliOperator,
shots: int = 1,
model: NoiseModel = NoiseModel(),
used_threads: int = 4,
backend: str = "CPU"
) -> float参数
| 参数 | 类型 | 说明 |
|---|---|---|
| prog | QProg | 制备态的量子程序 |
| pauli_operator | PauliOperator | 泡利算符 |
| shots | int | 测量 shot 数(默认 1) |
| model | NoiseModel | 模拟的噪声模型(默认理想) |
| used_threads | int | 并行线程数(默认 4) |
| backend | str | 计算后端:"CPU" 或 "GPU"(默认 "CPU") |
返回
float — 泡利算符的期望值。
示例
python
from pyqpanda3.core import H, QProg, expval_pauli_operator
from pyqpanda3.hamiltonian import PauliOperator
prog = QProg()
prog << H(0)
# 定义泡利算符:Z0
pauli_op = PauliOperator({"Z0": 1.0})
# 计算期望值(对于 |+> 态应该约为 0)
exp_val = expval_pauli_operator(prog, pauli_op, shots=1000)
print(f"Expectation of Z on |+>: {exp_val}")