跳转至

Hamiltonian 与可观测量

上一课用量子门改变状态。Hamiltonian 描述状态怎样连续演化。把 ℏ 吸收到单位中,对于不随时间变化的 Hamiltonian,有 |ψ(t)⟩ = exp(−iHt)|ψ(0)⟩。

对一个共振驱动的两能级系统,取 H = ΩX/2。从 0 开始,激发概率为 sin²(Ωt/2),Z 期望值为 1 − 2p(1) = cos(Ωt)。这些公式假设系统孤立、理想,驱动恒定且失谐为零。

"""Evolve a two-level system with a matrix exponential and inspect observables."""

from __future__ import annotations

import json

import numpy as np
from scipy.linalg import expm


def experiment() -> dict[str, object]:
    omega, duration = 2.0, 0.4
    x = np.array([[0, 1], [1, 0]], dtype=complex)
    z = np.diag([1, -1])
    hamiltonian = omega * x / 2
    state = expm(-1j * hamiltonian * duration) @ np.array([1, 0])
    return {
        "omega_rad_per_us": omega,
        "duration_us": duration,
        "probability_one": float(abs(state[1]) ** 2),
        "z_expectation": float(np.vdot(state, z @ state).real),
        "hamiltonian_expectation": float(np.vdot(state, hamiltonian @ state).real),
        "norm_squared": float(np.vdot(state, state).real),
    }


if __name__ == "__main__":
    print(json.dumps(experiment(), sort_keys=True))

下载完整脚本

python examples/learning/foundations/hamiltonian_observables.py
{
  "duration_us": 0.4,
  "hamiltonian_expectation": 0.0,
  "norm_squared": 1.0,
  "omega_rad_per_us": 2.0,
  "probability_one": 0.15164664532641736,
  "z_expectation": 0.6967067093471654
}

这个小计算使用 SciPy 的矩阵指数作独立参考,没有调用 CASCAQit 模拟器。把输出与 sin²(0.4)、cos(0.8) 比较,范数平方应保持为一。

可观测量的期望值表示重复测量的平均值,不一定是某一次测量能取到的值。这里的 Hamiltonian 期望值始终为零,激发概率却在变化。因此,平均能量不变,并不意味着每个基态的概率都不变。

练习:保持 Ω = 2 rad/µs,选一个让激发概率为一的时长。此时 Z 期望值是多少?如果 Ω 和时长同时翻倍,脉冲面积是否不变?

答案

取 t = π/Ω = π/2 µs,Z 变为 −1。Ω 和时长同时翻倍,会把面积 Ωt 增加到四倍。对于这里的恒定驱动,要在 Ω 翻倍时保持演化相同,需要把时长减半。加入相互作用、失谐或噪声后,仅保持脉冲面积通常不够。

下一课:中性原子与相互作用。

English

SDK 1.0.8a · `6eff6362`