3. 方势垒隧穿解析解推导与透射系数公式
上一节我们建立了隧穿问题的物理图像,本节要把“感觉上能穿过去”变成“可以精确计算的透射概率”。核心任务是:对一维矩形势垒写出三个区域(入射区、势垒区、出射区)的定态薛定谔方程解,利用波函数及其一阶导数在边界处的连续性建立匹配条件,最终解出透射系数 T 的解析表达式,并讨论它在共振与渐近极限下的行为。约定如下:粒子沿 +x 方向入射,势垒位于 0 ≤ x ≤ a,高度为 V₀,能量为 E;入射区与出射区势能为 0,波函数取平面波形式。
一、分区波函数与匹配条件
定态薛定谔方程为 −(ħ²/2m)ψ″ + V(x)ψ = Eψ。在 x < 0 与 x > a 区域 V = 0,解为左右行波的叠加;在 0 < x < a 区域 V = V₀,需按 E 与 V₀ 的大小关系分两种情形处理。记 k = √(2mE)/ħ 为自由区波数,并定义势垒区波数:当 E < V₀ 时 κ = √(2m(V₀−E))/ħ,波函数为实指数形式;当 E > V₀ 时 q = √(2m(E−V₀))/ħ,波函数为振荡形式。两种情形在数学上可通过 κ = iq 互相解析延拓,因此先推导 E < V₀ 的隧穿情形,再延拓到 E > V₀。
取入射区波函数为 ψ₁(x) = e^{ikx} + r e^{−ikx}(入射振幅归一化为 1,r 为反射振幅),势垒区 ψ₂(x) = A e^{κx} + B e^{−κx},出射区 ψ₃(x) = t e^{ikx}(只保留右行透射波,t 为透射振幅)。在 x = 0 与 x = a 两处要求 ψ 与 ψ′ 连续,共得到四个线性方程:
ψ₁(0)=ψ₂(0): 1 + r = A + B
ψ₁′(0)=ψ₂′(0): ik(1 − r) = κ(A − B)
ψ₂(a)=ψ₃(a): A e^{κa} + B e^{−κa} = t e^{ika}
ψ₂′(a)=ψ₃′(a): κ(A e^{κa} − B e^{−κa}) = ik t e^{ika}
这四个方程构成关于 r、t、A、B 的线性方程组。实际求解时不必显式求出全部未知量:把前两式消去 r 得到 A、B 与入射波的关系,把后两式消去 t 得到 A、B 之间的另一关系,联立即可解出 t。透射系数定义为透射概率流与入射概率流之比,对相同有效质量与相同波数区域,简化为 T = |t|²。
二、透射系数的解析表达式
经过代数消元(也可用转移矩阵方法更紧凑地完成),E < V₀ 时透射系数为:
T = 1 / [ 1 + (V₀² sinh²(κa)) / (4E(V₀ − E)) ]
把 κ = iq 代入 sinh(iqa) = i sin(qa),利用 sinh²(iqa) = −sin²(qa),即得 E > V₀ 的表达式:
T = 1 / [ 1 + (V₀² sin²(qa)) / (4E(E − V₀)) ]
两式形式统一,差别只在势垒区是双曲函数还是三角函数。这一统一性正是解析延拓的价值:编程实现时可以只写一个函数,用复数波数 k₂ = √(2m(E−V₀))/ħ 统一处理,当 E < V₀ 时 k₂ 为纯虚数,sin 自动变为 i·sinh。下面这张图把“分区波函数—边界匹配—透射系数”的推导链条与两种能量情形的分支关系画在一起,便于对照公式来源。
三、共振与渐近行为
先看 E > V₀ 的越顶情形。当 qa = nπ(n 为正整数)时 sin(qa) = 0,分母为 1,T = 1,即粒子以 100% 概率穿过势垒,这就是方势垒的共振透射。其物理含义是势垒区内的波形成驻波,前后两个界面的反射波发生相消干涉,净反射为零。共振条件 qa = nπ 可改写为 a = nλ/2,λ = 2π/q 为势垒区内的德布罗意波长,即势垒宽度恰为半波长的整数倍。这一现象在半导体超晶格、双势垒共振隧穿二极管中有直接对应,也是后续数值模拟中检验程序正确性的重要判据:扫描能量时若在理论共振点看不到 T 接近 1,说明边界处理或波数定义有误。
再看 E < V₀ 的隧穿情形。当 κa ≫ 1 时,sinh(κa) ≈ e^{κa}/2,代入公式得 T ≈ 16E(V₀−E)/V₀² · e^{−2κa}。指数因子 e^{−2κa} 是隧穿概率的主导项,透射系数随势垒宽度和 √(V₀−E) 指数下降。以电子为例,取 m = 0.067m₀(砷化镓导带有效质量)、V₀ − E = 0.3 eV,则 κ ≈ 2.8×10⁹ m⁻¹,κa = 1 对应 a ≈ 0.36 nm;当 a 增至 2 nm 时 κa ≈ 5.6,e^{−2κa} ≈ 1.4×10⁻⁵,透射系数已降到十万分之一量级。这解释了为什么隧穿器件(如扫描隧道显微镜的针尖—样品间隙)要求间隙在纳米量级,也说明数值模拟中透射系数常需用对数坐标显示。
另一个值得注意的极限是 E → V₀。此时 κ → 0,sinh(κa) ≈ κa,公式给出 T ≈ 1/[1 + mV₀a²/(2ħ²)],透射系数并不等于 1,而是由无量纲参数 mV₀a²/ħ² 决定。这说明“能量刚好等于势垒高度”并不是透明点,反而是反射相当显著的区域,这是初学者容易误判的地方。数值计算时 E 恰好等于 V₀ 会使 κ 为零导致除零,实现中应把该点单独处理或给 E 加极小偏移。
四、从公式到可复现的计算
把解析式写成代码时,建议统一用复数波数处理,避免分支判断。以下 Python 片段直接对应上面的推导,可用于生成 T–E 曲线并与数值解交叉验证:
import numpy as np
def transmission(E, V0, a, m=0.067*9.109e-31, hbar=1.0546e-34):
k2 = np.sqrt(2*m*(E - V0) + 0j) / hbar # E<V0 时为纯虚数
k1 = np.sqrt(2*m*E + 0j) / hbar
# 由匹配方程消元得到的透射振幅
denom = (k1**2 + k2**2) * np.sinh(k2*a) + 2j*k1*k2*np.cosh(k2*a)
t = 2j*k1*k2*np.exp(-1j*k1*a) / denom
return abs(t)**2
# 示例参数(教学假设值):V0=0.3 eV, a=2 nm
V0, a = 0.3*1.602e-19, 2e-9
for E_eV in [0.1, 0.2, 0.29, 0.3, 0.31, 0.5]:
print(E_eV, transmission(E_eV*1.602e-19, V0, a))
运行后应观察到:E 从 0.1 eV 升到 0.29 eV 时 T 单调增大但仍远小于 1;E 略高于 0.3 eV 后 T 迅速上升并出现振荡;在满足 qa = nπ 的能量点 T 接近 1。若把 a 改为 5 nm,同一能量区间的 T 会整体下移若干数量级,这正是 e^{−2κa} 的直接体现。验证时建议同时检查两个不变量:一是 T + R = 1(无吸收时概率守恒),二是 E > V₀ 时共振点位置与 qa = nπ 的解析预测一致。这两条检查能有效暴露波数定义、单位换算和边界符号约定中的错误。
本节得到的透射系数解析式是后续数值模拟的“标尺”:无论是转移矩阵法、有限差分法还是龙格—库塔法积分薛定谔方程,其计算结果都应回到这两个公式上做定量比对。掌握了匹配条件的建立方式和共振、渐近两类行为,才能在数值结果出现偏差时判断是物理理解问题还是离散化误差问题。