很多朋友在学量子力学的时候第一个卡壳点往往不是实验事实也不是薛定谔方程本身而是动量和能量这两个“老朋友”突然变得不认识了。高中的时候动量就是mv能量就是½mv² V到了量子力学里变成了一堆算符、本征值、矩阵元初看确实不像话。这个系列写到第六期我越来越确信一件事量子力学和线性代数不是两门课而是一套语言的两副眼镜。前几期我们把态矢量、本征值、测量公设这些基本构件过了一遍这一期专门把动量与能量拿出来讲因为这两个物理量在量子力学里出现的频率最高也最容易在各种细节上翻车。你把这章啃下来之后再回头看薛定谔方程、不确定性原理、定态微扰都会顺畅很多。先交代一下这一期要解决的问题。第一经典概念怎么“翻译”成量子算符尤其是动量算符为什么长成-iħ d/dx那个样子。第二能量为什么天然被量子化哈密顿量在矩阵里到底是什么形象。第三动量和能量之间的关系怎么用线性代数的语言描述包括对易关系、定态、时间演化、守恒量。最后我把自己踩过的一些坑整理成一张清单给大家省点时间。1. 线性代数是量子力学的“母语”动量和能量是它的主句1.1 为什么这期的关键词是“本征值”从线性代数的角度看量子力学里所有可观测量的核心问题都一样给定一个算符寻找它的本征值和本征态。动量和能量只是两个最典型、最常用的算符例子。一个物理量在经典力学里是一个数比如桌面上小球的速度是每秒两米动能是某个焦耳数。但在量子力学里一个物理量变成一个线性算符它在态空间里作用在态矢上。算符的本征方程写出来是F̂ |f_n⟩ f_n |f_n⟩这里的f_n可以是动量值也可以是能量值。本征态|f_n⟩对应测量该物理量得到确定值f_n的那个状态。整个逻辑链是算符决定可测到的取值集合本征态是测量得到确定值的那些态任意态可以按本征态展开展开系数的模方给出概率。所以动量问题和能量问题本质上都是线性代数里的对角化问题。你不需要把每个问题都当成物理题来解只需要问这个算符的谱是什么基是什么测量后怎么投影想清楚这几步物理自然浮出来。1.2 为什么动量和能量必须放在一起看动量和能量单独都能写成算符但单独看容易失去整体感。把它们放在一起是因为它们之间有一条非常紧密的纽带哈密顿量。自由粒子的哈密顿量是Ĥ p̂² / (2m)所以能量和动量的关系在量子力学里不是两套独立公式而是同一个算符函数的两个侧面。你求出了动量本征态就很容易构造出自由粒子的能量本征态你求出了哈密顿量的本征值就得到了系统可能的能量。还有一个更微妙的联系动量是空间平移的生成元能量是时间平移的生成元。这句话初看抽象但等我们讲到时间演化和守恒量的时候你会发现它比任何记忆口诀都可靠。经典力学里对称性对应守恒量量子力学里对称性对应算符对易关系动量和能量就是最经典的一对例子。2. 动量把经典函数“翻译”成算符2.1 动量算符为什么是-iħ d/dx我记得自己第一次看到动量算符表达式的时候心里其实很奇怪好好的一个数怎么就变成了求导教材通常直接把它当定义抛出来但背后的逻辑是能一步步捋清楚的。考虑一个沿 x 方向传播的平面波数学形式是ψ_p(x) e^(ipx/ħ)其中 p 就是这个平面波的动量。把算符-iħ d/dx作用在这个波函数上你会得到-iħ d/dx e^(ipx/ħ) -iħ · (ip/ħ) e^(ipx/ħ) p e^(ipx/ħ)注意到没有结果还是同一个平面波函数只是前面多了一个因子 p。这正是本征方程的形式。所以我们定义动量算符为p̂ -iħ d/dx它的本征方程就是p̂ ψ_p(x) p ψ_p(x)平面波e^(ipx/ħ)是动量算符的本征函数本征值 p 是实数对应测量到的动量值。这个推导并不是严格的数学证明但它揭示了定义的核心动机我们想让“具有确定动量的粒子”这个物理图像在量子力学里表现为算符的本征态。既然平面波在最低阶上就是这么对应的那动量算符自然就要用空间导数来构造。还有一个更深的原因动量是空间平移的生成元。你想象把整个波函数往右挪一个微小距离 a变换后的波函数可以写成ψ(x-a) ≈ ψ(x) - a ψ(x) (1 - (ia/ħ) p̂) ψ(x)这里的系数里面出现的正是p̂。所以“平移一个微小距离”这个操作被一个包含动量算符的式子生成。2.2 动量本征态的“归一化陷阱”平面波虽然数学上很简单但它有一个特别容易让人误解的性质它在无穷空间里是不可归一化的。试算积分∫ |e^(ipx/ħ)|² dx ∫ 1 dx ∞所以严格来说平面波并不属于物理的态空间它只是一个理想化工具。这个现象在傅里叶分析里大家其实见过正弦波和余弦波在整个实轴上的平方积分也是发散的但我们照样能拿它们做基底只是需要引入“广义归一化”即 delta 函数归一化⟨p|p⟩ δ(p - p)实际处理问题的时候通常会先假设体系处于一个长度为 L 的箱子里用周期性边界条件把平面波归一化成ψ_p(x) (1/√L) e^(ipx/ħ)这时动量就变成离散的了本征值是p 2πħn/L。等计算完物理量之后再让 L 趋近无穷回到连续谱。这一步很多人容易忽略结果在算动量平均值的时候得到无穷大或发散其实就是归一化没处理好。我自己做有限尺寸模型的时候都会在代码注释里写清楚箱子的长度因为一旦忘记 L 的取值后续所有动量矩阵元都会带着一个模糊的1/L因子查错非常痛苦。2.3 对易关系一条决定“不可兼得”的代数式子位置算符和动量算符之间有一个非常著名的对易关系[x̂, p̂] x̂p̂ - p̂x̂ iħ我来实际展开一下看看问题出在哪。把p̂作用到任意波函数上x̂p̂ ψ -iħ x ψ(x)但把x̂先作用再求导结果是p̂x̂ ψ -iħ d/dx [x ψ] -iħ [ψ x ψ]两个式子的差是x̂p̂ψ - p̂x̂ψ -iħ xψ - (-iħ[ψ xψ]) iħ ψ所以对易关系不等于零。这个结论在线性代数里有非常直接的类比两个矩阵不交换那么它们不能同时被同一个基底对角化。位置和动量不交换就意味着不存在任何一个态能同时具有确定的位置和确定的动量。很多人以为不确定性原理只是实验测量误差的问题其实它是更本质的代数结构。两个算符不对易就像你不可能让一个向量同时成为两个不同矩阵的同一个本征矢这在数学上已经封死了“同时具有精确值”的可能性。在数值计算里我也经常利用这个性质来检查程序如果我把位置矩阵和动量矩阵同时完成了精确对角化那一定有什么地方写错了因为理论上它们不存在共同本征基。3. 能量哈密顿量是能级的“总闸”3.1 从经典哈密顿函数到量子哈密顿算符能量问题的起点是经典哈密顿量。一维粒子的总能量是动能加势能H p² / (2m) V(x)量子化规则很朴素把位置和动量各自替换成对应算符Ĥ p̂² / (2m) V(x̂) -(ħ² / 2m) d²/dx² V(x)这里动能部分由二阶导数组成势能部分变成对波函数逐点相乘的操作。看起来只是一个代换但里面藏着一个微妙的顺序问题经典物理里xp px但换成算符之后x̂p̂ ≠ p̂x̂。所以当哈密顿量里的某一项同时含 x 和 p 的时候代换顺序必须小心处理。好在大多数基础问题里哈密顿量写成“动能 势能”的形式动能里只有 p势能里只有 x不出现交叉项顺序问题就被绕开了。遇到更一般的体系就需要额外的规则来保证构造出来的算符是厄米的因为量子力学里可观测量的算符必须满足厄米性本征值才保证是实数。3.2 无限深方势阱最干净的“对角化”模型无限深方势阱是能量问题的第一个标准练习。势能在区间(0, L)内为零边界处无穷大所以波函数必须在两端为零ψ(0) ψ(L) 0。束縛态满足定态薛定方程也就是能量本征值方程-(ħ² / 2m) ψ(x) E ψ(x)解出来是一组正弦函数ψ_n(x) √(2/L) · sin(nπx / L)对应的能量是E_n n²π²ħ² / (2mL²)n 只能取正整数 1、2、3……所以能量是一个离散的序列。这就是所谓量子化的最简单来源不是粒子本身有什么玄妙而是边界条件和波动方程共同决定了“哪些解是允许的”就像两端固定的弦只能发出离散频率的驻波。取一个具体数字感受一下电子在一个宽度 1 纳米的小盒子里基态能量大约是 0.38 电子伏特。如果宽度增大一倍基态能量会变成原来的四分之一。尺度越窄量子效应越明显尺度一大能级靠得越来越近人眼就分不出离散了宏观世界看起来就“连续”了。这里有一个非常典型的线性代数观感sin(nπx/L)这组函数构成了区间(0, L)上的正交基。任意初始波函数都可以展开成它们的叠加Ψ(x,0) Σ c_n ψ_n(x)系数由投影公式给出c_n ⟨ψ_n | Ψ(0)⟩ ∫ ψ_n(x)Ψ(x,0) dx这就是傅里叶级数。所以你在量子力学里看到的“态叠加”从数学上看和把一个向量按正交基展开没有任何区别。3.3 简谐振子矩阵力学的教科书案例简谐振子的势能是V(x) ½ mω²x²哈密顿量是Ĥ p̂²/(2m) ½ mω²x̂²这个模型特别有意思因为它完全可以用代数方法解不需要去解微分方程。方法是用两个“阶梯算符”â √(mω/2ħ) x̂ i √(1/2mħω) p̂â†是它的厄米共轭。计算可以发现[â, â†] 1并且哈密顿量可以写为Ĥ ħω (â†â ½)定义粒子数算符N̂ â†â它的本征值是非负整数 n对应能量E_n (n ½) ħω阶梯算符的作用是能量量子之间跳变↠|n⟩ √(n1) |n1⟩â |n⟩ √n |n-1⟩如果把â和â†在基{|0⟩, |1⟩, |2⟩, ...}里写成矩阵你会发现这是一个无限维矩阵非零元素全在次对角线上。截断到有限维之后可以用数值库直接对角化得到的能级会和解析公式高度一致。这种“代数方法求出矩阵表示、再用矩阵工具对角化”的流程是量子力学的典型日常操作。注意基态能量不是零而是½ħω。这就是零点能。它不是因为某个具体的束缚态经典上静止不了而是因为对易关系[x̂,p̂]iħ不允许粒子同时固定位置和动量为零。矩阵语言说白了就是没有任何态能把这两个不对易算符的平方期望同时压到零。4. 动量与能量如何协同定态、演化与守恒4.1 能量本征态为什么又叫“定态”当我们找到了哈密顿量的一组本征态{|n⟩}并写出本征方程Ĥ |n⟩ E_n |n⟩有趣的事情就发生了。把薛定谔方程写成含时形式iħ d/dt |ψ(t)⟩ Ĥ |ψ(t)⟩假设初态恰好就是某个能量本征态|k⟩那么含时演化的结果特别简单|ψ(t)⟩ e^(-iE_k t/ħ) |k⟩波函数会一直保持在本征态上只是整体乘了一个纯相位因子。相位因子不会改变任何测量概率因为所有概率都来自某个内积的模平方|e^(-iE_k t/ħ)|² 1。所以能量本征态也叫定态。不是说粒子不动而是所有可观测量的测量概率分布随时间不变。这个结论从线性代数角度看几乎是显然的一个向量如果始终沿某个矩阵本征向量的方向那矩阵作用只是给它乘一个复数标量方向不变。4.2 用矩阵指数描述任意态的时间演化对于任意初始态先把它按能量本征态展开|ψ(0)⟩ Σ c_n |n⟩因为每个能量本征态随时间各自演化所以任意时刻为|ψ(t)⟩ Σ c_n e^(-iE_n t/ħ) |n⟩这个式子也可以用矩阵指数统一写成|ψ(t)⟩ e^(-iĤt/ħ) |ψ(0)⟩矩阵指数看起来很抽象但在有限维问题里非常容易计算先把哈密顿量对角化得到本征值和本征向量然后在对角基下把每个元素替换成对应的相位因子最后再变回原基。很多科学计算库里的指数矩阵函数expm干的就是这件事。举个例子。一个二能级系统哈密顿量取为对角矩阵Ĥ diag(E₁, E₂)初始态是等概率叠加|ψ(0)⟩ (|1⟩ |2⟩)/√2那么随时间演化两个分量的相位各自旋转系统会呈现出拉比振荡这类干涉现象。如果你测量的是观测量在本征基下不对角的算符比如位置算符就会观察到它以频率(E₂ - E₁)/ħ振动。这一整套图像其实就是傅里叶变换的线性代数版。我实际算这类问题最大的体会是只要把初始态的系数c_n算准后续时间演化就是一遍遍乘相位不用再做任何物理上的“猜”。很多看起来很复杂的量子现象落到线性代数里都是同一个模板。4.3 守恒量对易关系写出的判据经典力学里如果某个物理量随时间不变就说它是守恒量。量子力学里也有非常漂亮的判别方法。一个不含时间的算符Â的期望值随时间变化公式是d/dt ⟨Â⟩ (i/ħ) ⟨[Ĥ, Â]⟩这里的[Ĥ, Â] Ĥ - ÂĤ是算符对易子。很明显如果[Ĥ, Â] 0那么期望值恒为常数Â就是守恒量。拿自由粒子举例哈密顿量就是p̂²/(2m)而[p̂², p̂] 0所以动量守恒。物理上自由粒子确实动量不随时间改变这和经典力学完全一致。如果有外势场哈密顿量变成p̂²/(2m) V(x̂)计算对易子可以得到[Ĥ, p̂] iħ V(x̂)它不等于零所以动量不再守恒。比如粒子进入重力场之后动量随时间变化这也很符合直觉。能量本身永远是守恒的因为[Ĥ, Ĥ] 0这个等式看起来有点平凡但它告诉我一个很实用的准则凡是对角化问题本质上都是在找一组能让算符变成对角矩阵的正交基。能量本征态就是让哈密顿量对角化的基底动量守恒就是动量和哈密顿量共享同一组本征态。5. 三个容易踩的坑从算符顺序到基底混用5.1 坑一把算符当成普通函数来“乘”刚学动量和能量的时候很多人会直接在纸上写p̂x̂ψ x̂p̂ψ这是错的。算符是有顺序的操作不是两个数的乘法。p̂x̂ψ的意思是先让 x̂ 作用在 ψ 上得到 xψ然后再求导而x̂p̂ψ是先求导再乘 x。差一前一后结果完全不同这个差值正是对易关系里的iħ。我之前见过一个同学求氢原子某分量的动量期望算到最后发现符号总不对。检查过程才发现他在一处算p̂ (x ψ)时直接把括号展开了却忘了对x本身也要求导。这种错误的本质就是没有意识到算符作用在乘积上要遵循莱布尼茨法则。建议每次处理这类问题都先把算符作用顺序用括号写清楚再动手展开。5.2 坑二忘记归一化和正交归一条件能量本征函数和动量本征函数都带归一化常数比如箱归一化里的1/√L无限深势阱里的√(2/L)。很多人做投影计算时想当然地认为正弦函数本身就算归一化好了结果系数c_n整体差一个因子概率的和不是 1。还有一个相关问题是忘记正交性。展开式里的系数是c_n ⟨ψ_n|ψ⟩这个式子的有效性依赖于⟨ψ_n|ψ_m⟩ δ_nm。如果基底不正交投影公式就不成立。好在量子力学里常见的能量本征函数都满足正交归一但我见过有人自己构造了一组“看起来像”的态强行当作正交基来用最后算出来的概率全是负的或者大于 100%。处理这类问题我有一个笨办法每次算完一组展开系数先把Σ |c_n|²算一遍确认它等于 1 再继续往下走。这个检查几乎不需要额外成本但能拦住大量低级错误。5.3 坑三把动量本征态和能量本征态当成一回事自由粒子的能量本征态确实同时是动量本征态因为Ĥ p̂²/(2m)和p̂对易。但一旦加上势场情况就变了。比如无限深势阱里能量本征态是正弦函数不再是平面波。把正弦函数做傅里叶展开它会包含各种动量的分量。所以一个处于能量本征态的粒子能量是确定的但动量不一定确定。对于ψ_n(x) √(2/L) sin(nπx/L)因为正弦函数是奇函数动量的期望值是零⟨p̂⟩ 0而动量的平方期望满足⟨p̂²⟩ 2mE_n这一点让很多人困惑既然粒子被关在阱里左右来回弹动量平均值为零挺好理解但它还有确定的能量那就说明p̂²有确定值而p̂本身没有确定值。仔细看这个对比你就能体会到“算符不对易”带来的物理后果。我把这类问题做成了一张速查表方便自己快速对比物理量自由粒子束缚态如无限深势阱能量本征态平面波也是动量本征态驻波不是动量本征态动量是否确定确定等于平面波波矢不确定⟨p̂⟩0⟨p̂²⟩2mE动量本征态平面波能量连续平面波不是束缚态物理上需箱归一每次做题之前先想清楚我现在讨论的是哪个基这个问题到底是求能量的本征值还是求动量的期望值搞清楚基底很多争议就自动消失了。6. 说点个人经验被矩阵重新打开的量子力学动手算过几个矩阵力学例子之后我才慢慢觉察到一个很有意思的变化。以前学量子力学总觉得自己是在跟微积分方程搏斗解波动方程、算积分、凑边界条件物理图像经常被一堆数学细节淹没。后来改成用线性代数的语言思考同一个问题立刻变得清爽许多。比如看到哈密顿量第一反应不是“去解微分方程”而是问这个算符在这组基下的矩阵长什么样能不能对角化本征值谱是离散还是连续基函数选哪个最顺手这些问题在量子力学里是物理问题在矩阵计算里却是标准流程。有一段时间我习惯把所有模型都改写成有限维矩阵然后在数值环境里直接算谱和本征向量再把结果跟解析近似对比。这个做法对直觉训练特别有帮助。你可以亲眼看到随着截断维数增加低能级如何稳定下来、高能级的收敛如何变慢也能直观理解“量子化”到底意味着什么。如果这篇文章只能留下一个信息那就是动量和能量不是一个需要背下来的公式集合而是算符本征值问题。你把线性代数里的本征值分解、正交基展开、矩阵指数这些工具真正用熟之后量子力学就不再是一座迷宫而是一张可以由你自己推出来的逻辑图。后面不管是算微扰、做变分、看散射走的都是同一条路。