4. Lindblad主方程

开放量子系统的演化不能只用幺正算符描述,因为系统会与环境交换信息、能量甚至粒子。Lindblad主方程给出了马尔可夫近似下最一般、且保持完全正定与迹守恒的量子主方程。理解它的结构,是后续所有数值模拟的起点。

从约化密度矩阵到Lindblad形式

设系统—环境总态为 ρSE,系统约化密度矩阵为 ρS = TrE[ρSE]。在玻恩近似(弱耦合)、马尔可夫近似(环境记忆时间极短)和旋转波近似下,对总哈密顿量 H = HS + HE + HI 做二阶微扰展开并取环境热库的关联函数为 δ 型,可得到 Lindblad 主方程:

dρ/dt = -i[H, ρ] + Σ_k ( L_k ρ L_k† - ½{L_k†L_k, ρ} )

其中 H 是系统自身的厄米哈密顿量(可含环境引起的兰姆位移),Lk 称为跳跃算符或 Lindblad 算符,{A,B}=AB+BA 为反对易子。第一项 -i[H,ρ] 是幺正演化,第二项是耗散项,负责描述环境导致的退相干与耗散。方程保持 Tr(ρ)=1 和 ρ≥0,这是它优于朴素微扰方程的关键。

结构分解:幺正项与耗散项

把方程写成 dρ/dt = 𝓛(ρ),𝓛 是 Lindblad 超算符。它作用在密度矩阵上,而不是波函数上。耗散项可进一步写成 D[L]ρ = LρL† - ½{L†L,ρ},称为耗散子。若把 L 视为“跳跃”,则 LρL† 表示一次量子跳跃后系统态的变化,而 -½{L†L,ρ} 是跳跃未发生时的连续演化修正,二者共同保证迹守恒。多个 Lk 对应多个独立耗散通道,例如振幅阻尼、相位阻尼、退极化等。

Lindblad主方程结构:幺正演化 + 耗散通道 系统 S ρ(t),H 约化密度矩阵 环境 E(热库) 马尔可夫、无记忆 关联函数 δ(t) 弱耦合 H_I Lindblad 超算符 𝓛 dρ/dt = -i[H,ρ] + Σ D[L_k]ρ 幺正项 -i[H,ρ] 相干演化,保持纯度 耗散项 Σ D[L_k]ρ 跳跃与退相干,降低纯度

跳跃算符的物理意义

跳跃算符 L 的物理含义取决于具体形式。以振幅阻尼信道为例,取 L = √γ σ-,其中 σ- = |0⟩⟨1| 是下降算符,γ 是衰减速率。此时 LρL† = γ σ-ρσ+ 描述系统从激发态 |1⟩ 跃迁到基态 |0⟩ 并释放一个能量量子到环境的过程;而 -½{L†L,ρ} 中的 L†L = γ|1⟩⟨1| 表示处于激发态时发生跳跃的概率速率。若初始态为 |1⟩,则激发态布居 ρ11(t)=e-γt,相干项 ρ10(t)=e-γt/2ρ10(0),即布居以 γ 衰减,相干以 γ/2 衰减。这正是振幅阻尼信道的特征。

更一般地,L 可以是非厄米的,其厄米部分与反厄米部分分别对应不同的耗散机制。若 L 是厄米算符,则对应相位阻尼或退极化;若 L 是下降算符,则对应振幅阻尼。多个 Lk 可以同时存在,例如一个量子比特同时经历振幅阻尼和相位阻尼。

数值求解的基本思路

Lindblad 方程是线性常微分方程,但密度矩阵有 N² 个实参数(N 为希尔伯特空间维度),直接对矩阵积分并不方便。常用做法是把 ρ 向量化:将 N×N 矩阵按列堆叠成 N² 维列向量 vec(ρ),则方程变为 d vec(ρ)/dt = 𝓛 vec(ρ),其中 𝓛 是 N²×N² 的矩阵。对单量子比特,N=2,𝓛 为 4×4 矩阵,可直接用 Runge–Kutta 或指数积分求解。

以振幅阻尼为例,取 γ=1.0(单位时间),初始态 |1⟩,时间步长 dt=0.01,用四阶 Runge–Kutta 迭代 1000 步到 t=10。每一步计算 𝓛(ρ) 并更新 ρ。数值上需注意:每步后检查 Tr(ρ) 是否接近 1,以及最小特征值是否非负;若出现负特征值,说明步长过大或方法不稳定,应减小 dt 或改用保正定的方法(如完全正定映射的 Kraus 表示逐步演化)。

import numpy as np
# 参数
gamma = 1.0
dt = 0.01
steps = 1000
# 算符
sm = np.array([[0,1],[0,0]])  # σ-
L = np.sqrt(gamma) * sm
LdL = L.conj().T @ L
# 初始态 |1><1|
rho = np.array([[0,0],[0,1]], dtype=complex)
def lindblad(rho):
    H = np.zeros((2,2), dtype=complex)
    comm = -1j*(H@rho - rho@H)
    diss = L@rho@L.conj().T - 0.5*(LdL@rho + rho@LdL)
    return comm + diss
for _ in range(steps):
    k1 = lindblad(rho)
    k2 = lindblad(rho + 0.5*dt*k1)
    k3 = lindblad(rho + 0.5*dt*k2)
    k4 = lindblad(rho + dt*k3)
    rho = rho + dt/6*(k1 + 2*k2 + 2*k3 + k4)
print("t=10 时 ρ11 =", rho[1,1].real)  # 应接近 e^{-10} ≈ 4.5e-5
print("t=10 时 ρ00 =", rho[0,0].real)  # 应接近 1

运行上述代码,t=10 时 ρ11 约为 4.5×10-5,ρ00 约为 1,与解析解 e-γt 一致。若把 γ 改为 0.5,则衰减变慢,t=10 时 ρ11≈e-5≈6.7×10-3。这说明数值结果与解析解吻合,验证了 Lindblad 方程对振幅阻尼信道的正确性。

数值求解时,建议同时监控 Tr(ρ)、最小特征值和纯度 Tr(ρ²)。振幅阻尼下纯度从 1 单调下降,最终趋于 1(因为系统趋于纯态 |0⟩),这与退极化信道不同,后者纯度趋于 1/2。

模拟验证:振幅阻尼信道的布居与相干

为了更直观地验证,可以扫描不同 γ 和初始态。若初始态为叠加态 (|0⟩+|1⟩)/√2,则 ρ11(t)=½e-γt,ρ10(t)=½e-γt/2。数值上取 γ=1.0,t=2 时 ρ11≈0.0677,ρ10 的模≈0.184。这些值可作为检查点。若数值结果偏离,应检查跳跃算符是否写错、反对易子符号是否正确、步长是否过大。

总结来说,Lindblad 主方程把开放系统演化拆成幺正项和耗散项,跳跃算符决定了耗散通道的类型和速率。数值上通过向量化或直接矩阵迭代即可求解,振幅阻尼信道是最简单的验证案例,其解析解为数值实现提供了明确的对照标准。