VQE应用 水分子模拟
In [1]:
Copied!
import numpy as np
import qibo
from qibo import gates, models, hamiltonians
from qibo.symbols import X, Y, Z
import matplotlib.pyplot as plt
# 设置后端 (根据你的硬件 Intel i5-7400/GT 730,推荐默认 numpy 或 numba,显卡较老不建议强制 cuda)
qibo.set_backend("qibojit")
print(f"Qibo backend: {qibo.get_backend()}")
import numpy as np
import qibo
from qibo import gates, models, hamiltonians
from qibo.symbols import X, Y, Z
import matplotlib.pyplot as plt
# 设置后端 (根据你的硬件 Intel i5-7400/GT 730,推荐默认 numpy 或 numba,显卡较老不建议强制 cuda)
qibo.set_backend("qibojit")
print(f"Qibo backend: {qibo.get_backend()}")
[Qibo 0.2.23|INFO|2025-12-31 14:50:30]: Using qibojit (numba) backend on /CPU:0
Qibo backend: qibojit (numba)
目标: $H|\psi(\vec{\theta})\rangle = E|\psi(\vec{\theta})\rangle $,明确目标是寻找参数 $ \vec{\theta} $ 使得 $ \langle H \rangle $ 最小。
构建论文所述的 Ansatz¶
根据论文公式 (6) 和图 1 描述,构建特定参数化电路。
In [2]:
Copied!
def create_paper_ansatz(n_qubits, layers, params):
"""
Constructs the ansatz described in arXiv:2512.22572.
Structure: (RX -> RZ) layers interleaved with CZ entangling layers.
Args:
n_qubits (int): N
layers (int): M
params (np.array): Flat array of parameters. Size must be 2*N*(layers + 1).
"""
c = models.Circuit(n_qubits)
param_idx = 0
# 验证参数数量
expected_params = 2 * n_qubits * (layers + 1)
if len(params) != expected_params:
raise ValueError(f"Expected {expected_params} parameters, got {len(params)}")
# 循环构建 M 层
for layer in range(layers):
# 1. 旋转层 (Rotation Layer): RX, RZ
for q in range(n_qubits):
c.add(gates.RX(q, theta=params[param_idx]))
param_idx += 1
c.add(gates.RZ(q, theta=params[param_idx]))
param_idx += 1
# 2. 纠缠层 (Entanglement Layer): CZ chain [cite: 31, 34]
# 论文 Fig 1 显示线性纠缠 (Linear Entanglement) 或全连接,这里采用线性纠缠
for q in range(n_qubits - 1):
c.add(gates.CZ(q, q + 1))
# 3. 最后一层旋转 (Final Rotation Layer)
# 公式 2N(M+1) 暗示最后还有一层旋转
for q in range(n_qubits):
c.add(gates.RX(q, theta=params[param_idx]))
param_idx += 1
c.add(gates.RZ(q, theta=params[param_idx]))
param_idx += 1
return c
def create_paper_ansatz(n_qubits, layers, params):
"""
Constructs the ansatz described in arXiv:2512.22572.
Structure: (RX -> RZ) layers interleaved with CZ entangling layers.
Args:
n_qubits (int): N
layers (int): M
params (np.array): Flat array of parameters. Size must be 2*N*(layers + 1).
"""
c = models.Circuit(n_qubits)
param_idx = 0
# 验证参数数量
expected_params = 2 * n_qubits * (layers + 1)
if len(params) != expected_params:
raise ValueError(f"Expected {expected_params} parameters, got {len(params)}")
# 循环构建 M 层
for layer in range(layers):
# 1. 旋转层 (Rotation Layer): RX, RZ
for q in range(n_qubits):
c.add(gates.RX(q, theta=params[param_idx]))
param_idx += 1
c.add(gates.RZ(q, theta=params[param_idx]))
param_idx += 1
# 2. 纠缠层 (Entanglement Layer): CZ chain [cite: 31, 34]
# 论文 Fig 1 显示线性纠缠 (Linear Entanglement) 或全连接,这里采用线性纠缠
for q in range(n_qubits - 1):
c.add(gates.CZ(q, q + 1))
# 3. 最后一层旋转 (Final Rotation Layer)
# 公式 2N(M+1) 暗示最后还有一层旋转
for q in range(n_qubits):
c.add(gates.RX(q, theta=params[param_idx]))
param_idx += 1
c.add(gates.RZ(q, theta=params[param_idx]))
param_idx += 1
return c
In [30]:
Copied!
create_paper_ansatz(2,3, np.random.rand(2*2*(3+1))).draw()
create_paper_ansatz(2,3, np.random.rand(2*2*(3+1))).draw()
0: ─RX─RZ─o─RX─RZ─o─RX─RZ─o─RX─RZ─ 1: ─RX─RZ─Z─RX─RZ─Z─RX─RZ─Z─RX─RZ─
定义 He-H+ 哈密顿量¶
论文提到 He-H+ 是双比特系统 。具体系数 J 随距离 R 变化。由于论文未提供具体 R 下的系数值表,此处演示如何使用 Qibo 的符号哈密顿量构建公式 (7) 的结构。 注:实际计算需调用量子化学库 (如 PySCF/Qibo-chem) 计算积分,此处用模拟系数代替以演示 VQE 流程。
我们调用pennylane来计算哈密顿量的系数
In [21]:
Copied!
import pennylane as qml
from pennylane import qchem
import numpy as np
# 转换因子: Angstrom -> Bohr
ANGSTROM_TO_BOHR = 1.889726125
# 设定物理距离 R = 0.923 Angstrom (论文最佳值) 或 0.9 Angstrom
r_angstrom = 0.9 # 你想用的值
r_bohr = r_angstrom * ANGSTROM_TO_BOHR # 转换为 ~1.70 Bohr
print(f"设定距离: {r_angstrom} Angstrom = {r_bohr:.6f} Bohr")
symbols = ["He", "H"]
# 关键修改:这里的坐标数值必须是 Bohr
coordinates = np.array([0.0, 0.0, 0.0, 0.0, 0.0, r_bohr])
print("正在计算哈密顿量 (已修正单位)...")
H_full, qubits = qchem.molecular_hamiltonian(
symbols,
coordinates,
charge=1,
basis="sto-3g"
)
# 获取生成元
generators = qchem.symmetry_generators(H_full)
paulixops = qchem.paulix_ops(generators, qubits)
# 再次验证你之前的那个 Sector [-1, -1] (通常是全负或全正对应基态)
target_sector = [-1, -1] # 基于你之前的运行结果,能量最低的那个 Sector
try:
H_tapered = qchem.taper(H_full, generators, paulixops, target_sector)
mat = qml.matrix(H_tapered)
eigvals = np.linalg.eigvalsh(mat)
print(f"\nSector {target_sector} 在 R={r_angstrom}A 时的基态能量: {eigvals[0]:.6f} Hartree")
expected = -2.86
if np.isclose(eigvals[0], expected, atol=0.02):
print(">>> 成功复现!这才是真正的基态能量。")
print(">>> 请使用下面这组参数更新你的 Qibo 代码:")
print(H_tapered)
else:
print(f">>> 警告:能量 ({eigvals[0]}) 仍与预期 (-2.86) 有差异,建议尝试 R=0.923A (Peruzzo 论文精确值)。")
except Exception as e:
print(e)
import pennylane as qml
from pennylane import qchem
import numpy as np
# 转换因子: Angstrom -> Bohr
ANGSTROM_TO_BOHR = 1.889726125
# 设定物理距离 R = 0.923 Angstrom (论文最佳值) 或 0.9 Angstrom
r_angstrom = 0.9 # 你想用的值
r_bohr = r_angstrom * ANGSTROM_TO_BOHR # 转换为 ~1.70 Bohr
print(f"设定距离: {r_angstrom} Angstrom = {r_bohr:.6f} Bohr")
symbols = ["He", "H"]
# 关键修改:这里的坐标数值必须是 Bohr
coordinates = np.array([0.0, 0.0, 0.0, 0.0, 0.0, r_bohr])
print("正在计算哈密顿量 (已修正单位)...")
H_full, qubits = qchem.molecular_hamiltonian(
symbols,
coordinates,
charge=1,
basis="sto-3g"
)
# 获取生成元
generators = qchem.symmetry_generators(H_full)
paulixops = qchem.paulix_ops(generators, qubits)
# 再次验证你之前的那个 Sector [-1, -1] (通常是全负或全正对应基态)
target_sector = [-1, -1] # 基于你之前的运行结果,能量最低的那个 Sector
try:
H_tapered = qchem.taper(H_full, generators, paulixops, target_sector)
mat = qml.matrix(H_tapered)
eigvals = np.linalg.eigvalsh(mat)
print(f"\nSector {target_sector} 在 R={r_angstrom}A 时的基态能量: {eigvals[0]:.6f} Hartree")
expected = -2.86
if np.isclose(eigvals[0], expected, atol=0.02):
print(">>> 成功复现!这才是真正的基态能量。")
print(">>> 请使用下面这组参数更新你的 Qibo 代码:")
print(H_tapered)
else:
print(f">>> 警告:能量 ({eigvals[0]}) 仍与预期 (-2.86) 有差异,建议尝试 R=0.923A (Peruzzo 论文精确值)。")
except Exception as e:
print(e)
设定距离: 0.9 Angstrom = 1.700754 Bohr 正在计算哈密顿量 (已修正单位)... Sector [-1, -1] 在 R=0.9A 时的基态能量: -2.862618 Hartree >>> 成功复现!这才是真正的基态能量。 >>> 请使用下面这组参数更新你的 Qibo 代码: -1.925266264474486 * I([0, 1]) + 0.5232818566613453 * Z(1) + 0.5232818566613453 * Z(0) + 0.11778623791503934 * (Z(0) @ Z(1)) + -0.11439867749890963 * (X(0) @ Z(1)) + -0.11439867815975757 * X(0) + 0.11439867815975757 * X(1) + 0.11439867749890963 * (Z(0) @ X(1)) + -0.13067128734943087 * (Y(0) @ Y(1))
这些 $Z_0, X_1 Z_0, X_1 $ 系数并非随机数,而是将电子相互作用(费米子)通过 Jordan-Wigner 变换映射到量子比特的结果。引用 Peruzzo et al. (2014) 说明这是 He-H+ 分子的标准模型。
In [22]:
Copied!
# 探索 terms() 的返回格式
terms_data = H_tapered.terms()
print(f"terms() 返回类型: {type(terms_data)}")
print(f"terms() 内容: {terms_data}")
# 通常 terms() 返回一个元组 (coefficients, observables)
if isinstance(terms_data, tuple) and len(terms_data) == 2:
coeffs, obs = terms_data
print(f"系数: {coeffs}")
print(f"观测量: {obs}")
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
print(f"项 {i}: 系数={coeff}, 观测量={ob}, 观测量类型={type(ob)}")
# 探索 terms() 的返回格式
terms_data = H_tapered.terms()
print(f"terms() 返回类型: {type(terms_data)}")
print(f"terms() 内容: {terms_data}")
# 通常 terms() 返回一个元组 (coefficients, observables)
if isinstance(terms_data, tuple) and len(terms_data) == 2:
coeffs, obs = terms_data
print(f"系数: {coeffs}")
print(f"观测量: {obs}")
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
print(f"项 {i}: 系数={coeff}, 观测量={ob}, 观测量类型={type(ob)}")
terms() 返回类型: <class 'tuple'> terms() 内容: ([tensor(-1.92526626, requires_grad=True), tensor(0.52328186, requires_grad=True), tensor(0.52328186, requires_grad=True), tensor(0.11778624, requires_grad=True), tensor(-0.11439868, requires_grad=True), tensor(-0.11439868, requires_grad=True), tensor(0.11439868, requires_grad=True), tensor(0.11439868, requires_grad=True), tensor(-0.13067129, requires_grad=True)], [I(), Z(1), Z(0), Z(0) @ Z(1), X(0) @ Z(1), X(0), X(1), Z(0) @ X(1), Y(0) @ Y(1)]) 系数: [tensor(-1.92526626, requires_grad=True), tensor(0.52328186, requires_grad=True), tensor(0.52328186, requires_grad=True), tensor(0.11778624, requires_grad=True), tensor(-0.11439868, requires_grad=True), tensor(-0.11439868, requires_grad=True), tensor(0.11439868, requires_grad=True), tensor(0.11439868, requires_grad=True), tensor(-0.13067129, requires_grad=True)] 观测量: [I(), Z(1), Z(0), Z(0) @ Z(1), X(0) @ Z(1), X(0), X(1), Z(0) @ X(1), Y(0) @ Y(1)] 项 0: 系数=-1.925266264474486, 观测量=I(), 观测量类型=<class 'pennylane.ops.identity.Identity'> 项 1: 系数=0.5232818566613453, 观测量=Z(1), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 2: 系数=0.5232818566613453, 观测量=Z(0), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 3: 系数=0.11778623791503934, 观测量=Z(0) @ Z(1), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 4: 系数=-0.11439867749890963, 观测量=X(0) @ Z(1), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 5: 系数=-0.11439867815975757, 观测量=X(0), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliX'> 项 6: 系数=0.11439867815975757, 观测量=X(1), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliX'> 项 7: 系数=0.11439867749890963, 观测量=Z(0) @ X(1), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 8: 系数=-0.13067128734943087, 观测量=Y(0) @ Y(1), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'>
In [23]:
Copied!
from qibo.symbols import X, Y, Z, I
from qibo.hamiltonians import SymbolicHamiltonian
from functools import reduce
import operator
from qibo.symbols import X, Y, Z, I
from qibo.hamiltonians import SymbolicHamiltonian
from functools import reduce
import operator
In [24]:
Copied!
# 调试 Identity 的结构
print("=== 调试 Identity 结构 ===")
for i, ob in enumerate(obs):
if hasattr(ob, 'name') and 'Identity' in ob.name:
print(f"项 {i}: {ob}")
print(f" name: {ob.name}")
print(f" wires: {ob.wires}")
print(f" wires 类型: {type(ob.wires)}")
print(f" wires 长度: {len(ob.wires) if hasattr(ob.wires, '__len__') else 'N/A'}")
break
# 调试 Identity 的结构
print("=== 调试 Identity 结构 ===")
for i, ob in enumerate(obs):
if hasattr(ob, 'name') and 'Identity' in ob.name:
print(f"项 {i}: {ob}")
print(f" name: {ob.name}")
print(f" wires: {ob.wires}")
print(f" wires 类型: {type(ob.wires)}")
print(f" wires 长度: {len(ob.wires) if hasattr(ob.wires, '__len__') else 'N/A'}")
break
=== 调试 Identity 结构 === 项 0: I() name: Identity wires: Wires([]) wires 类型: <class 'pennylane.wires.Wires'> wires 长度: 0
In [25]:
Copied!
# 修正的完整转换代码
from qibo.symbols import X, Y, Z, I
from qibo.hamiltonians import SymbolicHamiltonian
from functools import reduce
import operator
def parse_pennylane_observable_final(obs_obj):
"""最终修复版本的PennyLane观测量解析函数"""
from qibo.symbols import X, Y, Z, I
from functools import reduce
import operator
# 处理Prod类型(多量子比特操作)
if hasattr(obs_obj, 'operands'):
operands = obs_obj.operands
qibo_symbols = []
for operand in operands:
op_name = operand.name
wires = operand.wires
if op_name == 'PauliX':
qibo_symbols.append(X(wires[0]))
elif op_name == 'PauliY':
qibo_symbols.append(Y(wires[0]))
elif op_name == 'PauliZ':
qibo_symbols.append(Z(wires[0]))
elif op_name == 'Identity':
# Identity 有空的 wires,所以我们需要特殊处理
# 在2量子比特系统中,完整的单位矩阵是 I(0) * I(1)
pass # 稍后单独处理 Identity
if len(qibo_symbols) == 0:
# 如果只有 Identity 或空的符号列表
return I(0) * I(1)
elif len(qibo_symbols) == 1:
# 单个非 Identity 操作符
return qibo_symbols[0]
else:
# 多个操作符相乘
return reduce(operator.mul, qibo_symbols)
# 处理单量子比特操作
else:
op_name = obs_obj.name
wires = obs_obj.wires
if op_name == 'PauliX':
return X(wires[0])
elif op_name == 'PauliY':
return Y(wires[0])
elif op_name == 'PauliZ':
return Z(wires[0])
elif op_name == 'Identity':
# 单独的 Identity 在2量子比特系统中
return I(0) * I(1)
# 使用最终修复版本的解析器
print("=== 使用最终修复版本的解析器 ===")
symbolic_expression = 0
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
coeff_value = coeff.item() if hasattr(coeff, 'item') else float(coeff)
print(f"处理项 {i+1}: {ob}")
qibo_term = parse_pennylane_observable_final(ob)
print(f" 转换结果: {qibo_term}")
print(f" 系数: {coeff_value:+.8f}")
symbolic_expression += coeff_value * qibo_term
print(f"\n=== 最终符号表达式 ===")
print(symbolic_expression)
# 创建Qibo哈密顿量
print("\n=== 创建 Qibo 哈密顿量 ===")
try:
H_qibo = SymbolicHamiltonian(symbolic_expression, nqubits=2)
print(f"✅ Qibo哈密顿量创建成功!")
print(f"矩阵形状: {H_qibo.matrix.shape}")
print(f"哈密顿量类型: {type(H_qibo)}")
# 验证哈密顿量
print(f"\n=== 哈密顿量验证 ===")
print(f"矩阵迹: {np.trace(H_qibo.matrix):.6f}")
print(f"是否为厄米矩阵: {np.allclose(H_qibo.matrix.T.conj(), H_qibo.matrix)}")
except Exception as e:
print(f"❌ 创建失败: {e}")
import traceback
traceback.print_exc()
# 修正的完整转换代码
from qibo.symbols import X, Y, Z, I
from qibo.hamiltonians import SymbolicHamiltonian
from functools import reduce
import operator
def parse_pennylane_observable_final(obs_obj):
"""最终修复版本的PennyLane观测量解析函数"""
from qibo.symbols import X, Y, Z, I
from functools import reduce
import operator
# 处理Prod类型(多量子比特操作)
if hasattr(obs_obj, 'operands'):
operands = obs_obj.operands
qibo_symbols = []
for operand in operands:
op_name = operand.name
wires = operand.wires
if op_name == 'PauliX':
qibo_symbols.append(X(wires[0]))
elif op_name == 'PauliY':
qibo_symbols.append(Y(wires[0]))
elif op_name == 'PauliZ':
qibo_symbols.append(Z(wires[0]))
elif op_name == 'Identity':
# Identity 有空的 wires,所以我们需要特殊处理
# 在2量子比特系统中,完整的单位矩阵是 I(0) * I(1)
pass # 稍后单独处理 Identity
if len(qibo_symbols) == 0:
# 如果只有 Identity 或空的符号列表
return I(0) * I(1)
elif len(qibo_symbols) == 1:
# 单个非 Identity 操作符
return qibo_symbols[0]
else:
# 多个操作符相乘
return reduce(operator.mul, qibo_symbols)
# 处理单量子比特操作
else:
op_name = obs_obj.name
wires = obs_obj.wires
if op_name == 'PauliX':
return X(wires[0])
elif op_name == 'PauliY':
return Y(wires[0])
elif op_name == 'PauliZ':
return Z(wires[0])
elif op_name == 'Identity':
# 单独的 Identity 在2量子比特系统中
return I(0) * I(1)
# 使用最终修复版本的解析器
print("=== 使用最终修复版本的解析器 ===")
symbolic_expression = 0
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
coeff_value = coeff.item() if hasattr(coeff, 'item') else float(coeff)
print(f"处理项 {i+1}: {ob}")
qibo_term = parse_pennylane_observable_final(ob)
print(f" 转换结果: {qibo_term}")
print(f" 系数: {coeff_value:+.8f}")
symbolic_expression += coeff_value * qibo_term
print(f"\n=== 最终符号表达式 ===")
print(symbolic_expression)
# 创建Qibo哈密顿量
print("\n=== 创建 Qibo 哈密顿量 ===")
try:
H_qibo = SymbolicHamiltonian(symbolic_expression, nqubits=2)
print(f"✅ Qibo哈密顿量创建成功!")
print(f"矩阵形状: {H_qibo.matrix.shape}")
print(f"哈密顿量类型: {type(H_qibo)}")
# 验证哈密顿量
print(f"\n=== 哈密顿量验证 ===")
print(f"矩阵迹: {np.trace(H_qibo.matrix):.6f}")
print(f"是否为厄米矩阵: {np.allclose(H_qibo.matrix.T.conj(), H_qibo.matrix)}")
except Exception as e:
print(f"❌ 创建失败: {e}")
import traceback
traceback.print_exc()
=== 使用最终修复版本的解析器 === 处理项 1: I() 转换结果: I0*I1 系数: -1.92526626 处理项 2: Z(1) 转换结果: Z1 系数: +0.52328186 处理项 3: Z(0) 转换结果: Z0 系数: +0.52328186 处理项 4: Z(0) @ Z(1) 转换结果: Z0*Z1 系数: +0.11778624 处理项 5: X(0) @ Z(1) 转换结果: X0*Z1 系数: -0.11439868 处理项 6: X(0) 转换结果: X0 系数: -0.11439868 处理项 7: X(1) 转换结果: X1 系数: +0.11439868 处理项 8: Z(0) @ X(1) 转换结果: Z0*X1 系数: +0.11439868 处理项 9: Y(0) @ Y(1) 转换结果: Y0*Y1 系数: -0.13067129 === 最终符号表达式 === -1.92526626447449*I0*I1 - 0.114398678159758*X0 - 0.11439867749891*X0*Z1 + 0.114398678159758*X1 - 0.130671287349431*Y0*Y1 + 0.523281856661345*Z0 + 0.11439867749891*Z0*X1 + 0.117786237915039*Z0*Z1 + 0.523281856661345*Z1 === 创建 Qibo 哈密顿量 === ✅ Qibo哈密顿量创建成功! 矩阵形状: (4, 4) 哈密顿量类型: <class 'qibo.hamiltonians.hamiltonians.SymbolicHamiltonian'> === 哈密顿量验证 === 矩阵迹: -7.701065+0.000000j 是否为厄米矩阵: True
In [26]:
Copied!
print(H_qibo)
print(H_tapered)
print(H_qibo)
print(H_tapered)
-1.92526626447449*I0*I1 - 0.114398678159758*X0 - 0.11439867749891*X0*Z1 + 0.114398678159758*X1 - 0.130671287349431*Y0*Y1 + 0.523281856661345*Z0 + 0.11439867749891*Z0*X1 + 0.117786237915039*Z0*Z1 + 0.523281856661345*Z1 -1.925266264474486 * I([0, 1]) + 0.5232818566613453 * Z(1) + 0.5232818566613453 * Z(0) + 0.11778623791503934 * (Z(0) @ Z(1)) + -0.11439867749890963 * (X(0) @ Z(1)) + -0.11439867815975757 * X(0) + 0.11439867815975757 * X(1) + 0.11439867749890963 * (Z(0) @ X(1)) + -0.13067128734943087 * (Y(0) @ Y(1))
In [9]:
Copied!
type(H_qibo)
type(H_qibo)
Out[9]:
qibo.hamiltonians.hamiltonians.SymbolicHamiltonian
现在我们定义好了量子电路和哈密顿量
VQE 优化循环 (Reproduction of Fig 2 & 6)¶
论文使用了多种梯度下降方法。这里我们使用 Parameter Shift 策略或标准梯度下降 (Qibo 默认优化器)。
我们使用相位移动来计算梯度
$$\frac{\partial E}{\partial \theta_i} = \frac{E(\theta_i + \frac{\pi}{2}) - E(\theta_i - \frac{\pi}{2})}{2}$$
这是代码 (e_plus - e_minus) / 2 的数学依据。
In [28]:
Copied!
def vqe_optimization(hamiltonian, n_qubits, layers, learning_rate=0.8, max_iter=100):
"""
Executes VQE Optimization using Gradient Descent.
Reproduces method described in Section V[cite: 37, 41].
"""
n_params = 2 * n_qubits * (layers + 1)
# 初始化参数: Random * 2pi
params = np.random.uniform(0, 1, n_params) * 2 * np.pi
loss_history = []
# 定义损失函数:计算 <psi|H|psi>
def loss_function(p):
circuit = create_paper_ansatz(n_qubits, layers, p)
# 获取末态 state vector (exact simulation)
final_state = circuit.execute().state()
# 计算期望值
return hamiltonian.expectation_from_state(final_state)
# 使用 Scipy 或 Qibo 内置优化器
# 论文提及使用了 Gradient Descent (eta=0.8) [cite: 41, 48]
#import tensorflow as tf # 如果使用tensorflow backend
# 为了简化且通用,这里使用简单的手动梯度下降或 scipy
# 考虑到你是 python 专家,这里手写一个简单的 GD 循环模拟论文过程
current_params = params.copy()
print(f"Starting VQE: N={n_qubits}, Layers={layers}, MaxIter={max_iter}, LR={learning_rate}")
for i in range(max_iter):
# 计算损失
val = loss_function(current_params)
loss_history.append(val)
# 简单梯度估算 (Finite Difference) [cite: 42]
grads = np.zeros_like(current_params)
epsilon = np.pi / 2 # Parameter shift rule shift amount
# 实现 Parameter Shift Rule [cite: 90] (简化版)
# Gradient = (E(theta + pi/2) - E(theta - pi/2)) / 2
for k in range(len(current_params)):
p_plus = current_params.copy()
p_minus = current_params.copy()
p_plus[k] += epsilon
p_minus[k] -= epsilon
e_plus = loss_function(p_plus)
e_minus = loss_function(p_minus)
grads[k] = (e_plus - e_minus) / 2
# 更新参数: theta = theta - eta * grad [cite: 41]
current_params = current_params - learning_rate * grads
if i % 10 == 0:
print(f"Iter {i}: Energy = {val:.6f}")
return loss_history
# 运行 He-H+ 模拟 (N=2, M=1) [cite: 53]
loss_curve = vqe_optimization(H_qibo, n_qubits=2, layers=5, learning_rate=0.1, max_iter=100)
print(f">>> 理论目标值: -2.862618 Hartree")
# 绘图
plt.plot(loss_curve, label='VQE (Parameter Shift)')
plt.xlabel('Iterations')
plt.ylabel('Energy')
plt.title('He-H+ Ground State Energy Optimization')
plt.legend()
plt.show()
def vqe_optimization(hamiltonian, n_qubits, layers, learning_rate=0.8, max_iter=100):
"""
Executes VQE Optimization using Gradient Descent.
Reproduces method described in Section V[cite: 37, 41].
"""
n_params = 2 * n_qubits * (layers + 1)
# 初始化参数: Random * 2pi
params = np.random.uniform(0, 1, n_params) * 2 * np.pi
loss_history = []
# 定义损失函数:计算
def loss_function(p):
circuit = create_paper_ansatz(n_qubits, layers, p)
# 获取末态 state vector (exact simulation)
final_state = circuit.execute().state()
# 计算期望值
return hamiltonian.expectation_from_state(final_state)
# 使用 Scipy 或 Qibo 内置优化器
# 论文提及使用了 Gradient Descent (eta=0.8) [cite: 41, 48]
#import tensorflow as tf # 如果使用tensorflow backend
# 为了简化且通用,这里使用简单的手动梯度下降或 scipy
# 考虑到你是 python 专家,这里手写一个简单的 GD 循环模拟论文过程
current_params = params.copy()
print(f"Starting VQE: N={n_qubits}, Layers={layers}, MaxIter={max_iter}, LR={learning_rate}")
for i in range(max_iter):
# 计算损失
val = loss_function(current_params)
loss_history.append(val)
# 简单梯度估算 (Finite Difference) [cite: 42]
grads = np.zeros_like(current_params)
epsilon = np.pi / 2 # Parameter shift rule shift amount
# 实现 Parameter Shift Rule [cite: 90] (简化版)
# Gradient = (E(theta + pi/2) - E(theta - pi/2)) / 2
for k in range(len(current_params)):
p_plus = current_params.copy()
p_minus = current_params.copy()
p_plus[k] += epsilon
p_minus[k] -= epsilon
e_plus = loss_function(p_plus)
e_minus = loss_function(p_minus)
grads[k] = (e_plus - e_minus) / 2
# 更新参数: theta = theta - eta * grad [cite: 41]
current_params = current_params - learning_rate * grads
if i % 10 == 0:
print(f"Iter {i}: Energy = {val:.6f}")
return loss_history
# 运行 He-H+ 模拟 (N=2, M=1) [cite: 53]
loss_curve = vqe_optimization(H_qibo, n_qubits=2, layers=5, learning_rate=0.1, max_iter=100)
print(f">>> 理论目标值: -2.862618 Hartree")
# 绘图
plt.plot(loss_curve, label='VQE (Parameter Shift)')
plt.xlabel('Iterations')
plt.ylabel('Energy')
plt.title('He-H+ Ground State Energy Optimization')
plt.legend()
plt.show()
Starting VQE: N=2, Layers=5, MaxIter=100, LR=0.1 Iter 0: Energy = -2.508904 Iter 10: Energy = -2.813178 Iter 20: Energy = -2.845805 Iter 30: Energy = -2.856544 Iter 40: Energy = -2.860386 Iter 50: Energy = -2.861789 Iter 60: Energy = -2.862308 Iter 70: Energy = -2.862501 Iter 80: Energy = -2.862574 Iter 90: Energy = -2.862601 >>> 理论目标值: -2.862618 Hartree
H20的计算¶
In [33]:
Copied!
import pennylane as qml
from pennylane import qchem
import numpy as np
# 1. 定义几何结构 (根据论文 R=1.9 A, phi=1.75 rad)
# 需要将极坐标转换为直角坐标
r = 1.9 * 1.889726125 # 同样注意!论文虽然写 Angstrom,但 PennyLane 默认输入 Bohr,建议先转换
phi = 1.75 # 弧度
# 简单的几何坐标计算 (假设 O 在原点,两个 H 对称分布)
# H1 --- O --- H2
# O at (0, 0, 0)
x = r * np.sin(phi / 2)
y = r * np.cos(phi / 2)
symbols = ["O", "H", "H"]
coordinates = np.array([
0.0, 0.0, 0.0, # O
x, y, 0.0, # H1
x, -y, 0.0 # H2
])
# 2. 定义活性空间 (4 electrons, 4 orbitals)
# H2O 总共有 10 个电子。
# 活性电子 = 4 -> 意味着核心的 6 个电子被冻结 (1s2 2s2 of O likely frozen or optimized choice)
# STO-3G 基组下 H2O 有 7 个空间轨道。我们选 4 个。
electrons = 10
active_electrons = 4
active_orbitals = 4
# 生成活性空间的索引
core, active = qchem.active_space(electrons, active_orbitals, active_electrons=active_electrons)
print(f"核心轨道索引: {core}")
print(f"活性轨道索引: {active}")
# 3. 构建哈密顿量
print("正在构建 8-qubit H2O 哈密顿量...")
H_h2o, qubits = qchem.molecular_hamiltonian(
symbols,
coordinates,
active_electrons=active_electrons,
active_orbitals=active_orbitals,
basis="sto-3g" # 论文虽未明说,但引用 [12] 教程通常默认 STO-3G,且 14-qubit 是 STO-3G 的特征
)
import pennylane as qml
from pennylane import qchem
import numpy as np
# 1. 定义几何结构 (根据论文 R=1.9 A, phi=1.75 rad)
# 需要将极坐标转换为直角坐标
r = 1.9 * 1.889726125 # 同样注意!论文虽然写 Angstrom,但 PennyLane 默认输入 Bohr,建议先转换
phi = 1.75 # 弧度
# 简单的几何坐标计算 (假设 O 在原点,两个 H 对称分布)
# H1 --- O --- H2
# O at (0, 0, 0)
x = r * np.sin(phi / 2)
y = r * np.cos(phi / 2)
symbols = ["O", "H", "H"]
coordinates = np.array([
0.0, 0.0, 0.0, # O
x, y, 0.0, # H1
x, -y, 0.0 # H2
])
# 2. 定义活性空间 (4 electrons, 4 orbitals)
# H2O 总共有 10 个电子。
# 活性电子 = 4 -> 意味着核心的 6 个电子被冻结 (1s2 2s2 of O likely frozen or optimized choice)
# STO-3G 基组下 H2O 有 7 个空间轨道。我们选 4 个。
electrons = 10
active_electrons = 4
active_orbitals = 4
# 生成活性空间的索引
core, active = qchem.active_space(electrons, active_orbitals, active_electrons=active_electrons)
print(f"核心轨道索引: {core}")
print(f"活性轨道索引: {active}")
# 3. 构建哈密顿量
print("正在构建 8-qubit H2O 哈密顿量...")
H_h2o, qubits = qchem.molecular_hamiltonian(
symbols,
coordinates,
active_electrons=active_electrons,
active_orbitals=active_orbitals,
basis="sto-3g" # 论文虽未明说,但引用 [12] 教程通常默认 STO-3G,且 14-qubit 是 STO-3G 的特征
)
核心轨道索引: [0, 1, 2] 活性轨道索引: [3] 正在构建 8-qubit H2O 哈密顿量...
In [34]:
Copied!
# 探索 terms() 的返回格式
terms_data = H_h2o.terms()
print(f"terms() 返回类型: {type(terms_data)}")
print(f"terms() 内容: {terms_data}")
# 通常 terms() 返回一个元组 (coefficients, observables)
if isinstance(terms_data, tuple) and len(terms_data) == 2:
coeffs, obs = terms_data
print(f"系数: {coeffs}")
print(f"观测量: {obs}")
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
print(f"项 {i}: 系数={coeff}, 观测量={ob}, 观测量类型={type(ob)}")
# 探索 terms() 的返回格式
terms_data = H_h2o.terms()
print(f"terms() 返回类型: {type(terms_data)}")
print(f"terms() 内容: {terms_data}")
# 通常 terms() 返回一个元组 (coefficients, observables)
if isinstance(terms_data, tuple) and len(terms_data) == 2:
coeffs, obs = terms_data
print(f"系数: {coeffs}")
print(f"观测量: {obs}")
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
print(f"项 {i}: 系数={coeff}, 观测量={ob}, 观测量类型={type(ob)}")
terms() 返回类型: <class 'tuple'> terms() 内容: ([tensor(-73.83992491, requires_grad=False), tensor(0.05958964, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.05415491, requires_grad=False), tensor(0.17647086, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(0.03038937, requires_grad=False), tensor(0.07099211, requires_grad=False), tensor(0.01383234, requires_grad=False), tensor(0.07297912, requires_grad=False), tensor(0.05958964, requires_grad=False), tensor(0.20854396, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.01137321, requires_grad=False), tensor(-0.01137321, requires_grad=False), tensor(-0.01137321, requires_grad=False), tensor(0.01137321, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.00848207, requires_grad=False), tensor(-0.00848207, requires_grad=False), tensor(-0.00848207, requires_grad=False), tensor(0.00848207, requires_grad=False), tensor(0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(0.00097954, requires_grad=False), tensor(0.00271623, requires_grad=False), tensor(-0.00271623, requires_grad=False), tensor(-0.00271623, requires_grad=False), tensor(0.00271623, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(0.05415491, requires_grad=False), tensor(0.18784407, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.03038937, requires_grad=False), tensor(0.07947417, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(0.01229285, requires_grad=False), tensor(0.01383234, requires_grad=False), tensor(0.07569535, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(0.17647086, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(0.07099211, requires_grad=False), tensor(0.07297912, requires_grad=False), tensor(0.18784407, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00163795, requires_grad=False), tensor(0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(0.07947417, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.07569535, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(0.07419108, requires_grad=False), tensor(0.06852345, requires_grad=False), tensor(0.21148161, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(0.00222915, requires_grad=False), tensor(-0.00222915, requires_grad=False), tensor(-0.00222915, requires_grad=False), tensor(0.00222915, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(0.00625485, requires_grad=False), tensor(-0.00625485, requires_grad=False), tensor(-0.00625485, requires_grad=False), tensor(0.00625485, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(0.07642023, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(0.07477831, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.07419108, requires_grad=False), tensor(0.06852345, requires_grad=False), tensor(0.07642023, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(0.01002177, requires_grad=False), tensor(0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(0.07477831, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.0545728, requires_grad=False), tensor(0.11976743, requires_grad=False), tensor(0.0671044, requires_grad=False), tensor(-0.0671044, requires_grad=False), tensor(-0.0671044, requires_grad=False), tensor(0.0671044, requires_grad=False), tensor(0.1216772, requires_grad=False), tensor(0.0545728, requires_grad=False), tensor(0.1216772, requires_grad=False), tensor(0.12408193, requires_grad=False)], [I(), Z(0), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4), Z(2), Z(0) @ Z(2), Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Z(4), Z(0) @ Z(4), Z(6), Z(0) @ Z(6), Z(1), Z(0) @ Z(1), Y(0) @ Z(2) @ Z(3) @ Y(4), X(0) @ Z(2) @ Z(3) @ X(4), Y(0) @ X(1) @ X(2) @ Y(3), Y(0) @ Y(1) @ X(2) @ X(3), X(0) @ X(1) @ Y(2) @ Y(3), X(0) @ Y(1) @ Y(2) @ X(3), Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6), Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6), X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6), X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), Y(0) @ X(1) @ X(4) @ Y(5), Y(0) @ Y(1) @ X(4) @ X(5), X(0) @ X(1) @ Y(4) @ Y(5), X(0) @ Y(1) @ Y(4) @ X(5), Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(0) @ X(1) @ X(6) @ Y(7), Y(0) @ Y(1) @ X(6) @ X(7), X(0) @ X(1) @ Y(6) @ Y(7), X(0) @ Y(1) @ Y(6) @ X(7), Y(0) @ Z(1) @ Z(3) @ Y(4), X(0) @ Z(1) @ Z(3) @ X(4), Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6), Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6), Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6), X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6), X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6), X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6), Z(3), Z(0) @ Z(3), Y(0) @ Z(1) @ Z(2) @ Y(4), X(0) @ Z(1) @ Z(2) @ X(4), Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2), Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2), X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2), X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2), Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6), Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6), X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6), X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6), Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6), Z(5), Z(0) @ Z(5), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5), Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2), Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2), X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2), X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7), Z(7), Z(0) @ Z(7), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7), Z(1) @ Z(3), Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Z(1) @ Z(5), Z(1) @ Z(7), Z(1) @ Z(2), Y(1) @ Z(3) @ Z(4) @ Y(5), X(1) @ Z(3) @ Z(4) @ X(5), Y(1) @ X(2) @ X(3) @ Y(4), Y(1) @ Y(2) @ X(3) @ X(4), X(1) @ X(2) @ Y(3) @ Y(4), X(1) @ Y(2) @ Y(3) @ X(4), Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7), Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7), X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7), X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7), Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Y(1) @ X(2) @ X(5) @ Y(6), Y(1) @ Y(2) @ X(5) @ X(6), X(1) @ X(2) @ Y(5) @ Y(6), X(1) @ Y(2) @ Y(5) @ X(6), Y(1) @ Z(2) @ Z(4) @ Y(5), X(1) @ Z(2) @ Z(4) @ X(5), Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7), Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7), Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7), X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7), X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7), X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7), Z(1) @ Z(4), Y(1) @ Z(2) @ Z(3) @ Y(5), X(1) @ Z(2) @ Z(3) @ X(5), Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3), Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3), X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3), X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3), Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7), Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7), X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7), X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7), Z(1) @ Z(6), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6), Z(2) @ Z(4), Z(2) @ Z(6), Z(2) @ Z(3), Y(2) @ Z(4) @ Z(5) @ Y(6), X(2) @ Z(4) @ Z(5) @ X(6), Y(2) @ X(3) @ X(4) @ Y(5), Y(2) @ Y(3) @ X(4) @ X(5), X(2) @ X(3) @ Y(4) @ Y(5), X(2) @ Y(3) @ Y(4) @ X(5), Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(2) @ X(3) @ X(6) @ Y(7), Y(2) @ Y(3) @ X(6) @ X(7), X(2) @ X(3) @ Y(6) @ Y(7), X(2) @ Y(3) @ Y(6) @ X(7), Y(2) @ Z(3) @ Z(5) @ Y(6), X(2) @ Z(3) @ Z(5) @ X(6), Z(2) @ Z(5), Y(2) @ Z(3) @ Z(4) @ Y(6), X(2) @ Z(3) @ Z(4) @ X(6), Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4), Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4), X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4), X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4), Z(2) @ Z(7), Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7), X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7), Z(3) @ Z(5), Z(3) @ Z(7), Z(3) @ Z(4), Y(3) @ Z(5) @ Z(6) @ Y(7), X(3) @ Z(5) @ Z(6) @ X(7), Y(3) @ X(4) @ X(5) @ Y(6), Y(3) @ Y(4) @ X(5) @ X(6), X(3) @ X(4) @ Y(5) @ Y(6), X(3) @ Y(4) @ Y(5) @ X(6), Y(3) @ Z(4) @ Z(6) @ Y(7), X(3) @ Z(4) @ Z(6) @ X(7), Z(3) @ Z(6), Y(3) @ Z(4) @ Z(5) @ Y(7), X(3) @ Z(4) @ Z(5) @ X(7), Z(4) @ Z(6), Z(4) @ Z(5), Y(4) @ X(5) @ X(6) @ Y(7), Y(4) @ Y(5) @ X(6) @ X(7), X(4) @ X(5) @ Y(6) @ Y(7), X(4) @ Y(5) @ Y(6) @ X(7), Z(4) @ Z(7), Z(5) @ Z(7), Z(5) @ Z(6), Z(6) @ Z(7)]) 系数: [tensor(-73.83992491, requires_grad=False), tensor(0.05958964, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.05415491, requires_grad=False), tensor(0.17647086, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(0.03038937, requires_grad=False), tensor(0.07099211, requires_grad=False), tensor(0.01383234, requires_grad=False), tensor(0.07297912, requires_grad=False), tensor(0.05958964, requires_grad=False), tensor(0.20854396, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.01137321, requires_grad=False), tensor(-0.01137321, requires_grad=False), tensor(-0.01137321, requires_grad=False), tensor(0.01137321, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(-0.04112912, requires_grad=False), tensor(0.02909275, requires_grad=False), tensor(0.00848207, requires_grad=False), tensor(-0.00848207, requires_grad=False), tensor(-0.00848207, requires_grad=False), tensor(0.00848207, requires_grad=False), tensor(0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(-0.00097954, requires_grad=False), tensor(0.00097954, requires_grad=False), tensor(0.00271623, requires_grad=False), tensor(-0.00271623, requires_grad=False), tensor(-0.00271623, requires_grad=False), tensor(0.00271623, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(0.05415491, requires_grad=False), tensor(0.18784407, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(0.03333548, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.03038937, requires_grad=False), tensor(0.07947417, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(0.01229285, requires_grad=False), tensor(0.01383234, requires_grad=False), tensor(0.07569535, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(0.17647086, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(-0.01972616, requires_grad=False), tensor(0.07099211, requires_grad=False), tensor(0.07297912, requires_grad=False), tensor(0.18784407, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(0.02503773, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00163795, requires_grad=False), tensor(0.00163795, requires_grad=False), tensor(-0.00163795, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(0.00231718, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.02070571, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(0.00625098, requires_grad=False), tensor(-0.00625098, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(0.02339978, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(0.00162164, requires_grad=False), tensor(-0.00231216, requires_grad=False), tensor(-0.0039338, requires_grad=False), tensor(0.07947417, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00785164, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.00462935, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(-0.01229285, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.00321806, requires_grad=False), tensor(0.07569535, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(-0.00907478, requires_grad=False), tensor(0.07419108, requires_grad=False), tensor(0.06852345, requires_grad=False), tensor(0.21148161, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(0.00222915, requires_grad=False), tensor(-0.00222915, requires_grad=False), tensor(-0.00222915, requires_grad=False), tensor(0.00222915, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(-0.02549552, requires_grad=False), tensor(0.00625485, requires_grad=False), tensor(-0.00625485, requires_grad=False), tensor(-0.00625485, requires_grad=False), tensor(0.00625485, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(0.07642023, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(0.07477831, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.07419108, requires_grad=False), tensor(0.06852345, requires_grad=False), tensor(0.07642023, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(0.0073522, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(0.01002177, requires_grad=False), tensor(0.01002177, requires_grad=False), tensor(-0.01002177, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(-0.00266957, requires_grad=False), tensor(0.07477831, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.00798962, requires_grad=False), tensor(0.0545728, requires_grad=False), tensor(0.11976743, requires_grad=False), tensor(0.0671044, requires_grad=False), tensor(-0.0671044, requires_grad=False), tensor(-0.0671044, requires_grad=False), tensor(0.0671044, requires_grad=False), tensor(0.1216772, requires_grad=False), tensor(0.0545728, requires_grad=False), tensor(0.1216772, requires_grad=False), tensor(0.12408193, requires_grad=False)] 观测量: [I(), Z(0), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4), Z(2), Z(0) @ Z(2), Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Z(4), Z(0) @ Z(4), Z(6), Z(0) @ Z(6), Z(1), Z(0) @ Z(1), Y(0) @ Z(2) @ Z(3) @ Y(4), X(0) @ Z(2) @ Z(3) @ X(4), Y(0) @ X(1) @ X(2) @ Y(3), Y(0) @ Y(1) @ X(2) @ X(3), X(0) @ X(1) @ Y(2) @ Y(3), X(0) @ Y(1) @ Y(2) @ X(3), Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6), Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6), X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6), X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), Y(0) @ X(1) @ X(4) @ Y(5), Y(0) @ Y(1) @ X(4) @ X(5), X(0) @ X(1) @ Y(4) @ Y(5), X(0) @ Y(1) @ Y(4) @ X(5), Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(0) @ X(1) @ X(6) @ Y(7), Y(0) @ Y(1) @ X(6) @ X(7), X(0) @ X(1) @ Y(6) @ Y(7), X(0) @ Y(1) @ Y(6) @ X(7), Y(0) @ Z(1) @ Z(3) @ Y(4), X(0) @ Z(1) @ Z(3) @ X(4), Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6), Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6), Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6), X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6), X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6), X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6), Z(3), Z(0) @ Z(3), Y(0) @ Z(1) @ Z(2) @ Y(4), X(0) @ Z(1) @ Z(2) @ X(4), Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2), Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2), X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2), X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2), Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6), Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6), X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6), X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6), Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6), Z(5), Z(0) @ Z(5), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5), Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2), Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2), X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2), X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7), Z(7), Z(0) @ Z(7), Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7), X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7), Z(1) @ Z(3), Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Z(1) @ Z(5), Z(1) @ Z(7), Z(1) @ Z(2), Y(1) @ Z(3) @ Z(4) @ Y(5), X(1) @ Z(3) @ Z(4) @ X(5), Y(1) @ X(2) @ X(3) @ Y(4), Y(1) @ Y(2) @ X(3) @ X(4), X(1) @ X(2) @ Y(3) @ Y(4), X(1) @ Y(2) @ Y(3) @ X(4), Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7), Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7), X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7), X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7), Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), Y(1) @ X(2) @ X(5) @ Y(6), Y(1) @ Y(2) @ X(5) @ X(6), X(1) @ X(2) @ Y(5) @ Y(6), X(1) @ Y(2) @ Y(5) @ X(6), Y(1) @ Z(2) @ Z(4) @ Y(5), X(1) @ Z(2) @ Z(4) @ X(5), Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7), Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7), Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7), X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7), X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7), X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7), Z(1) @ Z(4), Y(1) @ Z(2) @ Z(3) @ Y(5), X(1) @ Z(2) @ Z(3) @ X(5), Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3), Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3), X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3), X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3), Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7), Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7), X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7), X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7), Z(1) @ Z(6), Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6), X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6), Z(2) @ Z(4), Z(2) @ Z(6), Z(2) @ Z(3), Y(2) @ Z(4) @ Z(5) @ Y(6), X(2) @ Z(4) @ Z(5) @ X(6), Y(2) @ X(3) @ X(4) @ Y(5), Y(2) @ Y(3) @ X(4) @ X(5), X(2) @ X(3) @ Y(4) @ Y(5), X(2) @ Y(3) @ Y(4) @ X(5), Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), Y(2) @ X(3) @ X(6) @ Y(7), Y(2) @ Y(3) @ X(6) @ X(7), X(2) @ X(3) @ Y(6) @ Y(7), X(2) @ Y(3) @ Y(6) @ X(7), Y(2) @ Z(3) @ Z(5) @ Y(6), X(2) @ Z(3) @ Z(5) @ X(6), Z(2) @ Z(5), Y(2) @ Z(3) @ Z(4) @ Y(6), X(2) @ Z(3) @ Z(4) @ X(6), Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4), Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4), X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4), X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4), Z(2) @ Z(7), Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7), X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7), Z(3) @ Z(5), Z(3) @ Z(7), Z(3) @ Z(4), Y(3) @ Z(5) @ Z(6) @ Y(7), X(3) @ Z(5) @ Z(6) @ X(7), Y(3) @ X(4) @ X(5) @ Y(6), Y(3) @ Y(4) @ X(5) @ X(6), X(3) @ X(4) @ Y(5) @ Y(6), X(3) @ Y(4) @ Y(5) @ X(6), Y(3) @ Z(4) @ Z(6) @ Y(7), X(3) @ Z(4) @ Z(6) @ X(7), Z(3) @ Z(6), Y(3) @ Z(4) @ Z(5) @ Y(7), X(3) @ Z(4) @ Z(5) @ X(7), Z(4) @ Z(6), Z(4) @ Z(5), Y(4) @ X(5) @ X(6) @ Y(7), Y(4) @ Y(5) @ X(6) @ X(7), X(4) @ X(5) @ Y(6) @ Y(7), X(4) @ Y(5) @ Y(6) @ X(7), Z(4) @ Z(7), Z(5) @ Z(7), Z(5) @ Z(6), Z(6) @ Z(7)] 项 0: 系数=-73.83992491094487, 观测量=I(), 观测量类型=<class 'pennylane.ops.identity.Identity'> 项 1: 系数=0.05958963502848465, 观测量=Z(0), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 2: 系数=-0.04112911854118303, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 3: 系数=-0.04112911854118303, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 4: 系数=0.054154913539253634, 观测量=Z(2), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 5: 系数=0.1764708591390641, 观测量=Z(0) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 6: 系数=0.03333547524759559, 观测量=Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 7: 系数=0.03333547524759559, 观测量=X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 8: 系数=-0.019726164720134498, 观测量=Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 9: 系数=-0.019726164720134498, 观测量=Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 10: 系数=0.03038936744315189, 观测量=Z(4), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 11: 系数=0.07099210911325507, 观测量=Z(0) @ Z(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 12: 系数=0.013832337922576099, 观测量=Z(6), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 13: 系数=0.07297911775726791, 观测量=Z(0) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 14: 系数=0.05958963502848462, 观测量=Z(1), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 15: 系数=0.20854395965479264, 观测量=Z(0) @ Z(1), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 16: 系数=0.029092754887581174, 观测量=Y(0) @ Z(2) @ Z(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 17: 系数=0.029092754887581174, 观测量=X(0) @ Z(2) @ Z(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 18: 系数=0.011373209177807512, 观测量=Y(0) @ X(1) @ X(2) @ Y(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 19: 系数=-0.011373209177807512, 观测量=Y(0) @ Y(1) @ X(2) @ X(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 20: 系数=-0.011373209177807512, 观测量=X(0) @ X(1) @ Y(2) @ Y(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 21: 系数=0.011373209177807512, 观测量=X(0) @ Y(1) @ Y(2) @ X(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 22: 系数=-0.0009795407438051226, 观测量=Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 23: 系数=-0.0009795407438051226, 观测量=Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 24: 系数=-0.0009795407438051226, 观测量=X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 25: 系数=-0.0009795407438051226, 观测量=X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 26: 系数=-0.04112911854118302, 观测量=Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 27: 系数=0.029092754887581174, 观测量=Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 28: 系数=-0.04112911854118302, 观测量=X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 29: 系数=0.029092754887581174, 观测量=Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 30: 系数=0.008482065307526751, 观测量=Y(0) @ X(1) @ X(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 31: 系数=-0.008482065307526751, 观测量=Y(0) @ Y(1) @ X(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 32: 系数=-0.008482065307526751, 观测量=X(0) @ X(1) @ Y(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 33: 系数=0.008482065307526751, 观测量=X(0) @ Y(1) @ Y(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 34: 系数=0.0009795407438051226, 观测量=Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 35: 系数=-0.0009795407438051226, 观测量=Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 36: 系数=-0.0009795407438051226, 观测量=X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 37: 系数=0.0009795407438051226, 观测量=X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 38: 系数=0.002716231523033821, 观测量=Y(0) @ X(1) @ X(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 39: 系数=-0.002716231523033821, 观测量=Y(0) @ Y(1) @ X(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 40: 系数=-0.002716231523033821, 观测量=X(0) @ X(1) @ Y(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 41: 系数=0.002716231523033821, 观测量=X(0) @ Y(1) @ Y(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 42: 系数=0.02339978384789014, 观测量=Y(0) @ Z(1) @ Z(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 43: 系数=0.02339978384789014, 观测量=X(0) @ Z(1) @ Z(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 44: 系数=-0.003933796303501121, 观测量=Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 45: 系数=-0.0023121606645631933, 观测量=Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 46: 系数=0.0016216356389379281, 观测量=Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 47: 系数=0.0016216356389379281, 观测量=X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 48: 系数=-0.0023121606645631933, 观测量=X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 49: 系数=-0.003933796303501121, 观测量=X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 50: 系数=0.05415491353925377, 观测量=Z(3), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 51: 系数=0.18784406831687162, 观测量=Z(0) @ Z(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 52: 系数=0.025037734133715253, 观测量=Y(0) @ Z(1) @ Z(2) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 53: 系数=0.025037734133715253, 观测量=X(0) @ Z(1) @ Z(2) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 54: 系数=-0.0016379502858251127, 观测量=Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 55: 系数=-0.0016379502858251127, 观测量=Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 56: 系数=-0.0016379502858251127, 观测量=X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 57: 系数=-0.0016379502858251127, 观测量=X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 58: 系数=0.0023171848193117312, 观测量=Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 59: 系数=0.0023171848193117312, 观测量=Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 60: 系数=0.0023171848193117312, 观测量=X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 61: 系数=0.0023171848193117312, 观测量=X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 62: 系数=0.0333354752475956, 观测量=Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 63: 系数=-0.02070570546393962, 观测量=Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 64: 系数=0.0333354752475956, 观测量=X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 65: 系数=-0.02070570546393962, 观测量=Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 66: 系数=-0.006250981122812854, 观测量=Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 67: 系数=0.006250981122812854, 观测量=Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 68: 系数=0.006250981122812854, 观测量=X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 69: 系数=-0.006250981122812854, 观测量=X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 70: 系数=0.003218064768149666, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 71: 系数=0.003218064768149666, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 72: 系数=0.030389367443151835, 观测量=Z(5), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 73: 系数=0.07947417442078183, 观测量=Z(0) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 74: 系数=-0.007851639729927072, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 75: 系数=-0.007851639729927072, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 76: 系数=-0.004629345483874925, 观测量=Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 77: 系数=-0.004629345483874925, 观测量=Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 78: 系数=-0.004629345483874925, 观测量=X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 79: 系数=-0.004629345483874925, 观测量=X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 80: 系数=0.012292848213220227, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 81: 系数=-0.012292848213220227, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 82: 系数=-0.012292848213220227, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 83: 系数=0.012292848213220227, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 84: 系数=0.013832337922576099, 观测量=Z(7), 观测量类型=<class 'pennylane.ops.qubit.non_parametric_ops.PauliZ'> 项 85: 系数=0.07569534928030175, 观测量=Z(0) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 86: 系数=-0.00907478344507056, 观测量=Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 87: 系数=-0.00907478344507056, 观测量=X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 88: 系数=0.1764708591390641, 观测量=Z(1) @ Z(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 89: 系数=-0.019726164720134498, 观测量=Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 90: 系数=-0.019726164720134498, 观测量=Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 91: 系数=0.07099210911325507, 观测量=Z(1) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 92: 系数=0.07297911775726791, 观测量=Z(1) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 93: 系数=0.18784406831687162, 观测量=Z(1) @ Z(2), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 94: 系数=0.025037734133715253, 观测量=Y(1) @ Z(3) @ Z(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 95: 系数=0.025037734133715253, 观测量=X(1) @ Z(3) @ Z(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 96: 系数=-0.0016379502858251131, 观测量=Y(1) @ X(2) @ X(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 97: 系数=0.0016379502858251131, 观测量=Y(1) @ Y(2) @ X(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 98: 系数=0.0016379502858251131, 观测量=X(1) @ X(2) @ Y(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 99: 系数=-0.0016379502858251131, 观测量=X(1) @ Y(2) @ Y(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 100: 系数=0.0023171848193117312, 观测量=Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 101: 系数=0.0023171848193117312, 观测量=Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 102: 系数=0.0023171848193117312, 观测量=X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 103: 系数=0.0023171848193117312, 观测量=X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 104: 系数=-0.02070570546393962, 观测量=Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 105: 系数=-0.02070570546393962, 观测量=Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 106: 系数=-0.006250981122812854, 观测量=Y(1) @ X(2) @ X(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 107: 系数=0.006250981122812854, 观测量=Y(1) @ Y(2) @ X(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 108: 系数=0.006250981122812854, 观测量=X(1) @ X(2) @ Y(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 109: 系数=-0.006250981122812854, 观测量=X(1) @ Y(2) @ Y(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 110: 系数=0.02339978384789014, 观测量=Y(1) @ Z(2) @ Z(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 111: 系数=0.02339978384789014, 观测量=X(1) @ Z(2) @ Z(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 112: 系数=-0.003933796303501121, 观测量=Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 113: 系数=-0.0023121606645631933, 观测量=Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 114: 系数=0.0016216356389379281, 观测量=Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 115: 系数=0.0016216356389379281, 观测量=X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 116: 系数=-0.0023121606645631933, 观测量=X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 117: 系数=-0.003933796303501121, 观测量=X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 118: 系数=0.07947417442078183, 观测量=Z(1) @ Z(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 119: 系数=-0.00785163972992707, 观测量=Y(1) @ Z(2) @ Z(3) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 120: 系数=-0.00785163972992707, 观测量=X(1) @ Z(2) @ Z(3) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 121: 系数=-0.004629345483874925, 观测量=Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 122: 系数=-0.004629345483874925, 观测量=Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 123: 系数=-0.004629345483874925, 观测量=X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 124: 系数=-0.004629345483874925, 观测量=X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 125: 系数=-0.012292848213220227, 观测量=Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 126: 系数=-0.012292848213220227, 观测量=Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 127: 系数=-0.012292848213220227, 观测量=X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 128: 系数=-0.012292848213220227, 观测量=X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 129: 系数=0.003218064768149666, 观测量=Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 130: 系数=0.003218064768149666, 观测量=X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 131: 系数=0.07569534928030175, 观测量=Z(1) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 132: 系数=-0.00907478344507056, 观测量=Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 133: 系数=-0.00907478344507056, 观测量=X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 134: 系数=0.07419107987721522, 观测量=Z(2) @ Z(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 135: 系数=0.0685234543575795, 观测量=Z(2) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 136: 系数=0.21148161408003305, 观测量=Z(2) @ Z(3), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 137: 系数=-0.025495522674137322, 观测量=Y(2) @ Z(4) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 138: 系数=-0.025495522674137322, 观测量=X(2) @ Z(4) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 139: 系数=0.00222914519827612, 观测量=Y(2) @ X(3) @ X(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 140: 系数=-0.00222914519827612, 观测量=Y(2) @ Y(3) @ X(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 141: 系数=-0.00222914519827612, 观测量=X(2) @ X(3) @ Y(4) @ Y(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 142: 系数=0.00222914519827612, 观测量=X(2) @ Y(3) @ Y(4) @ X(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 143: 系数=-0.025495522674137322, 观测量=Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 144: 系数=-0.025495522674137322, 观测量=Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 145: 系数=0.006254854927378014, 观测量=Y(2) @ X(3) @ X(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 146: 系数=-0.006254854927378014, 观测量=Y(2) @ Y(3) @ X(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 147: 系数=-0.006254854927378014, 观测量=X(2) @ X(3) @ Y(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 148: 系数=0.006254854927378014, 观测量=X(2) @ Y(3) @ Y(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 149: 系数=-0.0026695698311234254, 观测量=Y(2) @ Z(3) @ Z(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 150: 系数=-0.0026695698311234254, 观测量=X(2) @ Z(3) @ Z(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 151: 系数=0.07642022507549136, 观测量=Z(2) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 152: 系数=0.007352198216220915, 观测量=Y(2) @ Z(3) @ Z(4) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 153: 系数=0.007352198216220915, 观测量=X(2) @ Z(3) @ Z(4) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 154: 系数=-0.01002176804734434, 观测量=Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 155: 系数=-0.01002176804734434, 观测量=Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 156: 系数=-0.01002176804734434, 观测量=X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 157: 系数=-0.01002176804734434, 观测量=X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 158: 系数=0.07477830928495752, 观测量=Z(2) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 159: 系数=0.007989620646509385, 观测量=Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 160: 系数=0.007989620646509385, 观测量=X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 161: 系数=0.07419107987721522, 观测量=Z(3) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 162: 系数=0.0685234543575795, 观测量=Z(3) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 163: 系数=0.07642022507549136, 观测量=Z(3) @ Z(4), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 164: 系数=0.007352198216220915, 观测量=Y(3) @ Z(5) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 165: 系数=0.007352198216220915, 观测量=X(3) @ Z(5) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 166: 系数=-0.01002176804734434, 观测量=Y(3) @ X(4) @ X(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 167: 系数=0.01002176804734434, 观测量=Y(3) @ Y(4) @ X(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 168: 系数=0.01002176804734434, 观测量=X(3) @ X(4) @ Y(5) @ Y(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 169: 系数=-0.01002176804734434, 观测量=X(3) @ Y(4) @ Y(5) @ X(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 170: 系数=-0.0026695698311234254, 观测量=Y(3) @ Z(4) @ Z(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 171: 系数=-0.0026695698311234254, 观测量=X(3) @ Z(4) @ Z(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 172: 系数=0.07477830928495752, 观测量=Z(3) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 173: 系数=0.007989620646509384, 观测量=Y(3) @ Z(4) @ Z(5) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 174: 系数=0.007989620646509384, 观测量=X(3) @ Z(4) @ Z(5) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 175: 系数=0.05457280381221215, 观测量=Z(4) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 176: 系数=0.11976742604236822, 观测量=Z(4) @ Z(5), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 177: 系数=0.0671043957009538, 观测量=Y(4) @ X(5) @ X(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 178: 系数=-0.0671043957009538, 观测量=Y(4) @ Y(5) @ X(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 179: 系数=-0.0671043957009538, 观测量=X(4) @ X(5) @ Y(6) @ Y(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 180: 系数=0.0671043957009538, 观测量=X(4) @ Y(5) @ Y(6) @ X(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 181: 系数=0.12167719951316594, 观测量=Z(4) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 182: 系数=0.05457280381221215, 观测量=Z(5) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 183: 系数=0.12167719951316594, 观测量=Z(5) @ Z(6), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'> 项 184: 系数=0.12408192779458949, 观测量=Z(6) @ Z(7), 观测量类型=<class 'pennylane.ops.op_math.prod.Prod'>
In [35]:
Copied!
print(f"哈密顿量: {H_h2o}")
print(f"哈密顿量: {H_h2o}")
哈密顿量: -73.83992491094487 * I([0, 1, 2, 3, 4, 5, 6, 7]) + 0.05958963502848465 * Z(0) + -0.04112911854118303 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4)) + -0.04112911854118303 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4)) + 0.054154913539253634 * Z(2) + 0.1764708591390641 * (Z(0) @ Z(2)) + 0.03333547524759559 * (Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + 0.03333547524759559 * (X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + -0.019726164720134498 * (Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + -0.019726164720134498 * (Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + 0.03038936744315189 * Z(4) + 0.07099210911325507 * (Z(0) @ Z(4)) + 0.013832337922576099 * Z(6) + 0.07297911775726791 * (Z(0) @ Z(6)) + 0.05958963502848462 * Z(1) + 0.20854395965479264 * (Z(0) @ Z(1)) + 0.029092754887581174 * (Y(0) @ Z(2) @ Z(3) @ Y(4)) + 0.029092754887581174 * (X(0) @ Z(2) @ Z(3) @ X(4)) + 0.011373209177807512 * (Y(0) @ X(1) @ X(2) @ Y(3)) + -0.011373209177807512 * (Y(0) @ Y(1) @ X(2) @ X(3)) + -0.011373209177807512 * (X(0) @ X(1) @ Y(2) @ Y(3)) + 0.011373209177807512 * (X(0) @ Y(1) @ Y(2) @ X(3)) + -0.0009795407438051226 * (Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6)) + -0.0009795407438051226 * (Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6)) + -0.0009795407438051226 * (X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6)) + -0.0009795407438051226 * (X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6)) + -0.04112911854118302 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5)) + 0.029092754887581174 * (Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5)) + -0.04112911854118302 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5)) + 0.029092754887581174 * (Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5)) + 0.008482065307526751 * (Y(0) @ X(1) @ X(4) @ Y(5)) + -0.008482065307526751 * (Y(0) @ Y(1) @ X(4) @ X(5)) + -0.008482065307526751 * (X(0) @ X(1) @ Y(4) @ Y(5)) + 0.008482065307526751 * (X(0) @ Y(1) @ Y(4) @ X(5)) + 0.0009795407438051226 * (Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.0009795407438051226 * (Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.0009795407438051226 * (X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0009795407438051226 * (X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.002716231523033821 * (Y(0) @ X(1) @ X(6) @ Y(7)) + -0.002716231523033821 * (Y(0) @ Y(1) @ X(6) @ X(7)) + -0.002716231523033821 * (X(0) @ X(1) @ Y(6) @ Y(7)) + 0.002716231523033821 * (X(0) @ Y(1) @ Y(6) @ X(7)) + 0.02339978384789014 * (Y(0) @ Z(1) @ Z(3) @ Y(4)) + 0.02339978384789014 * (X(0) @ Z(1) @ Z(3) @ X(4)) + -0.003933796303501121 * (Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6)) + -0.0023121606645631933 * (Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6)) + 0.0016216356389379281 * (Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6)) + 0.0016216356389379281 * (X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6)) + -0.0023121606645631933 * (X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6)) + -0.003933796303501121 * (X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6)) + 0.05415491353925377 * Z(3) + 0.18784406831687162 * (Z(0) @ Z(3)) + 0.025037734133715253 * (Y(0) @ Z(1) @ Z(2) @ Y(4)) + 0.025037734133715253 * (X(0) @ Z(1) @ Z(2) @ X(4)) + -0.0016379502858251127 * (Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2)) + -0.0016379502858251127 * (Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2)) + -0.0016379502858251127 * (X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2)) + -0.0016379502858251127 * (X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2)) + 0.0023171848193117312 * (Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6)) + 0.0023171848193117312 * (Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6)) + 0.0023171848193117312 * (X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6)) + 0.0023171848193117312 * (X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6)) + 0.0333354752475956 * (Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.02070570546393962 * (Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0333354752475956 * (X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.02070570546393962 * (Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.006250981122812854 * (Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2)) + 0.006250981122812854 * (Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2)) + 0.006250981122812854 * (X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2)) + -0.006250981122812854 * (X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2)) + 0.003218064768149666 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6)) + 0.003218064768149666 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6)) + 0.030389367443151835 * Z(5) + 0.07947417442078183 * (Z(0) @ Z(5)) + -0.007851639729927072 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5)) + -0.007851639729927072 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5)) + -0.004629345483874925 * (Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2)) + -0.004629345483874925 * (Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2)) + -0.004629345483874925 * (X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2)) + -0.004629345483874925 * (X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2)) + 0.012292848213220227 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7)) + -0.012292848213220227 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7)) + -0.012292848213220227 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7)) + 0.012292848213220227 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7)) + 0.013832337922576099 * Z(7) + 0.07569534928030175 * (Z(0) @ Z(7)) + -0.00907478344507056 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7)) + -0.00907478344507056 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7)) + 0.1764708591390641 * (Z(1) @ Z(3)) + -0.019726164720134498 * (Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.019726164720134498 * (Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.07099210911325507 * (Z(1) @ Z(5)) + 0.07297911775726791 * (Z(1) @ Z(7)) + 0.18784406831687162 * (Z(1) @ Z(2)) + 0.025037734133715253 * (Y(1) @ Z(3) @ Z(4) @ Y(5)) + 0.025037734133715253 * (X(1) @ Z(3) @ Z(4) @ X(5)) + -0.0016379502858251131 * (Y(1) @ X(2) @ X(3) @ Y(4)) + 0.0016379502858251131 * (Y(1) @ Y(2) @ X(3) @ X(4)) + 0.0016379502858251131 * (X(1) @ X(2) @ Y(3) @ Y(4)) + -0.0016379502858251131 * (X(1) @ Y(2) @ Y(3) @ X(4)) + 0.0023171848193117312 * (Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0023171848193117312 * (Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0023171848193117312 * (X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7)) + 0.0023171848193117312 * (X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7)) + -0.02070570546393962 * (Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + -0.02070570546393962 * (Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + -0.006250981122812854 * (Y(1) @ X(2) @ X(5) @ Y(6)) + 0.006250981122812854 * (Y(1) @ Y(2) @ X(5) @ X(6)) + 0.006250981122812854 * (X(1) @ X(2) @ Y(5) @ Y(6)) + -0.006250981122812854 * (X(1) @ Y(2) @ Y(5) @ X(6)) + 0.02339978384789014 * (Y(1) @ Z(2) @ Z(4) @ Y(5)) + 0.02339978384789014 * (X(1) @ Z(2) @ Z(4) @ X(5)) + -0.003933796303501121 * (Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7)) + -0.0023121606645631933 * (Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7)) + 0.0016216356389379281 * (Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7)) + 0.0016216356389379281 * (X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7)) + -0.0023121606645631933 * (X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7)) + -0.003933796303501121 * (X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7)) + 0.07947417442078183 * (Z(1) @ Z(4)) + -0.00785163972992707 * (Y(1) @ Z(2) @ Z(3) @ Y(5)) + -0.00785163972992707 * (X(1) @ Z(2) @ Z(3) @ X(5)) + -0.004629345483874925 * (Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3)) + -0.004629345483874925 * (Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3)) + -0.004629345483874925 * (X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3)) + -0.004629345483874925 * (X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3)) + -0.012292848213220227 * (Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7)) + -0.012292848213220227 * (Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7)) + -0.012292848213220227 * (X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7)) + -0.012292848213220227 * (X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7)) + 0.003218064768149666 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7)) + 0.003218064768149666 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7)) + 0.07569534928030175 * (Z(1) @ Z(6)) + -0.00907478344507056 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6)) + -0.00907478344507056 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6)) + 0.07419107987721522 * (Z(2) @ Z(4)) + 0.0685234543575795 * (Z(2) @ Z(6)) + 0.21148161408003305 * (Z(2) @ Z(3)) + -0.025495522674137322 * (Y(2) @ Z(4) @ Z(5) @ Y(6)) + -0.025495522674137322 * (X(2) @ Z(4) @ Z(5) @ X(6)) + 0.00222914519827612 * (Y(2) @ X(3) @ X(4) @ Y(5)) + -0.00222914519827612 * (Y(2) @ Y(3) @ X(4) @ X(5)) + -0.00222914519827612 * (X(2) @ X(3) @ Y(4) @ Y(5)) + 0.00222914519827612 * (X(2) @ Y(3) @ Y(4) @ X(5)) + -0.025495522674137322 * (Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.025495522674137322 * (Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.006254854927378014 * (Y(2) @ X(3) @ X(6) @ Y(7)) + -0.006254854927378014 * (Y(2) @ Y(3) @ X(6) @ X(7)) + -0.006254854927378014 * (X(2) @ X(3) @ Y(6) @ Y(7)) + 0.006254854927378014 * (X(2) @ Y(3) @ Y(6) @ X(7)) + -0.0026695698311234254 * (Y(2) @ Z(3) @ Z(5) @ Y(6)) + -0.0026695698311234254 * (X(2) @ Z(3) @ Z(5) @ X(6)) + 0.07642022507549136 * (Z(2) @ Z(5)) + 0.007352198216220915 * (Y(2) @ Z(3) @ Z(4) @ Y(6)) + 0.007352198216220915 * (X(2) @ Z(3) @ Z(4) @ X(6)) + -0.01002176804734434 * (Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4)) + -0.01002176804734434 * (Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4)) + -0.01002176804734434 * (X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4)) + -0.01002176804734434 * (X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4)) + 0.07477830928495752 * (Z(2) @ Z(7)) + 0.007989620646509385 * (Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7)) + 0.007989620646509385 * (X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7)) + 0.07419107987721522 * (Z(3) @ Z(5)) + 0.0685234543575795 * (Z(3) @ Z(7)) + 0.07642022507549136 * (Z(3) @ Z(4)) + 0.007352198216220915 * (Y(3) @ Z(5) @ Z(6) @ Y(7)) + 0.007352198216220915 * (X(3) @ Z(5) @ Z(6) @ X(7)) + -0.01002176804734434 * (Y(3) @ X(4) @ X(5) @ Y(6)) + 0.01002176804734434 * (Y(3) @ Y(4) @ X(5) @ X(6)) + 0.01002176804734434 * (X(3) @ X(4) @ Y(5) @ Y(6)) + -0.01002176804734434 * (X(3) @ Y(4) @ Y(5) @ X(6)) + -0.0026695698311234254 * (Y(3) @ Z(4) @ Z(6) @ Y(7)) + -0.0026695698311234254 * (X(3) @ Z(4) @ Z(6) @ X(7)) + 0.07477830928495752 * (Z(3) @ Z(6)) + 0.007989620646509384 * (Y(3) @ Z(4) @ Z(5) @ Y(7)) + 0.007989620646509384 * (X(3) @ Z(4) @ Z(5) @ X(7)) + 0.05457280381221215 * (Z(4) @ Z(6)) + 0.11976742604236822 * (Z(4) @ Z(5)) + 0.0671043957009538 * (Y(4) @ X(5) @ X(6) @ Y(7)) + -0.0671043957009538 * (Y(4) @ Y(5) @ X(6) @ X(7)) + -0.0671043957009538 * (X(4) @ X(5) @ Y(6) @ Y(7)) + 0.0671043957009538 * (X(4) @ Y(5) @ Y(6) @ X(7)) + 0.12167719951316594 * (Z(4) @ Z(7)) + 0.05457280381221215 * (Z(5) @ Z(7)) + 0.12167719951316594 * (Z(5) @ Z(6)) + 0.12408192779458949 * (Z(6) @ Z(7))
In [41]:
Copied!
def parse_pennylane_observable_final(obs_obj):
"""最终修复版本的PennyLane观测量解析函数"""
from qibo.symbols import X, Y, Z, I
from functools import reduce
import operator
# 处理Prod类型(多量子比特操作)
if hasattr(obs_obj, 'operands'):
operands = obs_obj.operands
qibo_symbols = []
for operand in operands:
op_name = operand.name
wires = operand.wires
if op_name == 'PauliX':
qibo_symbols.append(X(wires[0]))
elif op_name == 'PauliY':
qibo_symbols.append(Y(wires[0]))
elif op_name == 'PauliZ':
qibo_symbols.append(Z(wires[0]))
elif op_name == 'Identity':
# Identity 有空的 wires,所以我们需要特殊处理
# 在2量子比特系统中,完整的单位矩阵是 I(0) * I(1)
pass # 稍后单独处理 Identity
if len(qibo_symbols) == 0:
# 如果只有 Identity 或空的符号列表
return I(0) * I(1) *I(2) * I(3) * I(4) * I(5) * I(6) * I(7)
elif len(qibo_symbols) == 1:
# 单个非 Identity 操作符
return qibo_symbols[0]
else:
# 多个操作符相乘
return reduce(operator.mul, qibo_symbols)
# 处理单量子比特操作
else:
op_name = obs_obj.name
wires = obs_obj.wires
if op_name == 'PauliX':
return X(wires[0])
elif op_name == 'PauliY':
return Y(wires[0])
elif op_name == 'PauliZ':
return Z(wires[0])
elif op_name == 'Identity':
# 单独的 Identity 在2量子比特系统中
return I(0) * I(1) *I(2) * I(3) * I(4) * I(5) * I(6) * I(7)
# 使用最终修复版本的解析器
print("=== 使用最终修复版本的解析器 ===")
symbolic_expression = 0
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
coeff_value = coeff.item() if hasattr(coeff, 'item') else float(coeff)
print(f"处理项 {i+1}: {ob}")
qibo_term = parse_pennylane_observable_final(ob)
print(f" 转换结果: {qibo_term}")
print(f" 系数: {coeff_value:+.8f}")
symbolic_expression += coeff_value * qibo_term
print(f"\n=== 最终符号表达式 ===")
print(symbolic_expression)
# 创建Qibo哈密顿量
print("\n=== 创建 Qibo 哈密顿量 ===")
try:
H_qibo = SymbolicHamiltonian(symbolic_expression, nqubits=8)
print(f"✅ Qibo哈密顿量创建成功!")
print(f"矩阵形状: {H_qibo.matrix.shape}")
print(f"哈密顿量类型: {type(H_qibo)}")
# 验证哈密顿量
print(f"\n=== 哈密顿量验证 ===")
print(f"矩阵迹: {np.trace(H_qibo.matrix):.6f}")
print(f"是否为厄米矩阵: {np.allclose(H_qibo.matrix.T.conj(), H_qibo.matrix)}")
except Exception as e:
print(f"❌ 创建失败: {e}")
import traceback
traceback.print_exc()
def parse_pennylane_observable_final(obs_obj):
"""最终修复版本的PennyLane观测量解析函数"""
from qibo.symbols import X, Y, Z, I
from functools import reduce
import operator
# 处理Prod类型(多量子比特操作)
if hasattr(obs_obj, 'operands'):
operands = obs_obj.operands
qibo_symbols = []
for operand in operands:
op_name = operand.name
wires = operand.wires
if op_name == 'PauliX':
qibo_symbols.append(X(wires[0]))
elif op_name == 'PauliY':
qibo_symbols.append(Y(wires[0]))
elif op_name == 'PauliZ':
qibo_symbols.append(Z(wires[0]))
elif op_name == 'Identity':
# Identity 有空的 wires,所以我们需要特殊处理
# 在2量子比特系统中,完整的单位矩阵是 I(0) * I(1)
pass # 稍后单独处理 Identity
if len(qibo_symbols) == 0:
# 如果只有 Identity 或空的符号列表
return I(0) * I(1) *I(2) * I(3) * I(4) * I(5) * I(6) * I(7)
elif len(qibo_symbols) == 1:
# 单个非 Identity 操作符
return qibo_symbols[0]
else:
# 多个操作符相乘
return reduce(operator.mul, qibo_symbols)
# 处理单量子比特操作
else:
op_name = obs_obj.name
wires = obs_obj.wires
if op_name == 'PauliX':
return X(wires[0])
elif op_name == 'PauliY':
return Y(wires[0])
elif op_name == 'PauliZ':
return Z(wires[0])
elif op_name == 'Identity':
# 单独的 Identity 在2量子比特系统中
return I(0) * I(1) *I(2) * I(3) * I(4) * I(5) * I(6) * I(7)
# 使用最终修复版本的解析器
print("=== 使用最终修复版本的解析器 ===")
symbolic_expression = 0
for i, (coeff, ob) in enumerate(zip(coeffs, obs)):
coeff_value = coeff.item() if hasattr(coeff, 'item') else float(coeff)
print(f"处理项 {i+1}: {ob}")
qibo_term = parse_pennylane_observable_final(ob)
print(f" 转换结果: {qibo_term}")
print(f" 系数: {coeff_value:+.8f}")
symbolic_expression += coeff_value * qibo_term
print(f"\n=== 最终符号表达式 ===")
print(symbolic_expression)
# 创建Qibo哈密顿量
print("\n=== 创建 Qibo 哈密顿量 ===")
try:
H_qibo = SymbolicHamiltonian(symbolic_expression, nqubits=8)
print(f"✅ Qibo哈密顿量创建成功!")
print(f"矩阵形状: {H_qibo.matrix.shape}")
print(f"哈密顿量类型: {type(H_qibo)}")
# 验证哈密顿量
print(f"\n=== 哈密顿量验证 ===")
print(f"矩阵迹: {np.trace(H_qibo.matrix):.6f}")
print(f"是否为厄米矩阵: {np.allclose(H_qibo.matrix.T.conj(), H_qibo.matrix)}")
except Exception as e:
print(f"❌ 创建失败: {e}")
import traceback
traceback.print_exc()
=== 使用最终修复版本的解析器 === 处理项 1: I() 转换结果: I0*I1*I2*I3*I4*I5*I6*I7 系数: -73.83992491 处理项 2: Z(0) 转换结果: Z0 系数: +0.05958964 处理项 3: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) 转换结果: Y0*Z1*Z2*Z3*Y4 系数: -0.04112912 处理项 4: X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) 转换结果: X0*Z1*Z2*Z3*X4 系数: -0.04112912 处理项 5: Z(2) 转换结果: Z2 系数: +0.05415491 处理项 6: Z(0) @ Z(2) 转换结果: Z0*Z2 系数: +0.17647086 处理项 7: Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) 转换结果: Y2*Z3*Z4*Z5*Y6 系数: +0.03333548 处理项 8: X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) 转换结果: X2*Z3*Z4*Z5*X6 系数: +0.03333548 处理项 9: Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) 转换结果: Z0*Y2*Z3*Z4*Z5*Y6 系数: -0.01972616 处理项 10: Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) 转换结果: Z0*X2*Z3*Z4*Z5*X6 系数: -0.01972616 处理项 11: Z(4) 转换结果: Z4 系数: +0.03038937 处理项 12: Z(0) @ Z(4) 转换结果: Z0*Z4 系数: +0.07099211 处理项 13: Z(6) 转换结果: Z6 系数: +0.01383234 处理项 14: Z(0) @ Z(6) 转换结果: Z0*Z6 系数: +0.07297912 处理项 15: Z(1) 转换结果: Z1 系数: +0.05958964 处理项 16: Z(0) @ Z(1) 转换结果: Z0*Z1 系数: +0.20854396 处理项 17: Y(0) @ Z(2) @ Z(3) @ Y(4) 转换结果: Y0*Z2*Z3*Y4 系数: +0.02909275 处理项 18: X(0) @ Z(2) @ Z(3) @ X(4) 转换结果: X0*Z2*Z3*X4 系数: +0.02909275 处理项 19: Y(0) @ X(1) @ X(2) @ Y(3) 转换结果: Y0*X1*X2*Y3 系数: +0.01137321 处理项 20: Y(0) @ Y(1) @ X(2) @ X(3) 转换结果: Y0*Y1*X2*X3 系数: -0.01137321 处理项 21: X(0) @ X(1) @ Y(2) @ Y(3) 转换结果: X0*X1*Y2*Y3 系数: -0.01137321 处理项 22: X(0) @ Y(1) @ Y(2) @ X(3) 转换结果: X0*Y1*Y2*X3 系数: +0.01137321 处理项 23: Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6) 转换结果: Y0*X1*X3*Z4*Z5*Y6 系数: -0.00097954 处理项 24: Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6) 转换结果: Y0*Y1*Y3*Z4*Z5*Y6 系数: -0.00097954 处理项 25: X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6) 转换结果: X0*X1*X3*Z4*Z5*X6 系数: -0.00097954 处理项 26: X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6) 转换结果: X0*Y1*Y3*Z4*Z5*X6 系数: -0.00097954 处理项 27: Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) 转换结果: Y1*Z2*Z3*Z4*Y5 系数: -0.04112912 处理项 28: Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) 转换结果: Z0*Y1*Z2*Z3*Z4*Y5 系数: +0.02909275 处理项 29: X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) 转换结果: X1*Z2*Z3*Z4*X5 系数: -0.04112912 处理项 30: Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) 转换结果: Z0*X1*Z2*Z3*Z4*X5 系数: +0.02909275 处理项 31: Y(0) @ X(1) @ X(4) @ Y(5) 转换结果: Y0*X1*X4*Y5 系数: +0.00848207 处理项 32: Y(0) @ Y(1) @ X(4) @ X(5) 转换结果: Y0*Y1*X4*X5 系数: -0.00848207 处理项 33: X(0) @ X(1) @ Y(4) @ Y(5) 转换结果: X0*X1*Y4*Y5 系数: -0.00848207 处理项 34: X(0) @ Y(1) @ Y(4) @ X(5) 转换结果: X0*Y1*Y4*X5 系数: +0.00848207 处理项 35: Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Y0*X1*X2*Z3*Z4*Z5*Z6*Y7 系数: +0.00097954 处理项 36: Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: Y0*Y1*X2*Z3*Z4*Z5*Z6*X7 系数: -0.00097954 处理项 37: X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: X0*X1*Y2*Z3*Z4*Z5*Z6*Y7 系数: -0.00097954 处理项 38: X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: X0*Y1*Y2*Z3*Z4*Z5*Z6*X7 系数: +0.00097954 处理项 39: Y(0) @ X(1) @ X(6) @ Y(7) 转换结果: Y0*X1*X6*Y7 系数: +0.00271623 处理项 40: Y(0) @ Y(1) @ X(6) @ X(7) 转换结果: Y0*Y1*X6*X7 系数: -0.00271623 处理项 41: X(0) @ X(1) @ Y(6) @ Y(7) 转换结果: X0*X1*Y6*Y7 系数: -0.00271623 处理项 42: X(0) @ Y(1) @ Y(6) @ X(7) 转换结果: X0*Y1*Y6*X7 系数: +0.00271623 处理项 43: Y(0) @ Z(1) @ Z(3) @ Y(4) 转换结果: Y0*Z1*Z3*Y4 系数: +0.02339978 处理项 44: X(0) @ Z(1) @ Z(3) @ X(4) 转换结果: X0*Z1*Z3*X4 系数: +0.02339978 处理项 45: Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6) 转换结果: Y0*Z1*X2*X4*Z5*Y6 系数: -0.00393380 处理项 46: Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6) 转换结果: Y0*Z1*Y2*Y4*Z5*Y6 系数: -0.00231216 处理项 47: Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6) 转换结果: Y0*Z1*Y2*X4*Z5*X6 系数: +0.00162164 处理项 48: X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6) 转换结果: X0*Z1*X2*Y4*Z5*Y6 系数: +0.00162164 处理项 49: X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6) 转换结果: X0*Z1*X2*X4*Z5*X6 系数: -0.00231216 处理项 50: X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6) 转换结果: X0*Z1*Y2*Y4*Z5*X6 系数: -0.00393380 处理项 51: Z(3) 转换结果: Z3 系数: +0.05415491 处理项 52: Z(0) @ Z(3) 转换结果: Z0*Z3 系数: +0.18784407 处理项 53: Y(0) @ Z(1) @ Z(2) @ Y(4) 转换结果: Y0*Z1*Z2*Y4 系数: +0.02503773 处理项 54: X(0) @ Z(1) @ Z(2) @ X(4) 转换结果: X0*Z1*Z2*X4 系数: +0.02503773 处理项 55: Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2) 转换结果: Y0*Y3*Z4*Y5*Z1*Y2 系数: -0.00163795 处理项 56: Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2) 转换结果: Y0*X3*Z4*X5*Z1*Y2 系数: -0.00163795 处理项 57: X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2) 转换结果: X0*Y3*Z4*Y5*Z1*X2 系数: -0.00163795 处理项 58: X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2) 转换结果: X0*X3*Z4*X5*Z1*X2 系数: -0.00163795 处理项 59: Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6) 转换结果: Y0*Z1*Z2*X3*X5*Y6 系数: +0.00231718 处理项 60: Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6) 转换结果: Y0*Z1*Z2*Y3*Y5*Y6 系数: +0.00231718 处理项 61: X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6) 转换结果: X0*Z1*Z2*X3*X5*X6 系数: +0.00231718 处理项 62: X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6) 转换结果: X0*Z1*Z2*Y3*Y5*X6 系数: +0.00231718 处理项 63: Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Y3*Z4*Z5*Z6*Y7 系数: +0.03333548 处理项 64: Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Z0*Y3*Z4*Z5*Z6*Y7 系数: -0.02070571 处理项 65: X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: X3*Z4*Z5*Z6*X7 系数: +0.03333548 处理项 66: Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: Z0*X3*Z4*Z5*Z6*X7 系数: -0.02070571 处理项 67: Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2) 转换结果: Y0*X3*X4*Z5*Z6*Y7*Z1*Z2 系数: -0.00625098 处理项 68: Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2) 转换结果: Y0*Y3*X4*Z5*Z6*X7*Z1*Z2 系数: +0.00625098 处理项 69: X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2) 转换结果: X0*X3*Y4*Z5*Z6*Y7*Z1*Z2 系数: +0.00625098 处理项 70: X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2) 转换结果: X0*Y3*Y4*Z5*Z6*X7*Z1*Z2 系数: -0.00625098 处理项 71: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6) 转换结果: Y0*Z1*Z2*Z3*Y4*Z6 系数: +0.00321806 处理项 72: X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6) 转换结果: X0*Z1*Z2*Z3*X4*Z6 系数: +0.00321806 处理项 73: Z(5) 转换结果: Z5 系数: +0.03038937 处理项 74: Z(0) @ Z(5) 转换结果: Z0*Z5 系数: +0.07947417 处理项 75: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5) 转换结果: Y0*Z1*Z2*Z3*Y4*Z5 系数: -0.00785164 处理项 76: X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5) 转换结果: X0*Z1*Z2*Z3*X4*Z5 系数: -0.00785164 处理项 77: Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2) 转换结果: Y0*Y5*Z6*Y7*Z1*Y2 系数: -0.00462935 处理项 78: Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2) 转换结果: Y0*X5*Z6*X7*Z1*Y2 系数: -0.00462935 处理项 79: X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2) 转换结果: X0*Y5*Z6*Y7*Z1*X2 系数: -0.00462935 处理项 80: X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2) 转换结果: X0*X5*Z6*X7*Z1*X2 系数: -0.00462935 处理项 81: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7) 转换结果: Y0*Z1*Z2*Z3*Z4*X5*X6*Y7 系数: +0.01229285 处理项 82: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7) 转换结果: Y0*Z1*Z2*Z3*Z4*Y5*X6*X7 系数: -0.01229285 处理项 83: X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7) 转换结果: X0*Z1*Z2*Z3*Z4*X5*Y6*Y7 系数: -0.01229285 处理项 84: X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7) 转换结果: X0*Z1*Z2*Z3*Z4*Y5*Y6*X7 系数: +0.01229285 处理项 85: Z(7) 转换结果: Z7 系数: +0.01383234 处理项 86: Z(0) @ Z(7) 转换结果: Z0*Z7 系数: +0.07569535 处理项 87: Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7) 转换结果: Y0*Z1*Z2*Z3*Y4*Z7 系数: -0.00907478 处理项 88: X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7) 转换结果: X0*Z1*Z2*Z3*X4*Z7 系数: -0.00907478 处理项 89: Z(1) @ Z(3) 转换结果: Z1*Z3 系数: +0.17647086 处理项 90: Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Z1*Y3*Z4*Z5*Z6*Y7 系数: -0.01972616 处理项 91: Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: Z1*X3*Z4*Z5*Z6*X7 系数: -0.01972616 处理项 92: Z(1) @ Z(5) 转换结果: Z1*Z5 系数: +0.07099211 处理项 93: Z(1) @ Z(7) 转换结果: Z1*Z7 系数: +0.07297912 处理项 94: Z(1) @ Z(2) 转换结果: Z1*Z2 系数: +0.18784407 处理项 95: Y(1) @ Z(3) @ Z(4) @ Y(5) 转换结果: Y1*Z3*Z4*Y5 系数: +0.02503773 处理项 96: X(1) @ Z(3) @ Z(4) @ X(5) 转换结果: X1*Z3*Z4*X5 系数: +0.02503773 处理项 97: Y(1) @ X(2) @ X(3) @ Y(4) 转换结果: Y1*X2*X3*Y4 系数: -0.00163795 处理项 98: Y(1) @ Y(2) @ X(3) @ X(4) 转换结果: Y1*Y2*X3*X4 系数: +0.00163795 处理项 99: X(1) @ X(2) @ Y(3) @ Y(4) 转换结果: X1*X2*Y3*Y4 系数: +0.00163795 处理项 100: X(1) @ Y(2) @ Y(3) @ X(4) 转换结果: X1*Y2*Y3*X4 系数: -0.00163795 处理项 101: Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Y1*X2*X4*Z5*Z6*Y7 系数: +0.00231718 处理项 102: Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Y1*Y2*Y4*Z5*Z6*Y7 系数: +0.00231718 处理项 103: X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7) 转换结果: X1*X2*X4*Z5*Z6*X7 系数: +0.00231718 处理项 104: X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7) 转换结果: X1*Y2*Y4*Z5*Z6*X7 系数: +0.00231718 处理项 105: Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) 转换结果: Z1*Y2*Z3*Z4*Z5*Y6 系数: -0.02070571 处理项 106: Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) 转换结果: Z1*X2*Z3*Z4*Z5*X6 系数: -0.02070571 处理项 107: Y(1) @ X(2) @ X(5) @ Y(6) 转换结果: Y1*X2*X5*Y6 系数: -0.00625098 处理项 108: Y(1) @ Y(2) @ X(5) @ X(6) 转换结果: Y1*Y2*X5*X6 系数: +0.00625098 处理项 109: X(1) @ X(2) @ Y(5) @ Y(6) 转换结果: X1*X2*Y5*Y6 系数: +0.00625098 处理项 110: X(1) @ Y(2) @ Y(5) @ X(6) 转换结果: X1*Y2*Y5*X6 系数: -0.00625098 处理项 111: Y(1) @ Z(2) @ Z(4) @ Y(5) 转换结果: Y1*Z2*Z4*Y5 系数: +0.02339978 处理项 112: X(1) @ Z(2) @ Z(4) @ X(5) 转换结果: X1*Z2*Z4*X5 系数: +0.02339978 处理项 113: Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7) 转换结果: Y1*Z2*X3*X5*Z6*Y7 系数: -0.00393380 处理项 114: Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7) 转换结果: Y1*Z2*Y3*Y5*Z6*Y7 系数: -0.00231216 处理项 115: Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7) 转换结果: Y1*Z2*Y3*X5*Z6*X7 系数: +0.00162164 处理项 116: X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7) 转换结果: X1*Z2*X3*Y5*Z6*Y7 系数: +0.00162164 处理项 117: X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7) 转换结果: X1*Z2*X3*X5*Z6*X7 系数: -0.00231216 处理项 118: X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7) 转换结果: X1*Z2*Y3*Y5*Z6*X7 系数: -0.00393380 处理项 119: Z(1) @ Z(4) 转换结果: Z1*Z4 系数: +0.07947417 处理项 120: Y(1) @ Z(2) @ Z(3) @ Y(5) 转换结果: Y1*Z2*Z3*Y5 系数: -0.00785164 处理项 121: X(1) @ Z(2) @ Z(3) @ X(5) 转换结果: X1*Z2*Z3*X5 系数: -0.00785164 处理项 122: Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3) 转换结果: Y1*Y4*Z5*Y6*Z2*Y3 系数: -0.00462935 处理项 123: Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3) 转换结果: Y1*X4*Z5*X6*Z2*Y3 系数: -0.00462935 处理项 124: X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3) 转换结果: X1*Y4*Z5*Y6*Z2*X3 系数: -0.00462935 处理项 125: X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3) 转换结果: X1*X4*Z5*X6*Z2*X3 系数: -0.00462935 处理项 126: Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7) 转换结果: Y1*Z2*Z3*X4*X6*Y7 系数: -0.01229285 处理项 127: Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7) 转换结果: Y1*Z2*Z3*Y4*Y6*Y7 系数: -0.01229285 处理项 128: X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7) 转换结果: X1*Z2*Z3*X4*X6*X7 系数: -0.01229285 处理项 129: X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7) 转换结果: X1*Z2*Z3*Y4*Y6*X7 系数: -0.01229285 处理项 130: Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7) 转换结果: Y1*Z2*Z3*Z4*Y5*Z7 系数: +0.00321806 处理项 131: X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7) 转换结果: X1*Z2*Z3*Z4*X5*Z7 系数: +0.00321806 处理项 132: Z(1) @ Z(6) 转换结果: Z1*Z6 系数: +0.07569535 处理项 133: Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6) 转换结果: Y1*Z2*Z3*Z4*Y5*Z6 系数: -0.00907478 处理项 134: X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6) 转换结果: X1*Z2*Z3*Z4*X5*Z6 系数: -0.00907478 处理项 135: Z(2) @ Z(4) 转换结果: Z2*Z4 系数: +0.07419108 处理项 136: Z(2) @ Z(6) 转换结果: Z2*Z6 系数: +0.06852345 处理项 137: Z(2) @ Z(3) 转换结果: Z2*Z3 系数: +0.21148161 处理项 138: Y(2) @ Z(4) @ Z(5) @ Y(6) 转换结果: Y2*Z4*Z5*Y6 系数: -0.02549552 处理项 139: X(2) @ Z(4) @ Z(5) @ X(6) 转换结果: X2*Z4*Z5*X6 系数: -0.02549552 处理项 140: Y(2) @ X(3) @ X(4) @ Y(5) 转换结果: Y2*X3*X4*Y5 系数: +0.00222915 处理项 141: Y(2) @ Y(3) @ X(4) @ X(5) 转换结果: Y2*Y3*X4*X5 系数: -0.00222915 处理项 142: X(2) @ X(3) @ Y(4) @ Y(5) 转换结果: X2*X3*Y4*Y5 系数: -0.00222915 处理项 143: X(2) @ Y(3) @ Y(4) @ X(5) 转换结果: X2*Y3*Y4*X5 系数: +0.00222915 处理项 144: Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7) 转换结果: Z2*Y3*Z4*Z5*Z6*Y7 系数: -0.02549552 处理项 145: Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7) 转换结果: Z2*X3*Z4*Z5*Z6*X7 系数: -0.02549552 处理项 146: Y(2) @ X(3) @ X(6) @ Y(7) 转换结果: Y2*X3*X6*Y7 系数: +0.00625485 处理项 147: Y(2) @ Y(3) @ X(6) @ X(7) 转换结果: Y2*Y3*X6*X7 系数: -0.00625485 处理项 148: X(2) @ X(3) @ Y(6) @ Y(7) 转换结果: X2*X3*Y6*Y7 系数: -0.00625485 处理项 149: X(2) @ Y(3) @ Y(6) @ X(7) 转换结果: X2*Y3*Y6*X7 系数: +0.00625485 处理项 150: Y(2) @ Z(3) @ Z(5) @ Y(6) 转换结果: Y2*Z3*Z5*Y6 系数: -0.00266957 处理项 151: X(2) @ Z(3) @ Z(5) @ X(6) 转换结果: X2*Z3*Z5*X6 系数: -0.00266957 处理项 152: Z(2) @ Z(5) 转换结果: Z2*Z5 系数: +0.07642023 处理项 153: Y(2) @ Z(3) @ Z(4) @ Y(6) 转换结果: Y2*Z3*Z4*Y6 系数: +0.00735220 处理项 154: X(2) @ Z(3) @ Z(4) @ X(6) 转换结果: X2*Z3*Z4*X6 系数: +0.00735220 处理项 155: Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4) 转换结果: Y2*Y5*Z6*Y7*Z3*Y4 系数: -0.01002177 处理项 156: Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4) 转换结果: Y2*X5*Z6*X7*Z3*Y4 系数: -0.01002177 处理项 157: X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4) 转换结果: X2*Y5*Z6*Y7*Z3*X4 系数: -0.01002177 处理项 158: X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4) 转换结果: X2*X5*Z6*X7*Z3*X4 系数: -0.01002177 处理项 159: Z(2) @ Z(7) 转换结果: Z2*Z7 系数: +0.07477831 处理项 160: Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7) 转换结果: Y2*Z3*Z4*Z5*Y6*Z7 系数: +0.00798962 处理项 161: X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7) 转换结果: X2*Z3*Z4*Z5*X6*Z7 系数: +0.00798962 处理项 162: Z(3) @ Z(5) 转换结果: Z3*Z5 系数: +0.07419108 处理项 163: Z(3) @ Z(7) 转换结果: Z3*Z7 系数: +0.06852345 处理项 164: Z(3) @ Z(4) 转换结果: Z3*Z4 系数: +0.07642023 处理项 165: Y(3) @ Z(5) @ Z(6) @ Y(7) 转换结果: Y3*Z5*Z6*Y7 系数: +0.00735220 处理项 166: X(3) @ Z(5) @ Z(6) @ X(7) 转换结果: X3*Z5*Z6*X7 系数: +0.00735220 处理项 167: Y(3) @ X(4) @ X(5) @ Y(6) 转换结果: Y3*X4*X5*Y6 系数: -0.01002177 处理项 168: Y(3) @ Y(4) @ X(5) @ X(6) 转换结果: Y3*Y4*X5*X6 系数: +0.01002177 处理项 169: X(3) @ X(4) @ Y(5) @ Y(6) 转换结果: X3*X4*Y5*Y6 系数: +0.01002177 处理项 170: X(3) @ Y(4) @ Y(5) @ X(6) 转换结果: X3*Y4*Y5*X6 系数: -0.01002177 处理项 171: Y(3) @ Z(4) @ Z(6) @ Y(7) 转换结果: Y3*Z4*Z6*Y7 系数: -0.00266957 处理项 172: X(3) @ Z(4) @ Z(6) @ X(7) 转换结果: X3*Z4*Z6*X7 系数: -0.00266957 处理项 173: Z(3) @ Z(6) 转换结果: Z3*Z6 系数: +0.07477831 处理项 174: Y(3) @ Z(4) @ Z(5) @ Y(7) 转换结果: Y3*Z4*Z5*Y7 系数: +0.00798962 处理项 175: X(3) @ Z(4) @ Z(5) @ X(7) 转换结果: X3*Z4*Z5*X7 系数: +0.00798962 处理项 176: Z(4) @ Z(6) 转换结果: Z4*Z6 系数: +0.05457280 处理项 177: Z(4) @ Z(5) 转换结果: Z4*Z5 系数: +0.11976743 处理项 178: Y(4) @ X(5) @ X(6) @ Y(7) 转换结果: Y4*X5*X6*Y7 系数: +0.06710440 处理项 179: Y(4) @ Y(5) @ X(6) @ X(7) 转换结果: Y4*Y5*X6*X7 系数: -0.06710440 处理项 180: X(4) @ X(5) @ Y(6) @ Y(7) 转换结果: X4*X5*Y6*Y7 系数: -0.06710440 处理项 181: X(4) @ Y(5) @ Y(6) @ X(7) 转换结果: X4*Y5*Y6*X7 系数: +0.06710440 处理项 182: Z(4) @ Z(7) 转换结果: Z4*Z7 系数: +0.12167720 处理项 183: Z(5) @ Z(7) 转换结果: Z5*Z7 系数: +0.05457280 处理项 184: Z(5) @ Z(6) 转换结果: Z5*Z6 系数: +0.12167720 处理项 185: Z(6) @ Z(7) 转换结果: Z6*Z7 系数: +0.12408193 === 最终符号表达式 === -73.8399249109449*I0*I1*I2*I3*I4*I5*I6*I7 - 0.000979540743805123*X0*X1*X3*Z4*Z5*X6 - 0.0113732091778075*X0*X1*Y2*Y3 - 0.000979540743805123*X0*X1*Y2*Z3*Z4*Z5*Z6*Y7 - 0.00848206530752675*X0*X1*Y4*Y5 - 0.00271623152303382*X0*X1*Y6*Y7 + 0.00625098112281285*X0*X3*Y4*Z5*Z6*Y7*Z1*Z2 - 0.00163795028582511*X0*X3*Z4*X5*Z1*X2 - 0.00462934548387493*X0*X5*Z6*X7*Z1*X2 + 0.0113732091778075*X0*Y1*Y2*X3 + 0.000979540743805123*X0*Y1*Y2*Z3*Z4*Z5*Z6*X7 - 0.000979540743805123*X0*Y1*Y3*Z4*Z5*X6 + 0.00848206530752675*X0*Y1*Y4*X5 + 0.00271623152303382*X0*Y1*Y6*X7 - 0.00625098112281285*X0*Y3*Y4*Z5*Z6*X7*Z1*Z2 - 0.00163795028582511*X0*Y3*Z4*Y5*Z1*X2 - 0.00462934548387493*X0*Y5*Z6*Y7*Z1*X2 - 0.00231216066456319*X0*Z1*X2*X4*Z5*X6 + 0.00162163563893793*X0*Z1*X2*Y4*Z5*Y6 - 0.00393379630350112*X0*Z1*Y2*Y4*Z5*X6 + 0.00231718481931173*X0*Z1*Z2*X3*X5*X6 + 0.0250377341337153*X0*Z1*Z2*X4 + 0.00231718481931173*X0*Z1*Z2*Y3*Y5*X6 - 0.041129118541183*X0*Z1*Z2*Z3*X4 - 0.00785163972992707*X0*Z1*Z2*Z3*X4*Z5 + 0.00321806476814967*X0*Z1*Z2*Z3*X4*Z6 - 0.00907478344507056*X0*Z1*Z2*Z3*X4*Z7 - 0.0122928482132202*X0*Z1*Z2*Z3*Z4*X5*Y6*Y7 + 0.0122928482132202*X0*Z1*Z2*Z3*Z4*Y5*Y6*X7 + 0.0233997838478901*X0*Z1*Z3*X4 + 0.0290927548875812*X0*Z2*Z3*X4 + 0.00231718481931173*X1*X2*X4*Z5*Z6*X7 + 0.00163795028582511*X1*X2*Y3*Y4 + 0.00625098112281285*X1*X2*Y5*Y6 - 0.00462934548387493*X1*X4*Z5*X6*Z2*X3 - 0.00163795028582511*X1*Y2*Y3*X4 + 0.00231718481931173*X1*Y2*Y4*Z5*Z6*X7 - 0.00625098112281285*X1*Y2*Y5*X6 - 0.00462934548387493*X1*Y4*Z5*Y6*Z2*X3 - 0.00231216066456319*X1*Z2*X3*X5*Z6*X7 + 0.00162163563893793*X1*Z2*X3*Y5*Z6*Y7 - 0.00393379630350112*X1*Z2*Y3*Y5*Z6*X7 - 0.0122928482132202*X1*Z2*Z3*X4*X6*X7 - 0.00785163972992707*X1*Z2*Z3*X5 - 0.0122928482132202*X1*Z2*Z3*Y4*Y6*X7 - 0.041129118541183*X1*Z2*Z3*Z4*X5 - 0.00907478344507056*X1*Z2*Z3*Z4*X5*Z6 + 0.00321806476814967*X1*Z2*Z3*Z4*X5*Z7 + 0.0233997838478901*X1*Z2*Z4*X5 + 0.0250377341337153*X1*Z3*Z4*X5 - 0.00222914519827612*X2*X3*Y4*Y5 - 0.00625485492737801*X2*X3*Y6*Y7 - 0.0100217680473443*X2*X5*Z6*X7*Z3*X4 + 0.00222914519827612*X2*Y3*Y4*X5 + 0.00625485492737801*X2*Y3*Y6*X7 - 0.0100217680473443*X2*Y5*Z6*Y7*Z3*X4 + 0.00735219821622092*X2*Z3*Z4*X6 + 0.0333354752475956*X2*Z3*Z4*Z5*X6 + 0.00798962064650939*X2*Z3*Z4*Z5*X6*Z7 - 0.00266956983112343*X2*Z3*Z5*X6 - 0.0254955226741373*X2*Z4*Z5*X6 + 0.0100217680473443*X3*X4*Y5*Y6 - 0.0100217680473443*X3*Y4*Y5*X6 + 0.00798962064650938*X3*Z4*Z5*X7 + 0.0333354752475956*X3*Z4*Z5*Z6*X7 - 0.00266956983112343*X3*Z4*Z6*X7 + 0.00735219821622092*X3*Z5*Z6*X7 - 0.0671043957009538*X4*X5*Y6*Y7 + 0.0671043957009538*X4*Y5*Y6*X7 + 0.0113732091778075*Y0*X1*X2*Y3 + 0.000979540743805123*Y0*X1*X2*Z3*Z4*Z5*Z6*Y7 - 0.000979540743805123*Y0*X1*X3*Z4*Z5*Y6 + 0.00848206530752675*Y0*X1*X4*Y5 + 0.00271623152303382*Y0*X1*X6*Y7 - 0.00625098112281285*Y0*X3*X4*Z5*Z6*Y7*Z1*Z2 - 0.00163795028582511*Y0*X3*Z4*X5*Z1*Y2 - 0.00462934548387493*Y0*X5*Z6*X7*Z1*Y2 - 0.0113732091778075*Y0*Y1*X2*X3 - 0.000979540743805123*Y0*Y1*X2*Z3*Z4*Z5*Z6*X7 - 0.00848206530752675*Y0*Y1*X4*X5 - 0.00271623152303382*Y0*Y1*X6*X7 - 0.000979540743805123*Y0*Y1*Y3*Z4*Z5*Y6 + 0.00625098112281285*Y0*Y3*X4*Z5*Z6*X7*Z1*Z2 - 0.00163795028582511*Y0*Y3*Z4*Y5*Z1*Y2 - 0.00462934548387493*Y0*Y5*Z6*Y7*Z1*Y2 - 0.00393379630350112*Y0*Z1*X2*X4*Z5*Y6 + 0.00162163563893793*Y0*Z1*Y2*X4*Z5*X6 - 0.00231216066456319*Y0*Z1*Y2*Y4*Z5*Y6 + 0.00231718481931173*Y0*Z1*Z2*X3*X5*Y6 + 0.00231718481931173*Y0*Z1*Z2*Y3*Y5*Y6 + 0.0250377341337153*Y0*Z1*Z2*Y4 - 0.041129118541183*Y0*Z1*Z2*Z3*Y4 - 0.00785163972992707*Y0*Z1*Z2*Z3*Y4*Z5 + 0.00321806476814967*Y0*Z1*Z2*Z3*Y4*Z6 - 0.00907478344507056*Y0*Z1*Z2*Z3*Y4*Z7 + 0.0122928482132202*Y0*Z1*Z2*Z3*Z4*X5*X6*Y7 - 0.0122928482132202*Y0*Z1*Z2*Z3*Z4*Y5*X6*X7 + 0.0233997838478901*Y0*Z1*Z3*Y4 + 0.0290927548875812*Y0*Z2*Z3*Y4 - 0.00163795028582511*Y1*X2*X3*Y4 + 0.00231718481931173*Y1*X2*X4*Z5*Z6*Y7 - 0.00625098112281285*Y1*X2*X5*Y6 - 0.00462934548387493*Y1*X4*Z5*X6*Z2*Y3 + 0.00163795028582511*Y1*Y2*X3*X4 + 0.00625098112281285*Y1*Y2*X5*X6 + 0.00231718481931173*Y1*Y2*Y4*Z5*Z6*Y7 - 0.00462934548387493*Y1*Y4*Z5*Y6*Z2*Y3 - 0.00393379630350112*Y1*Z2*X3*X5*Z6*Y7 + 0.00162163563893793*Y1*Z2*Y3*X5*Z6*X7 - 0.00231216066456319*Y1*Z2*Y3*Y5*Z6*Y7 - 0.0122928482132202*Y1*Z2*Z3*X4*X6*Y7 - 0.0122928482132202*Y1*Z2*Z3*Y4*Y6*Y7 - 0.00785163972992707*Y1*Z2*Z3*Y5 - 0.041129118541183*Y1*Z2*Z3*Z4*Y5 - 0.00907478344507056*Y1*Z2*Z3*Z4*Y5*Z6 + 0.00321806476814967*Y1*Z2*Z3*Z4*Y5*Z7 + 0.0233997838478901*Y1*Z2*Z4*Y5 + 0.0250377341337153*Y1*Z3*Z4*Y5 + 0.00222914519827612*Y2*X3*X4*Y5 + 0.00625485492737801*Y2*X3*X6*Y7 - 0.0100217680473443*Y2*X5*Z6*X7*Z3*Y4 - 0.00222914519827612*Y2*Y3*X4*X5 - 0.00625485492737801*Y2*Y3*X6*X7 - 0.0100217680473443*Y2*Y5*Z6*Y7*Z3*Y4 + 0.00735219821622092*Y2*Z3*Z4*Y6 + 0.0333354752475956*Y2*Z3*Z4*Z5*Y6 + 0.00798962064650939*Y2*Z3*Z4*Z5*Y6*Z7 - 0.00266956983112343*Y2*Z3*Z5*Y6 - 0.0254955226741373*Y2*Z4*Z5*Y6 - 0.0100217680473443*Y3*X4*X5*Y6 + 0.0100217680473443*Y3*Y4*X5*X6 + 0.00798962064650938*Y3*Z4*Z5*Y7 + 0.0333354752475956*Y3*Z4*Z5*Z6*Y7 - 0.00266956983112343*Y3*Z4*Z6*Y7 + 0.00735219821622092*Y3*Z5*Z6*Y7 + 0.0671043957009538*Y4*X5*X6*Y7 - 0.0671043957009538*Y4*Y5*X6*X7 + 0.0595896350284846*Z0 + 0.0290927548875812*Z0*X1*Z2*Z3*Z4*X5 - 0.0197261647201345*Z0*X2*Z3*Z4*Z5*X6 - 0.0207057054639396*Z0*X3*Z4*Z5*Z6*X7 + 0.0290927548875812*Z0*Y1*Z2*Z3*Z4*Y5 - 0.0197261647201345*Z0*Y2*Z3*Z4*Z5*Y6 - 0.0207057054639396*Z0*Y3*Z4*Z5*Z6*Y7 + 0.208543959654793*Z0*Z1 + 0.176470859139064*Z0*Z2 + 0.187844068316872*Z0*Z3 + 0.0709921091132551*Z0*Z4 + 0.0794741744207818*Z0*Z5 + 0.0729791177572679*Z0*Z6 + 0.0756953492803017*Z0*Z7 + 0.0595896350284846*Z1 - 0.0207057054639396*Z1*X2*Z3*Z4*Z5*X6 - 0.0197261647201345*Z1*X3*Z4*Z5*Z6*X7 - 0.0207057054639396*Z1*Y2*Z3*Z4*Z5*Y6 - 0.0197261647201345*Z1*Y3*Z4*Z5*Z6*Y7 + 0.187844068316872*Z1*Z2 + 0.176470859139064*Z1*Z3 + 0.0794741744207818*Z1*Z4 + 0.0709921091132551*Z1*Z5 + 0.0756953492803017*Z1*Z6 + 0.0729791177572679*Z1*Z7 + 0.0541549135392536*Z2 - 0.0254955226741373*Z2*X3*Z4*Z5*Z6*X7 - 0.0254955226741373*Z2*Y3*Z4*Z5*Z6*Y7 + 0.211481614080033*Z2*Z3 + 0.0741910798772152*Z2*Z4 + 0.0764202250754914*Z2*Z5 + 0.0685234543575795*Z2*Z6 + 0.0747783092849575*Z2*Z7 + 0.0541549135392538*Z3 + 0.0764202250754914*Z3*Z4 + 0.0741910798772152*Z3*Z5 + 0.0747783092849575*Z3*Z6 + 0.0685234543575795*Z3*Z7 + 0.0303893674431519*Z4 + 0.119767426042368*Z4*Z5 + 0.0545728038122121*Z4*Z6 + 0.121677199513166*Z4*Z7 + 0.0303893674431518*Z5 + 0.121677199513166*Z5*Z6 + 0.0545728038122121*Z5*Z7 + 0.0138323379225761*Z6 + 0.124081927794589*Z6*Z7 + 0.0138323379225761*Z7 === 创建 Qibo 哈密顿量 === ✅ Qibo哈密顿量创建成功! 矩阵形状: (256, 256) 哈密顿量类型: <class 'qibo.hamiltonians.hamiltonians.SymbolicHamiltonian'> === 哈密顿量验证 === 矩阵迹: -18903.020777+0.000000j 是否为厄米矩阵: True
In [42]:
Copied!
print(H_h2o)
print(H_qibo)
print(H_h2o)
print(H_qibo)
-73.83992491094487 * I([0, 1, 2, 3, 4, 5, 6, 7]) + 0.05958963502848465 * Z(0) + -0.04112911854118303 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4)) + -0.04112911854118303 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4)) + 0.054154913539253634 * Z(2) + 0.1764708591390641 * (Z(0) @ Z(2)) + 0.03333547524759559 * (Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + 0.03333547524759559 * (X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + -0.019726164720134498 * (Z(0) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + -0.019726164720134498 * (Z(0) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + 0.03038936744315189 * Z(4) + 0.07099210911325507 * (Z(0) @ Z(4)) + 0.013832337922576099 * Z(6) + 0.07297911775726791 * (Z(0) @ Z(6)) + 0.05958963502848462 * Z(1) + 0.20854395965479264 * (Z(0) @ Z(1)) + 0.029092754887581174 * (Y(0) @ Z(2) @ Z(3) @ Y(4)) + 0.029092754887581174 * (X(0) @ Z(2) @ Z(3) @ X(4)) + 0.011373209177807512 * (Y(0) @ X(1) @ X(2) @ Y(3)) + -0.011373209177807512 * (Y(0) @ Y(1) @ X(2) @ X(3)) + -0.011373209177807512 * (X(0) @ X(1) @ Y(2) @ Y(3)) + 0.011373209177807512 * (X(0) @ Y(1) @ Y(2) @ X(3)) + -0.0009795407438051226 * (Y(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ Y(6)) + -0.0009795407438051226 * (Y(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ Y(6)) + -0.0009795407438051226 * (X(0) @ X(1) @ X(3) @ Z(4) @ Z(5) @ X(6)) + -0.0009795407438051226 * (X(0) @ Y(1) @ Y(3) @ Z(4) @ Z(5) @ X(6)) + -0.04112911854118302 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5)) + 0.029092754887581174 * (Z(0) @ Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5)) + -0.04112911854118302 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5)) + 0.029092754887581174 * (Z(0) @ X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5)) + 0.008482065307526751 * (Y(0) @ X(1) @ X(4) @ Y(5)) + -0.008482065307526751 * (Y(0) @ Y(1) @ X(4) @ X(5)) + -0.008482065307526751 * (X(0) @ X(1) @ Y(4) @ Y(5)) + 0.008482065307526751 * (X(0) @ Y(1) @ Y(4) @ X(5)) + 0.0009795407438051226 * (Y(0) @ X(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.0009795407438051226 * (Y(0) @ Y(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.0009795407438051226 * (X(0) @ X(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0009795407438051226 * (X(0) @ Y(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.002716231523033821 * (Y(0) @ X(1) @ X(6) @ Y(7)) + -0.002716231523033821 * (Y(0) @ Y(1) @ X(6) @ X(7)) + -0.002716231523033821 * (X(0) @ X(1) @ Y(6) @ Y(7)) + 0.002716231523033821 * (X(0) @ Y(1) @ Y(6) @ X(7)) + 0.02339978384789014 * (Y(0) @ Z(1) @ Z(3) @ Y(4)) + 0.02339978384789014 * (X(0) @ Z(1) @ Z(3) @ X(4)) + -0.003933796303501121 * (Y(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ Y(6)) + -0.0023121606645631933 * (Y(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ Y(6)) + 0.0016216356389379281 * (Y(0) @ Z(1) @ Y(2) @ X(4) @ Z(5) @ X(6)) + 0.0016216356389379281 * (X(0) @ Z(1) @ X(2) @ Y(4) @ Z(5) @ Y(6)) + -0.0023121606645631933 * (X(0) @ Z(1) @ X(2) @ X(4) @ Z(5) @ X(6)) + -0.003933796303501121 * (X(0) @ Z(1) @ Y(2) @ Y(4) @ Z(5) @ X(6)) + 0.05415491353925377 * Z(3) + 0.18784406831687162 * (Z(0) @ Z(3)) + 0.025037734133715253 * (Y(0) @ Z(1) @ Z(2) @ Y(4)) + 0.025037734133715253 * (X(0) @ Z(1) @ Z(2) @ X(4)) + -0.0016379502858251127 * (Y(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ Y(2)) + -0.0016379502858251127 * (Y(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ Y(2)) + -0.0016379502858251127 * (X(0) @ Y(3) @ Z(4) @ Y(5) @ Z(1) @ X(2)) + -0.0016379502858251127 * (X(0) @ X(3) @ Z(4) @ X(5) @ Z(1) @ X(2)) + 0.0023171848193117312 * (Y(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ Y(6)) + 0.0023171848193117312 * (Y(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ Y(6)) + 0.0023171848193117312 * (X(0) @ Z(1) @ Z(2) @ X(3) @ X(5) @ X(6)) + 0.0023171848193117312 * (X(0) @ Z(1) @ Z(2) @ Y(3) @ Y(5) @ X(6)) + 0.0333354752475956 * (Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.02070570546393962 * (Z(0) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0333354752475956 * (X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.02070570546393962 * (Z(0) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + -0.006250981122812854 * (Y(0) @ X(3) @ X(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2)) + 0.006250981122812854 * (Y(0) @ Y(3) @ X(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2)) + 0.006250981122812854 * (X(0) @ X(3) @ Y(4) @ Z(5) @ Z(6) @ Y(7) @ Z(1) @ Z(2)) + -0.006250981122812854 * (X(0) @ Y(3) @ Y(4) @ Z(5) @ Z(6) @ X(7) @ Z(1) @ Z(2)) + 0.003218064768149666 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(6)) + 0.003218064768149666 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(6)) + 0.030389367443151835 * Z(5) + 0.07947417442078183 * (Z(0) @ Z(5)) + -0.007851639729927072 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(5)) + -0.007851639729927072 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(5)) + -0.004629345483874925 * (Y(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ Y(2)) + -0.004629345483874925 * (Y(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ Y(2)) + -0.004629345483874925 * (X(0) @ Y(5) @ Z(6) @ Y(7) @ Z(1) @ X(2)) + -0.004629345483874925 * (X(0) @ X(5) @ Z(6) @ X(7) @ Z(1) @ X(2)) + 0.012292848213220227 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ X(6) @ Y(7)) + -0.012292848213220227 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ X(6) @ X(7)) + -0.012292848213220227 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Y(6) @ Y(7)) + 0.012292848213220227 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Y(6) @ X(7)) + 0.013832337922576099 * Z(7) + 0.07569534928030175 * (Z(0) @ Z(7)) + -0.00907478344507056 * (Y(0) @ Z(1) @ Z(2) @ Z(3) @ Y(4) @ Z(7)) + -0.00907478344507056 * (X(0) @ Z(1) @ Z(2) @ Z(3) @ X(4) @ Z(7)) + 0.1764708591390641 * (Z(1) @ Z(3)) + -0.019726164720134498 * (Z(1) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.019726164720134498 * (Z(1) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.07099210911325507 * (Z(1) @ Z(5)) + 0.07297911775726791 * (Z(1) @ Z(7)) + 0.18784406831687162 * (Z(1) @ Z(2)) + 0.025037734133715253 * (Y(1) @ Z(3) @ Z(4) @ Y(5)) + 0.025037734133715253 * (X(1) @ Z(3) @ Z(4) @ X(5)) + -0.0016379502858251131 * (Y(1) @ X(2) @ X(3) @ Y(4)) + 0.0016379502858251131 * (Y(1) @ Y(2) @ X(3) @ X(4)) + 0.0016379502858251131 * (X(1) @ X(2) @ Y(3) @ Y(4)) + -0.0016379502858251131 * (X(1) @ Y(2) @ Y(3) @ X(4)) + 0.0023171848193117312 * (Y(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0023171848193117312 * (Y(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ Y(7)) + 0.0023171848193117312 * (X(1) @ X(2) @ X(4) @ Z(5) @ Z(6) @ X(7)) + 0.0023171848193117312 * (X(1) @ Y(2) @ Y(4) @ Z(5) @ Z(6) @ X(7)) + -0.02070570546393962 * (Z(1) @ Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6)) + -0.02070570546393962 * (Z(1) @ X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6)) + -0.006250981122812854 * (Y(1) @ X(2) @ X(5) @ Y(6)) + 0.006250981122812854 * (Y(1) @ Y(2) @ X(5) @ X(6)) + 0.006250981122812854 * (X(1) @ X(2) @ Y(5) @ Y(6)) + -0.006250981122812854 * (X(1) @ Y(2) @ Y(5) @ X(6)) + 0.02339978384789014 * (Y(1) @ Z(2) @ Z(4) @ Y(5)) + 0.02339978384789014 * (X(1) @ Z(2) @ Z(4) @ X(5)) + -0.003933796303501121 * (Y(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ Y(7)) + -0.0023121606645631933 * (Y(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ Y(7)) + 0.0016216356389379281 * (Y(1) @ Z(2) @ Y(3) @ X(5) @ Z(6) @ X(7)) + 0.0016216356389379281 * (X(1) @ Z(2) @ X(3) @ Y(5) @ Z(6) @ Y(7)) + -0.0023121606645631933 * (X(1) @ Z(2) @ X(3) @ X(5) @ Z(6) @ X(7)) + -0.003933796303501121 * (X(1) @ Z(2) @ Y(3) @ Y(5) @ Z(6) @ X(7)) + 0.07947417442078183 * (Z(1) @ Z(4)) + -0.00785163972992707 * (Y(1) @ Z(2) @ Z(3) @ Y(5)) + -0.00785163972992707 * (X(1) @ Z(2) @ Z(3) @ X(5)) + -0.004629345483874925 * (Y(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ Y(3)) + -0.004629345483874925 * (Y(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ Y(3)) + -0.004629345483874925 * (X(1) @ Y(4) @ Z(5) @ Y(6) @ Z(2) @ X(3)) + -0.004629345483874925 * (X(1) @ X(4) @ Z(5) @ X(6) @ Z(2) @ X(3)) + -0.012292848213220227 * (Y(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ Y(7)) + -0.012292848213220227 * (Y(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ Y(7)) + -0.012292848213220227 * (X(1) @ Z(2) @ Z(3) @ X(4) @ X(6) @ X(7)) + -0.012292848213220227 * (X(1) @ Z(2) @ Z(3) @ Y(4) @ Y(6) @ X(7)) + 0.003218064768149666 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(7)) + 0.003218064768149666 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(7)) + 0.07569534928030175 * (Z(1) @ Z(6)) + -0.00907478344507056 * (Y(1) @ Z(2) @ Z(3) @ Z(4) @ Y(5) @ Z(6)) + -0.00907478344507056 * (X(1) @ Z(2) @ Z(3) @ Z(4) @ X(5) @ Z(6)) + 0.07419107987721522 * (Z(2) @ Z(4)) + 0.0685234543575795 * (Z(2) @ Z(6)) + 0.21148161408003305 * (Z(2) @ Z(3)) + -0.025495522674137322 * (Y(2) @ Z(4) @ Z(5) @ Y(6)) + -0.025495522674137322 * (X(2) @ Z(4) @ Z(5) @ X(6)) + 0.00222914519827612 * (Y(2) @ X(3) @ X(4) @ Y(5)) + -0.00222914519827612 * (Y(2) @ Y(3) @ X(4) @ X(5)) + -0.00222914519827612 * (X(2) @ X(3) @ Y(4) @ Y(5)) + 0.00222914519827612 * (X(2) @ Y(3) @ Y(4) @ X(5)) + -0.025495522674137322 * (Z(2) @ Y(3) @ Z(4) @ Z(5) @ Z(6) @ Y(7)) + -0.025495522674137322 * (Z(2) @ X(3) @ Z(4) @ Z(5) @ Z(6) @ X(7)) + 0.006254854927378014 * (Y(2) @ X(3) @ X(6) @ Y(7)) + -0.006254854927378014 * (Y(2) @ Y(3) @ X(6) @ X(7)) + -0.006254854927378014 * (X(2) @ X(3) @ Y(6) @ Y(7)) + 0.006254854927378014 * (X(2) @ Y(3) @ Y(6) @ X(7)) + -0.0026695698311234254 * (Y(2) @ Z(3) @ Z(5) @ Y(6)) + -0.0026695698311234254 * (X(2) @ Z(3) @ Z(5) @ X(6)) + 0.07642022507549136 * (Z(2) @ Z(5)) + 0.007352198216220915 * (Y(2) @ Z(3) @ Z(4) @ Y(6)) + 0.007352198216220915 * (X(2) @ Z(3) @ Z(4) @ X(6)) + -0.01002176804734434 * (Y(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ Y(4)) + -0.01002176804734434 * (Y(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ Y(4)) + -0.01002176804734434 * (X(2) @ Y(5) @ Z(6) @ Y(7) @ Z(3) @ X(4)) + -0.01002176804734434 * (X(2) @ X(5) @ Z(6) @ X(7) @ Z(3) @ X(4)) + 0.07477830928495752 * (Z(2) @ Z(7)) + 0.007989620646509385 * (Y(2) @ Z(3) @ Z(4) @ Z(5) @ Y(6) @ Z(7)) + 0.007989620646509385 * (X(2) @ Z(3) @ Z(4) @ Z(5) @ X(6) @ Z(7)) + 0.07419107987721522 * (Z(3) @ Z(5)) + 0.0685234543575795 * (Z(3) @ Z(7)) + 0.07642022507549136 * (Z(3) @ Z(4)) + 0.007352198216220915 * (Y(3) @ Z(5) @ Z(6) @ Y(7)) + 0.007352198216220915 * (X(3) @ Z(5) @ Z(6) @ X(7)) + -0.01002176804734434 * (Y(3) @ X(4) @ X(5) @ Y(6)) + 0.01002176804734434 * (Y(3) @ Y(4) @ X(5) @ X(6)) + 0.01002176804734434 * (X(3) @ X(4) @ Y(5) @ Y(6)) + -0.01002176804734434 * (X(3) @ Y(4) @ Y(5) @ X(6)) + -0.0026695698311234254 * (Y(3) @ Z(4) @ Z(6) @ Y(7)) + -0.0026695698311234254 * (X(3) @ Z(4) @ Z(6) @ X(7)) + 0.07477830928495752 * (Z(3) @ Z(6)) + 0.007989620646509384 * (Y(3) @ Z(4) @ Z(5) @ Y(7)) + 0.007989620646509384 * (X(3) @ Z(4) @ Z(5) @ X(7)) + 0.05457280381221215 * (Z(4) @ Z(6)) + 0.11976742604236822 * (Z(4) @ Z(5)) + 0.0671043957009538 * (Y(4) @ X(5) @ X(6) @ Y(7)) + -0.0671043957009538 * (Y(4) @ Y(5) @ X(6) @ X(7)) + -0.0671043957009538 * (X(4) @ X(5) @ Y(6) @ Y(7)) + 0.0671043957009538 * (X(4) @ Y(5) @ Y(6) @ X(7)) + 0.12167719951316594 * (Z(4) @ Z(7)) + 0.05457280381221215 * (Z(5) @ Z(7)) + 0.12167719951316594 * (Z(5) @ Z(6)) + 0.12408192779458949 * (Z(6) @ Z(7)) -73.8399249109449*I0*I1*I2*I3*I4*I5*I6*I7 - 0.000979540743805123*X0*X1*X3*Z4*Z5*X6 - 0.0113732091778075*X0*X1*Y2*Y3 - 0.000979540743805123*X0*X1*Y2*Z3*Z4*Z5*Z6*Y7 - 0.00848206530752675*X0*X1*Y4*Y5 - 0.00271623152303382*X0*X1*Y6*Y7 + 0.00625098112281285*X0*X3*Y4*Z5*Z6*Y7*Z1*Z2 - 0.00163795028582511*X0*X3*Z4*X5*Z1*X2 - 0.00462934548387493*X0*X5*Z6*X7*Z1*X2 + 0.0113732091778075*X0*Y1*Y2*X3 + 0.000979540743805123*X0*Y1*Y2*Z3*Z4*Z5*Z6*X7 - 0.000979540743805123*X0*Y1*Y3*Z4*Z5*X6 + 0.00848206530752675*X0*Y1*Y4*X5 + 0.00271623152303382*X0*Y1*Y6*X7 - 0.00625098112281285*X0*Y3*Y4*Z5*Z6*X7*Z1*Z2 - 0.00163795028582511*X0*Y3*Z4*Y5*Z1*X2 - 0.00462934548387493*X0*Y5*Z6*Y7*Z1*X2 - 0.00231216066456319*X0*Z1*X2*X4*Z5*X6 + 0.00162163563893793*X0*Z1*X2*Y4*Z5*Y6 - 0.00393379630350112*X0*Z1*Y2*Y4*Z5*X6 + 0.00231718481931173*X0*Z1*Z2*X3*X5*X6 + 0.0250377341337153*X0*Z1*Z2*X4 + 0.00231718481931173*X0*Z1*Z2*Y3*Y5*X6 - 0.041129118541183*X0*Z1*Z2*Z3*X4 - 0.00785163972992707*X0*Z1*Z2*Z3*X4*Z5 + 0.00321806476814967*X0*Z1*Z2*Z3*X4*Z6 - 0.00907478344507056*X0*Z1*Z2*Z3*X4*Z7 - 0.0122928482132202*X0*Z1*Z2*Z3*Z4*X5*Y6*Y7 + 0.0122928482132202*X0*Z1*Z2*Z3*Z4*Y5*Y6*X7 + 0.0233997838478901*X0*Z1*Z3*X4 + 0.0290927548875812*X0*Z2*Z3*X4 + 0.00231718481931173*X1*X2*X4*Z5*Z6*X7 + 0.00163795028582511*X1*X2*Y3*Y4 + 0.00625098112281285*X1*X2*Y5*Y6 - 0.00462934548387493*X1*X4*Z5*X6*Z2*X3 - 0.00163795028582511*X1*Y2*Y3*X4 + 0.00231718481931173*X1*Y2*Y4*Z5*Z6*X7 - 0.00625098112281285*X1*Y2*Y5*X6 - 0.00462934548387493*X1*Y4*Z5*Y6*Z2*X3 - 0.00231216066456319*X1*Z2*X3*X5*Z6*X7 + 0.00162163563893793*X1*Z2*X3*Y5*Z6*Y7 - 0.00393379630350112*X1*Z2*Y3*Y5*Z6*X7 - 0.0122928482132202*X1*Z2*Z3*X4*X6*X7 - 0.00785163972992707*X1*Z2*Z3*X5 - 0.0122928482132202*X1*Z2*Z3*Y4*Y6*X7 - 0.041129118541183*X1*Z2*Z3*Z4*X5 - 0.00907478344507056*X1*Z2*Z3*Z4*X5*Z6 + 0.00321806476814967*X1*Z2*Z3*Z4*X5*Z7 + 0.0233997838478901*X1*Z2*Z4*X5 + 0.0250377341337153*X1*Z3*Z4*X5 - 0.00222914519827612*X2*X3*Y4*Y5 - 0.00625485492737801*X2*X3*Y6*Y7 - 0.0100217680473443*X2*X5*Z6*X7*Z3*X4 + 0.00222914519827612*X2*Y3*Y4*X5 + 0.00625485492737801*X2*Y3*Y6*X7 - 0.0100217680473443*X2*Y5*Z6*Y7*Z3*X4 + 0.00735219821622092*X2*Z3*Z4*X6 + 0.0333354752475956*X2*Z3*Z4*Z5*X6 + 0.00798962064650939*X2*Z3*Z4*Z5*X6*Z7 - 0.00266956983112343*X2*Z3*Z5*X6 - 0.0254955226741373*X2*Z4*Z5*X6 + 0.0100217680473443*X3*X4*Y5*Y6 - 0.0100217680473443*X3*Y4*Y5*X6 + 0.00798962064650938*X3*Z4*Z5*X7 + 0.0333354752475956*X3*Z4*Z5*Z6*X7 - 0.00266956983112343*X3*Z4*Z6*X7 + 0.00735219821622092*X3*Z5*Z6*X7 - 0.0671043957009538*X4*X5*Y6*Y7 + 0.0671043957009538*X4*Y5*Y6*X7 + 0.0113732091778075*Y0*X1*X2*Y3 + 0.000979540743805123*Y0*X1*X2*Z3*Z4*Z5*Z6*Y7 - 0.000979540743805123*Y0*X1*X3*Z4*Z5*Y6 + 0.00848206530752675*Y0*X1*X4*Y5 + 0.00271623152303382*Y0*X1*X6*Y7 - 0.00625098112281285*Y0*X3*X4*Z5*Z6*Y7*Z1*Z2 - 0.00163795028582511*Y0*X3*Z4*X5*Z1*Y2 - 0.00462934548387493*Y0*X5*Z6*X7*Z1*Y2 - 0.0113732091778075*Y0*Y1*X2*X3 - 0.000979540743805123*Y0*Y1*X2*Z3*Z4*Z5*Z6*X7 - 0.00848206530752675*Y0*Y1*X4*X5 - 0.00271623152303382*Y0*Y1*X6*X7 - 0.000979540743805123*Y0*Y1*Y3*Z4*Z5*Y6 + 0.00625098112281285*Y0*Y3*X4*Z5*Z6*X7*Z1*Z2 - 0.00163795028582511*Y0*Y3*Z4*Y5*Z1*Y2 - 0.00462934548387493*Y0*Y5*Z6*Y7*Z1*Y2 - 0.00393379630350112*Y0*Z1*X2*X4*Z5*Y6 + 0.00162163563893793*Y0*Z1*Y2*X4*Z5*X6 - 0.00231216066456319*Y0*Z1*Y2*Y4*Z5*Y6 + 0.00231718481931173*Y0*Z1*Z2*X3*X5*Y6 + 0.00231718481931173*Y0*Z1*Z2*Y3*Y5*Y6 + 0.0250377341337153*Y0*Z1*Z2*Y4 - 0.041129118541183*Y0*Z1*Z2*Z3*Y4 - 0.00785163972992707*Y0*Z1*Z2*Z3*Y4*Z5 + 0.00321806476814967*Y0*Z1*Z2*Z3*Y4*Z6 - 0.00907478344507056*Y0*Z1*Z2*Z3*Y4*Z7 + 0.0122928482132202*Y0*Z1*Z2*Z3*Z4*X5*X6*Y7 - 0.0122928482132202*Y0*Z1*Z2*Z3*Z4*Y5*X6*X7 + 0.0233997838478901*Y0*Z1*Z3*Y4 + 0.0290927548875812*Y0*Z2*Z3*Y4 - 0.00163795028582511*Y1*X2*X3*Y4 + 0.00231718481931173*Y1*X2*X4*Z5*Z6*Y7 - 0.00625098112281285*Y1*X2*X5*Y6 - 0.00462934548387493*Y1*X4*Z5*X6*Z2*Y3 + 0.00163795028582511*Y1*Y2*X3*X4 + 0.00625098112281285*Y1*Y2*X5*X6 + 0.00231718481931173*Y1*Y2*Y4*Z5*Z6*Y7 - 0.00462934548387493*Y1*Y4*Z5*Y6*Z2*Y3 - 0.00393379630350112*Y1*Z2*X3*X5*Z6*Y7 + 0.00162163563893793*Y1*Z2*Y3*X5*Z6*X7 - 0.00231216066456319*Y1*Z2*Y3*Y5*Z6*Y7 - 0.0122928482132202*Y1*Z2*Z3*X4*X6*Y7 - 0.0122928482132202*Y1*Z2*Z3*Y4*Y6*Y7 - 0.00785163972992707*Y1*Z2*Z3*Y5 - 0.041129118541183*Y1*Z2*Z3*Z4*Y5 - 0.00907478344507056*Y1*Z2*Z3*Z4*Y5*Z6 + 0.00321806476814967*Y1*Z2*Z3*Z4*Y5*Z7 + 0.0233997838478901*Y1*Z2*Z4*Y5 + 0.0250377341337153*Y1*Z3*Z4*Y5 + 0.00222914519827612*Y2*X3*X4*Y5 + 0.00625485492737801*Y2*X3*X6*Y7 - 0.0100217680473443*Y2*X5*Z6*X7*Z3*Y4 - 0.00222914519827612*Y2*Y3*X4*X5 - 0.00625485492737801*Y2*Y3*X6*X7 - 0.0100217680473443*Y2*Y5*Z6*Y7*Z3*Y4 + 0.00735219821622092*Y2*Z3*Z4*Y6 + 0.0333354752475956*Y2*Z3*Z4*Z5*Y6 + 0.00798962064650939*Y2*Z3*Z4*Z5*Y6*Z7 - 0.00266956983112343*Y2*Z3*Z5*Y6 - 0.0254955226741373*Y2*Z4*Z5*Y6 - 0.0100217680473443*Y3*X4*X5*Y6 + 0.0100217680473443*Y3*Y4*X5*X6 + 0.00798962064650938*Y3*Z4*Z5*Y7 + 0.0333354752475956*Y3*Z4*Z5*Z6*Y7 - 0.00266956983112343*Y3*Z4*Z6*Y7 + 0.00735219821622092*Y3*Z5*Z6*Y7 + 0.0671043957009538*Y4*X5*X6*Y7 - 0.0671043957009538*Y4*Y5*X6*X7 + 0.0595896350284846*Z0 + 0.0290927548875812*Z0*X1*Z2*Z3*Z4*X5 - 0.0197261647201345*Z0*X2*Z3*Z4*Z5*X6 - 0.0207057054639396*Z0*X3*Z4*Z5*Z6*X7 + 0.0290927548875812*Z0*Y1*Z2*Z3*Z4*Y5 - 0.0197261647201345*Z0*Y2*Z3*Z4*Z5*Y6 - 0.0207057054639396*Z0*Y3*Z4*Z5*Z6*Y7 + 0.208543959654793*Z0*Z1 + 0.176470859139064*Z0*Z2 + 0.187844068316872*Z0*Z3 + 0.0709921091132551*Z0*Z4 + 0.0794741744207818*Z0*Z5 + 0.0729791177572679*Z0*Z6 + 0.0756953492803017*Z0*Z7 + 0.0595896350284846*Z1 - 0.0207057054639396*Z1*X2*Z3*Z4*Z5*X6 - 0.0197261647201345*Z1*X3*Z4*Z5*Z6*X7 - 0.0207057054639396*Z1*Y2*Z3*Z4*Z5*Y6 - 0.0197261647201345*Z1*Y3*Z4*Z5*Z6*Y7 + 0.187844068316872*Z1*Z2 + 0.176470859139064*Z1*Z3 + 0.0794741744207818*Z1*Z4 + 0.0709921091132551*Z1*Z5 + 0.0756953492803017*Z1*Z6 + 0.0729791177572679*Z1*Z7 + 0.0541549135392536*Z2 - 0.0254955226741373*Z2*X3*Z4*Z5*Z6*X7 - 0.0254955226741373*Z2*Y3*Z4*Z5*Z6*Y7 + 0.211481614080033*Z2*Z3 + 0.0741910798772152*Z2*Z4 + 0.0764202250754914*Z2*Z5 + 0.0685234543575795*Z2*Z6 + 0.0747783092849575*Z2*Z7 + 0.0541549135392538*Z3 + 0.0764202250754914*Z3*Z4 + 0.0741910798772152*Z3*Z5 + 0.0747783092849575*Z3*Z6 + 0.0685234543575795*Z3*Z7 + 0.0303893674431519*Z4 + 0.119767426042368*Z4*Z5 + 0.0545728038122121*Z4*Z6 + 0.121677199513166*Z4*Z7 + 0.0303893674431518*Z5 + 0.121677199513166*Z5*Z6 + 0.0545728038122121*Z5*Z7 + 0.0138323379225761*Z6 + 0.124081927794589*Z6*Z7 + 0.0138323379225761*Z7
In [45]:
Copied!
# 运行 He-H+ 模拟 (N=2, M=1) [cite: 53]
loss_curve = vqe_optimization(H_qibo, n_qubits=8, layers=4, learning_rate=0.1, max_iter=200)
# 绘图
plt.plot(loss_curve, label='VQE (Parameter Shift)')
plt.xlabel('Iterations')
plt.ylabel('Energy')
plt.title('He-H+ Ground State Energy Optimization')
plt.legend()
plt.show()
# 运行 He-H+ 模拟 (N=2, M=1) [cite: 53]
loss_curve = vqe_optimization(H_qibo, n_qubits=8, layers=4, learning_rate=0.1, max_iter=200)
# 绘图
plt.plot(loss_curve, label='VQE (Parameter Shift)')
plt.xlabel('Iterations')
plt.ylabel('Energy')
plt.title('He-H+ Ground State Energy Optimization')
plt.legend()
plt.show()
Starting VQE: N=8, Layers=4, MaxIter=200, LR=0.1 Iter 0: Energy = -73.858513 Iter 10: Energy = -74.050566 Iter 20: Energy = -74.152492 Iter 30: Energy = -74.220144 Iter 40: Energy = -74.273635 Iter 50: Energy = -74.323186 Iter 60: Energy = -74.376236 Iter 70: Energy = -74.437240 Iter 80: Energy = -74.502789 Iter 90: Energy = -74.561003 Iter 100: Energy = -74.602742 Iter 110: Energy = -74.628905 Iter 120: Energy = -74.644906 Iter 130: Energy = -74.655156 Iter 140: Energy = -74.662164 Iter 150: Energy = -74.667233 Iter 160: Energy = -74.671061 Iter 170: Energy = -74.674050 Iter 180: Energy = -74.676450 Iter 190: Energy = -74.678423
In [ ]:
Copied!