跳到正文
EN

4.3

传递矩阵方法

把每一段势打包成一个 2×2 矩阵,整条多层结构就是矩阵连乘——双势垒的锐利共振和超晶格的能带都从乘法里长出来。

建议先掌握

学完本节你应该能

  • 推导单个界面与匀速传播段的 2×2 矩阵,并解释矩阵连乘为什么等于逐段连接
  • 从总矩阵读出透射率与反射率,并用 det M = 1 说明概率流守恒
  • 用双势垒的实际数值展示共振隧穿:T 从百分之几飙到 1
  • 说明周期结构中能带如何从 |Tr M| ≤ 2 条件中出现

上一节结尾把难题摆在了桌上:势每多一段,就多一个区域、多两个待定系数、多两个连接方程。2.11 节的单个方垒用了 4 个方程,已经推得满头汗;共振隧穿二极管是「垒-阱-垒」三层结构,8 个方程;半导体超晶格一百层起步。硬解方程组这条路走到头了。

换个角度看问题。逐段连接的过程其实高度重复:每一段发生的事都一样——两列波传播一段距离,在界面上按连续性条件换算成下一段的两列波。重复的线性操作,数学里有现成的打包方式:矩阵。每段势一个 2×22\times2 矩阵,整条势就是把矩阵按顺序乘起来。一百层?一百次矩阵乘法,计算机眨眼的事,手算也不过是一页纸。

这就是传递矩阵方法(transfer matrix method)。

两块积木

分段常数势里,第 jj 段(势值 VjV_j、宽度 djd_j、左端点 xjx_j)的解永远是两列波的叠加:

ψj(x)=Ajeikj(xxj)+Bjeikj(xxj),kj=2m(EVj)(4.3.1)\psi_j(x)=A_j\,\ee^{\ii k_j(x-x_j)}+B_j\,\ee^{-\ii k_j(x-x_j)},\qquad k_j=\frac{\sqrt{2m(E-V_j)}}{\hbar}\tag{4.3.1}

AjA_j 是右行波、BjB_j 是左行波的振幅(E<VjE<V_jkjk_j 是纯虚数,两项自动变成增减指数——2.11 节势垒内的解,无需另立规矩)。**这一段的全部信息就是一对数 (Aj,Bj)(A_j,B_j)。**方法的核心问题只有一个:知道这一段的 (Aj,Bj)(A_j,B_j),怎么得到下一段的?

从 M 读出散射量

设波从左入射:A0=1A_0=1(入射)、B0=rampB_0=r_{\text{amp}}(反射待求)、最右段 BN=0B_N=0(右边没有波源——整个问题唯一的物理输入,和 2.11 节一样)。展开 MM 的第二行:

0=M21+M22ramp    ramp=M21M22(4.3.8)0=M_{21}+M_{22}\,r_{\text{amp}} \;\Longrightarrow\; r_{\text{amp}}=-\frac{M_{21}}{M_{22}}\tag{4.3.8}

代回第一行得透射振幅 t=AN=detM/M22t=A_N=\det M/M_{22}。两端势相同时可以逐块验证 detPj=1\det P_j=1detS=r\det S=r,连乘后所有台阶比值望远镜式相消,detM=1\det M=1,于是

T=1M222,R=M212M222,T+R=1(4.3.9)T=\frac{1}{|M_{22}|^2},\qquad R=\frac{|M_{21}|^2}{|M_{22}|^2},\qquad T+R=1\tag{4.3.9}

最后一步用到 MM 的一个普遍结构(时间反演对称给出 M222M212=detM=1|M_{22}|^2-|M_{21}|^2=\det M=1)。流守恒又一次不劳而获。

第一个战利品:双势垒共振

拿一个真实器件练手——共振隧穿二极管(RTD)的核心结构:GaAs 里夹两层 AlGaAs 势垒。参数取典型值:垒高 V0=0.3V_0=0.3 eV,两个垒各宽 2 nm,中间阱宽 6 nm,电子有效质量 m=0.067mem^*=0.067\,m_e(即 mc234.2m^*c^2\approx34.2 keV——晶体里的电子「变轻」了,这是能带结构送的)。

