1. 课程导入与计算框架建立
量子计算中的一切算法,最终都要落到对量子态的数学描述与数值计算上。本课程的第一节不急于推导复杂公式,而是先把“我们到底要算什么、用什么表示、按什么流程算”这三件事讲清楚。只有把表示方式和计算框架建立起来,后续的幺正演化、测量、纠缠度计算才有稳定的落脚点。
一、计算目标:从抽象态到可运算的数据
量子态矢量与密度矩阵计算的核心目标,是把物理上的量子态转化为线性代数中可直接运算的对象,并保证在演化、测量、组合等操作下结果正确。具体来说包含三类任务:其一,表示——用列向量或矩阵写出给定量子态;其二,转换——在态矢量与密度矩阵之间、在纯态与混态描述之间正确切换;其三,运算——对表示对象施加幺正变换、求测量概率、计算约化密度矩阵等。
这里必须先明确两个基础概念。态矢量(又称态矢、ket)是希尔伯特空间中的单位向量,记作 |ψ⟩,用列向量表示。单量子比特的计算基为 |0⟩ = [1, 0]ᵀ 与 |1⟩ = [0, 1]ᵀ,任意纯态可写成 |ψ⟩ = α|0⟩ + β|1⟩,满足 |α|² + |β|² = 1。密度算符 ρ 则是态矢量对应算符 |ψ⟩⟨ψ| 的推广,它是一个满足三条性质的矩阵:厄米(ρ = ρ†)、半正定(特征值非负)、迹为 1(Tr ρ = 1)。
纯态与混态的区别是本节的关键分水岭。纯态可以用一个态矢量完整描述,其密度矩阵满足 ρ² = ρ,且 Tr(ρ²) = 1;混态无法用单个态矢量表示,只能写成若干纯态的经典概率混合 ρ = Σᵢ pᵢ|ψᵢ⟩⟨ψᵢ|,此时 Tr(ρ²) < 1。判断一个密度矩阵是纯态还是混态,最直接的办法就是算 Tr(ρ²):等于 1 为纯态,小于 1 为混态。这个判据在后续约化密度矩阵与纠缠分析中会反复用到。
二、整体计算流程与工具链
一次完整的态矢量/密度矩阵计算,通常遵循“构造 → 变换 → 提取”的链路。构造阶段确定基矢与系数,写出向量或矩阵;变换阶段用幺正矩阵左乘右乘实现演化,用测量算符求期望;提取阶段计算概率、约化密度、纯度等物理量。下图给出了这条计算链路与两类表示之间的转换关系,可作为本节的计算框架总览。
工具链上,数值计算层推荐 NumPy 与 SciPy:前者负责向量、矩阵、外积、张量积,后者提供特征分解与矩阵函数;量子框架层可用 Qiskit 或 Cirq,负责态制备、门操作与测量采样。两者分工明确——框架负责“物理语义”,线性代数库负责“数值落地”。
三、单量子比特表示与转换练习
下面以一个具体例子走通全流程。设单量子比特处于叠加态 |ψ⟩ = (√3/2)|0⟩ + (1/2)|1⟩。先验证归一化:|√3/2|² + |1/2|² = 3/4 + 1/4 = 1,合法。其列向量为 [√3/2, 1/2]ᵀ。
转换为密度矩阵,按外积 ρ = |ψ⟩⟨ψ| 计算:
import numpy as np
psi = np.array([[np.sqrt(3)/2],
[1/2]], dtype=complex)
rho = psi @ psi.conj().T
print(rho)
# [[0.75 0.4330127]
# [0.4330127 0.25 ]]
print("迹:", np.trace(rho).real) # 1.0
print("纯度 Tr(ρ²):", np.trace(rho @ rho).real) # 1.0 → 纯态
print("厄米:", np.allclose(rho, rho.conj().T)) # True
结果中非对角元 0.433 即相干项,它携带了 |0⟩ 与 |1⟩ 之间的相位关系,是纯态叠加的直接体现。迹为 1、纯度为 1、厄米性成立,三条判据全部通过,说明转换正确。
再做一个混态对照:设量子比特以 50% 概率处于 |0⟩、50% 概率处于 |1⟩,则 ρ = 0.5|0⟩⟨0| + 0.5|1⟩⟨1| = diag(0.5, 0.5)。此时非对角元为 0,Tr(ρ²) = 0.25 + 0.25 = 0.5 < 1,判定为混态。这个对比说明:同样的对角概率分布,纯态与混态的差别恰恰藏在非对角相干项里,这也是密度矩阵比态矢量信息更完整的原因。
最后补充一个易错点:从密度矩阵反推态矢量只对纯态成立,方法是取 ρ 的最大特征值对应的特征向量;对混态则不存在单一态矢量,只能保留矩阵描述。练习时建议同时打印矩阵、迹、纯度三个量,形成固定的检查习惯,为后续多比特与约化密度矩阵的计算打下可靠基础。