PauliProduct¶
from cascaqit import PauliProduct
PauliProduct ¶
PauliProduct(
terms: Iterable[PauliInput], *, name: str | None = None
) -> Observable
从一组 Pauli 因子创建 Observable,保留声明顺序。terms 的每个元素可为 PauliTerm 或 (target, basis) 二元组;target 是逻辑名称,basis 为大写 I、X、Y、Z 字符串或 PauliBasis 枚举。后两种类型位于 cascaqit.observables。
name 可省略,默认由各因子按顺序连接,如 X(q0)*Y(q1)。terms 不能为空,也不能重复目标;同一目标上连续作用的算符应先在数学上化简,不要在此处重复填写。错误输入形状抛出 TypeError,不支持的基、空项或重复目标抛出 ValueError。
from cascaqit import PauliProduct
xy = PauliProduct((("q0", "X"), ("q1", "Y")), name="XY")
assert xy.targets == ("q0", "q1")
assert tuple(b.value for b in xy.bases) == ("X", "Y")
返回值只描述乘积,不包含系数或执行后的期望值。加权求和使用 PauliHamiltonian;批量求值放入 ObservableSet。见哈密顿量与观测量。