1926年 · 薛丁格方程:量子目標案#
卷宗編號:Case-1926-Psi|偵探:Erwin Schrödinger|對手:Heisenberg 矩陣派|證人:de Broglie、Born
案發現場#
1925年的物理學界像同時發生兩起命案的警局。一邊,海森堡拋出矩陣力學,全是跳躍的量子數,沒有軌道圖像,難用到連愛因斯坦都皺眉。另一邊,德布羅意宣稱電子也是波, Davisson 尚未實驗證實,波長公式 \(\lambda = h/p\) 像匿名恐嚇信。
薛丁格在聖誕假期躲進阿羅薩山屋,帶著情人兼手稿,要為物質波找到「波動方程」。案發現場的三個死結是:
- 牛頓的 \(F = ma\) 在原子尺度失效,氫光譜分立、電子不墜入原子核,無人能解釋。
- 矩陣力學正確卻醜陋,物理學家渴望連續、可視、可微的方程。
- 若電子真是波,它的波函數 \(\psi\) 該服從什麼演化律?測到的又是 \(\psi\) 的哪一部分?
1926年一月到六月,薛丁格連發四篇《量子化即本徵值問題》,案情一次攤牌。
偵查過程#
線索一:從 de Broglie 到波動方程#
薛丁格的推理起點是光學—力學類比:幾何光學是波動光學的短波極限,正如古典力學該是波動力學的短波極限。他把 Hamilton-Jacobi 方程「波化」,猜出含時方程。設波函數為 \(\psi(x,t)\) ,哈密頓算符為 \(\hat H\) ,則:
其中 \(\hbar\) 為約化普朗克常數, \(i\) 為虛數單位, \(\psi_t\) 表時間偏導。對單粒子, \(\hat H = -\hbar^2 \Delta / 2m + V\) ,展開即:
上式一階管時間、二階管空間,線性卻是複數的——量子世界從此住在 Hilbert 空間裡。
線索二:定態即本徵值#
若勢能 \(V\) 不含時,可分離變數 \(\psi = \phi e^{-iEt/\hbar}\) ,得到定態方程:
能量 \(E\) 不再連續,而是邊界條件篩出的本徵值。氫原子解出 \(E_n = -13.6 / n^2\) 電子伏特, \(n = 1,2,\dots\) ,巴爾末系、萊曼系一次歸隊。量子化不再是 postulate,而是鼓膜(邊界)只容許特定駐波的必然。
| 量子數 \(n\) | 能量 \(E_n\) | 對應譜線系 |
|---|---|---|
| \(1\) | \(-13.6\) 電子伏特 | 萊曼系終點 |
| \(2\) | \(-3.4\) 電子伏特 | 巴爾末系終點 |
| \(3\) | \(-1.51\) 電子伏特 | 帕申系終點 |
| \(n \to \infty\) | \(0\) | 游離極限 |
一張表收編百年光譜學,這是本案最漂亮的認罪協商。
線索三:波恩的機率翻案#
薛丁格本想把 \(|\psi|^2\) 詮釋為電荷密度,波恩1926年卻翻案: \(\psi\) 本身不可觀測,可觀測的是機率。粒子在 \(x\) 處出現的機率密度為:
歸一化要求 \(\int |\psi|^2 = 1\) 。決定論至此死亡:方程決定 \(\psi\) 如何演化,但只給機率,不給單次命運。愛因斯坦「上帝不擲骰子」的抱怨,正是對這條翻案的抗議。
線索四:維度災難現形#
真正的恐怖在多體。 \(N\) 個電子各有三維座標,波函數住在 \(3N\) 維空間:
其中 \(r_i\) 為第 \(i\) 個電子座標。 \(N = 10\) 即 \(30\) 維,每維取 \(10\) 格即 \(10^{30}\) 個數——宇宙原子總數也捉襟見肘。這就是「維度災難」。薛丁格給了模擬的目標函數,卻也同時宣判暴力求解死刑。
結案報告#
1926年量子目標案告破:原子世界服從 \(i\hbar \psi_t = \hat H \psi\) ,定態能量是本徵值,測量結果是機率。薛丁格與海森堡事後被證明等價(狄拉克、馮·諾伊曼背書),波動力學以可計算性勝出。
遺產清單:
- 目標確立:後世一切量子化學(Hartree、Fock、CI、DFT、QMC)都是在問:如何便宜地逼近本案的 \(\psi\) 與 \(E\) 。
- 方法遺產:變分原理(基態能量是期望值下界)成為所有近似法的法官。
- 哲學遺產:機率詮釋終結拉普拉斯妖,模擬從預言軌跡轉向採樣分佈。
- 未竟線索: \(3N\) 維災難移交 Hartree 自洽場——既然算不動真 \(\psi\) ,那就先假裝電子彼此獨立。
沒有1926年,就沒有量子模擬這個行當。
證據與工具#
- 含時方程: \(i\hbar \psi_t = \hat H \psi\) ,量子模擬的起點與終點。
- 定態方程: \(\hat H \phi = E \phi\) ,本徵值即光譜。
- 機率詮釋: \(p = |\psi|^2\) ,歸一化積分為 \(1\) 。
- 維度警告: \(N\) 電子波函數維度為 \(3N\) ,暴力網格指數爆炸。
- 可重演實驗:一維無限深阱寬 \(L\) ,解析解 \(E_n\) 正比於 \(n^2 / L^2\) ,用有限差分對角化重現前三能階。
- 延伸閱讀:Schrödinger 1926 四連發;後續案件直通 Hartree 1927,因為下一步正是向維度災難投降並談判。
補充:程式實作#
理論呼應#
本文斷言束縛態能量來自邊界條件篩出的本徵值,而非額外假設。
程式把寬度為 \(L\) 的一維無限深阱切成等距內點,以三點差分逼近二階導數。
離散後的哈密頓矩陣為三對角矩陣,對角化即得數值本徵值 \(E_n\) 。
原子單位下解析解為 \(n^2 \pi^2 / 2\) ,正好呼應正文表格中分立能階的論證。
真兇只有一個,駐波邊界在兩端牆上親筆簽名,數值與解析解聯手指認。
如何執行#
在本文所屬目錄下執行以下指令即可重現全部數字。
python3 _code/1926-schrodinger_box.py
程式只依賴 numpy ,已固定亂數種子,任何機器重跑都應一致。
內點數預設為 N = 200 ,步長由阱寬自動推導而來。
實測結果抄錄#
以下數字為本次實際執行所得,未經修飾,直接抄錄關鍵行。
N=200 dx=0.004975
n=1: numeric=4.934702 theory=4.934802 rel_err=2.035742e-05
n=2: numeric=19.737601 theory=19.739209 rel_err=8.142771e-05
n=3: numeric=44.405083 theory=44.413220 rel_err=1.832049e-04
驗證行顯示前三能階相對誤差皆小於百分之二,程式最後印出 PASS 。
由此可見有限差分確實重現了解析能譜的平方律結構。
動手實驗#
讀者可把 N 改為 50 或 400 ,觀察相對誤差如何隨網格加密而縮小。
完整程式如下:
# -*- coding: utf-8 -*-
"""1926 一維無限深阱有限差分(對應 wiki:計算模擬學 / Schrödinger 方程數值解)
阱寬 L=1(x∈[0,1],ħ=m=1),真解本徵值 E_n=n²pi²/2。
內點 N=200,dx=1/(N+1),H=-0.5·Laplacian 三對角矩陣
(diag=1/dx², offdiag=-1/(2dx²)),eigh 求本徵值,
驗證前三個相對誤差 <2%。
只用 numpy,固定種子。
"""
import numpy as np
np.random.seed(0)
N = 200
L = 1.0
dx = L / (N + 1)
diag_val = 1.0 / dx / dx
off_val = -0.5 / dx / dx
H = np.zeros((N, N))
np.fill_diagonal(H, diag_val)
idx = np.arange(N - 1)
H[idx, idx + 1] = off_val
H[idx + 1, idx] = off_val
evals = np.linalg.eigvalsh(H) # 已由小到大排序
print(f"N={N} dx={dx:.6f}, 前五數值本徵值:")
for n in range(1, 6):
theory = (n ** 2) * np.pi ** 2 / 2.0
num = float(evals[n - 1])
rel = abs(num - theory) / theory
print(f" n={n}: numeric={num:.6f} theory={theory:.6f} rel_err={rel:.6e}")
# 驗證數字:理論值 vs 實測(前三)
oks = []
for n in (1, 2, 3):
theory = (n ** 2) * np.pi ** 2 / 2.0
num = float(evals[n - 1])
rel = abs(num - theory) / theory
ok = rel < 0.02
oks.append(ok)
print(f"VERIFY E{n}: numeric={num:.6f} vs theory={theory:.6f}, rel={rel:.3e} (<2%? {ok})")
assert all(oks), "前三本徵值誤差超過 2%"
print("PASS")