五段势、四个界面,MM 是 8 个矩阵的乘积。逐能量扫描算出 T(E)T(E)

EE(eV)0.0500.0680.1000.2000.275
TT0.0351.0000.0710.1671.000

E=0.068E=0.068 eV 处,透射率精确达到 1——尽管单独一个 2 nm 垒在这个能量下只有 T10.20T_1\approx0.20,两个垒「串联」按朴素直觉该是 T120.04T_1^2\approx0.04。共振把它放大了 24 倍,直到完全透明。稍偏离共振,TT 又跌回百分之几。

顺带说一句,上面表格用二十来行代码就能复现(完整的数值工具下两节展开):

import numpy as np

hbarc, mstar = 197.3, 0.067 * 511000.0     # eV·nm;GaAs 有效质量

def transmission(E, widths, heights):
    """widths/heights: 中间各段的宽度(nm)与势能(eV),两端是 V=0 的电极。"""
    Vs = [0.0] + list(heights) + [0.0]
    ks = [np.sqrt(2 * mstar * (E - V + 0j)) / hbarc for V in Vs]
    ds = [0.0] + list(widths)               # 第 0 段无需传播
    M = np.eye(2, dtype=complex)
    for j in range(len(ds)):
        phi = ks[j] * ds[j]
        P = np.diag([np.exp(1j * phi), np.exp(-1j * phi)])
        r = ks[j] / ks[j + 1]
        S = 0.5 * np.array([[1 + r, 1 - r], [1 - r, 1 + r]])
        M = S @ P @ M                       # 先经过的矩阵先乘(在右侧)
    t = (M[0, 0] * M[1, 1] - M[0, 1] * M[1, 0]) / M[1, 1]
    return abs(t) ** 2

# 双势垒:2 nm 垒 / 6 nm 阱 / 2 nm 垒
print(transmission(0.0682, [2, 6, 2], [0.3, 0.0, 0.3]))   # → 1.000

复数开方让 E<VE<V 的段自动得到虚波数,垒和阱不用分开处理——2.11 节里「换 κ\kappa 重写一遍」的手工活,被一行 0j 吃掉了。

从两层到无穷层:能带的诞生

传递矩阵最漂亮的应用是周期结构。把「垒+阱」作为一个周期、其矩阵记为 M1M_1,重复 NN 次的超晶格总矩阵就是 M1NM_1^N——不用重新连接任何方程。

NN\to\infty 时波还能不能传过去,取决于 M1NM_1^N 是否有界。线性代数给出干脆的判据:detM1=1\det M_1=1M1M_1 的两个本征值互为倒数 λ,1/λ\lambda,1/\lambda,且 λ+1/λ=TrM1\lambda+1/\lambda=\operatorname{Tr}M_1。于是——

  • TrM12|\operatorname{Tr}M_1|\le2:本征值是模 1 的相位因子 e±iqL\ee^{\pm\ii qL},波无衰减地传播——这些能量构成允带
  • TrM1>2|\operatorname{Tr}M_1|>2:本征值一个大于 1 一个小于 1,波指数衰减——禁带

一个 2×22\times2 矩阵的迹随能量起伏,扫过 ±2\pm2 之间与之外,能量轴就被切成一条条允带与禁带——这正是 Kronig–Penney 模型,固体能带论的最简版本。孤立阱的分立能级在多层耦合下展宽成带;半导体、绝缘体、导体的区别,追到底就是费米能落在允带还是禁带里。RTD 的单个共振峰,可以看成「只有一个周期的允带」——两个视角在这里合流。

接下来

传递矩阵把「分段常数势」这类问题一网打尽。但它的看家本领恰恰暴露了边界:真实的势大多是光滑的——分子里的相互作用势、量子点里的约束势、外加电场下倾斜的势,没有一个长得像台阶。硬要用台阶逼近,段数一多,手工组装矩阵也失去了优雅。

是时候彻底交给计算机了。下一节把 xx 轴本身切成密密的格点,微分方程摇身变成三对角矩阵的本征值问题——第 3 章「算符即矩阵」的说法将第一次变得完全字面:哈密顿量就是一个你能打印出来看的矩阵,能级就是它的本征值,十行代码之内。

全站第 33 / 106 节 · 用 翻页