1. 二能级原子与拉比振荡仿真
物理模型与仿真思路
二能级原子在共振微波驱动下的哈密顿量(旋转波近似,RWA)为:
H = (ħ/2) · [ 0 Ω
Ω 0 ]
其中 Ω 为拉比频率(与驱动强度成正比)。设初始态为 |0⟩(基态),在共振条件下(失谐 Δ=0),态矢量的解析解为:
c₀(t) = cos(Ωt/2)
c₁(t) = -i·sin(Ωt/2)
因此激发态概率 P₁(t) = sin²(Ωt/2),振荡周期 T = 2π/Ω。仿真目标是:用数值积分求解薛定谔方程,与解析解对比,并改变 Ω 观察振荡频率变化。
数值实现(Python)
用四阶龙格-库塔法(RK4)积分含时薛定谔方程。取 ħ=1,Ω=2π×5 MHz,时间步长 dt=1 ns,总时长 0.4 μs(约 2 个振荡周期)。
import numpy as np
import matplotlib.pyplot as plt
hbar = 1.0
Omega = 2 * np.pi * 5e6 # 拉比频率 2π×5 MHz
dt = 1e-9 # 1 ns
T_total = 0.4e-6 # 0.4 μs
N = int(T_total / dt)
t = np.arange(N) * dt
# 哈密顿量(RWA,共振)
H = (hbar / 2) * np.array([[0, Omega],
[Omega, 0]], dtype=complex)
def rhs(psi):
return -1j / hbar * (H @ psi)
# 初态 |0>
psi = np.array([1.0, 0.0], dtype=complex)
P1 = np.zeros(N)
for k in range(N):
P1[k] = abs(psi[1])**2
k1 = rhs(psi)
k2 = rhs(psi + 0.5*dt*k1)
k3 = rhs(psi + 0.5*dt*k2)
k4 = rhs(psi + dt*k3)
psi = psi + dt/6 * (k1 + 2*k2 + 2*k3 + k4)
# 解析解
P1_exact = np.sin(Omega * t / 2)**2
# 误差
err = np.max(np.abs(P1 - P1_exact))
print(f"最大误差: {err:.2e}")
print(f"理论周期: {2*np.pi/Omega*1e9:.2f} ns")
plt.plot(t*1e9, P1, label="RK4 数值")
plt.plot(t*1e9, P1_exact, '--', label="解析 sin²(Ωt/2)")
plt.xlabel("t (ns)"); plt.ylabel("P₁(t)")
plt.legend(); plt.tight_layout(); plt.show()
结果判读与驱动强度对比
运行后应观察到:P₁(t) 从 0 出发,在 t = π/Ω = 100 ns 时达到最大值 1(完全翻转),在 t = 2π/Ω = 200 ns 时回到 0。数值解与解析解的最大误差应在 10⁻⁶ 量级(受 dt 离散化限制)。
将 Ω 改为 2π×10 MHz 再运行一次,周期缩短为 100 ns,振荡次数加倍——这直接验证了 T = 2π/Ω 的反比关系。若把失谐 Δ 设为非零(修改 H 的对角元为 ±Δ/2),振荡幅度会下降为 Ω²/(Ω²+Δ²),可作为扩展验证。
RK4 的精度对 dt 敏感:若把 dt 增大到 10 ns,误差会上升到 10⁻³ 量级。建议先用 dt=1 ns 建立基准,再逐步增大观察误差增长趋势,理解数值精度与步长的关系。