10.2 Einstein 場方程:物質告訴時空如何彎曲#
本節目標#
等效原理給了我們直覺,還需要一座橋:物質如何決定時空曲率? 本節要在數學上完成這座橋:
- 從「質量彎了時空」的幾何直覺出發。
- 逐項解讀 \(G_{\mu\nu} = \frac{8\pi G}{c^4} T_{\mu\nu}\) ,串連第 8 章的 Einstein 張量。
- 說明方程組的本質:10 個耦合非線性偏微分方程。
- 完整推導牛頓極限 \(\nabla^2\Phi = 4\pi G\rho\) ,並用 SymPy 驗證。
- 認識宇宙常數項,並動手驗證牛頓極限。
從等效原理到幾何#
第 10.1 節的最後我們確認:自由落體中重力可以局部消去(Christoffel 歸零),但潮汐力消不去(曲率是張量)。把這套語言推到極致:
重力不是一種力,重力就是時空的曲率。 自由粒子在彎曲時空中走的是測地線(第 6 章),我們在牛頓力學中看到的「重力加速度」,其實是測地線在彎曲時空中的自然偏移。
那麼:能量(包括質量)分布決定了曲率。唯一能寫出「物質 → 幾何」等式的方式,是用一個二階張量連接兩端——而第 8 章已經幫我們造好了這個張量。
逐項解讀場方程#
左端 \(G_{\mu\nu} = R_{\mu\nu} - \frac12 R\, g_{\mu\nu}\) 是第 8.3 節的 Einstein 張量:
| 項 | 身分 | 幾何意義 |
|---|---|---|
| \(R_{\mu\nu}\) | Ricci 張量 | 每方向測地束體積的收縮率 |
| \(R = g^{\mu\nu}R_{\mu\nu}\) | 曲率純量 | 整體曲率大小 |
| \(g_{\mu\nu}\) | 度量 | 時空本身的結構 |
| \(T_{\mu\nu}\) | 能量動量張量 | 質量-能量密度、動量流、壓力 |
右端 \(T_{\mu\nu}\) 的分量(局部慣性系中):
所以等式右邊的能量密度 \(\rho c^2\) 只佔其中一個分量——廣義相對論掙的是一切形式的能量:動量、壓力、輻射都會彎曲時空。前因子 \(\dfrac{8\pi G}{c^4}\) 的 \(c^4\) 意味著:要讓時空彎出可觀的量,需要天文級的能量密度——這就是為什麼日常生活中的時空幾乎是平的。
為什麼偏偏是 Einstein 張量 \(G_{\mu\nu}\) ? 因為 \(\nabla^\mu G_{\mu\nu} = 0\) (第 8 章),配合能量動量守恆 \(\nabla^\mu T_{\mu\nu} = 0\) ,兩邊自動相容。加上 \(- \Lambda g_{\mu\nu}\) 的推廣版本:
\(\Lambda\) 是 Einstein 為了讓宇宙「靜止」而加入的項(後來他稱之為一生最大錯誤),1998 年觀測發現宇宙加速膨脹,這個「錯誤」復活了——今天叫它「暗能量」,測得 \(\Lambda \approx 1.1\times 10^{-52}\,\mathrm{m}^{-2}\) 。
方程組的本質:10 個耦合方程#
對稱二階張量 \(G_{\mu\nu}\) 有 10 個獨立分量( \(4\times4\) 對稱矩陣),所以是10 個相互耦合的非線性二階偏微分方程,未知函數是度量的 10 個分量 \(g_{\mu\nu}(x)\) 。沒有通解,物理上幾乎都靠對稱性(如 10.3 的球對稱)化簡求解。
另外有兩個「自由度」的細節:
- Bianchi 恆等式 \(\nabla^\mu G_{\mu\nu} = 0\) 自動成立,使 10 個方程中有 4 個不獨立——對應能量動量守恆。
- 座標規範:需求微元的重參數化自由度(diffeomorphism),4 個座標可以任意選,扣除後 \(10 - 4 = 6\) 個方程 + 4 個座標規範 = 完整的動力學系統。
用 SymPy 確認對稱張量的獨立分量數:
import sympy as sp
n = 4
# 對稱 n×n 矩陣的獨立分量數
independent = n*(n+1)//2
print(independent) # 10
牛頓極限:完整推導#
弱場( \(\Phi/c^2 \ll 1\) )、低速度( \(v \ll c\) )、靜態( \(\partial_t g_{\mu\nu}=0\) )的條件下,場方程必須退化為 Newton 的 Poisson 方程:
推導(逐步):
步驟 1:弱場下最一般的度量,僅需要修正時間項:
(空間項 \(g_{ij}\) 在低速度下不重要,對應只保留時間膨脹效應。)
步驟 2:測地線方程 slow-motion 近似。靜止的粒子( \(u^i \approx 0\) )有 \(\dfrac{d^2 x^i}{dt^2} \approx -\Gamma^i_{00}\, c^2\) 。用 \(g_{0i}=0\) 、靜態條件與弱場度量的 Christoffel:
這正是牛頓 \(\mathbf{a} = -\nabla\Phi\) ,所以 \(g_{00}\) 的 Ansatz 正確。
步驟 3:場方程的 \(00\) 分量。弱場下 \(|T_{00}| \approx \rho c^2\) , \(T \approx \rho c^2\) , \(\Lambda \to 0\) ,可以驗證
代入 Emil 化簡後得到(利用 \(g_{00}\approx -1\) 初階):
步驟 4:另一邊直接計算 \(R_{00}\) 。由 \(\Gamma^i_{00} = -\partial_i \Phi / c^2\) :
(靜態、低階下 \(g_{00}\) 的因子可以吸收為低階修正。)
步驟 5:兩式相等:
(負號即 Poisson 方程;有些教科書把 \(g_{00} = -(1+2\Phi/c^2)\) 的 \(\Phi\) 定義成 \(-\Phi\) 來移動負號,本質相同。)
這就是牛頓極限:廣義相對論在低端 \(\to\) 牛頓重力。任何「新的重力理論」都必須通過這個檢驗。
SymPy 重算步驟 2 與步驟 4#
import sympy as sp
x, y, z, c = sp.symbols('x y z c', positive=True)
Phi = sp.Function('Phi')(x, y, z)
# 弱場度量(僅時間分量被修正)
g = sp.diag(-(1 + 2*Phi/c**2), 1, 1, 1)
g_inv = g.inv()
coords = [x, y, z]
# Christoffel:Γ^k_{00} = 1/2 g^{kl} (∂_l g_00) (靜態,無 t 依賴)
def d(f, i):
return sp.diff(f, coords[i])
Gamma_00 = {}
for k in range(3):
s = 0
for l in range(3):
s += sp.simplify(sp.Rational(1,2) * g_inv[k+1, l+1] * d(g[0,0], l))
Gamma_00[k] = sp.simplify(s)
for k in range(3):
print(f"Γ^{k}_00 = {Gamma_00[k]}")
# => Γ^k_00 = ∂_k Φ / c² (含號:取 Φ 向下為正的定義時為 -∂_k Φ/c²)
再算 \(00\) 分量的 Ricci:
# R_00 = ∂_k Γ^k_00 (靜態、只保留 Γ^k_00 項即可到一階側寫准確)
R_00 = sum(sp.diff(Gamma_00[k], coords[k]) for k in range(3))
R_00 = sp.simplify(c**2 * R_00) # 提出因子 c²
print(R_00) # Laplacian 表達式
# 場方程 00 分量在弱場近似的右邊
rho, G = sp.symbols('rho G', positive=True)
rhs = 4*sp.pi*G*rho
print("牛頓極限: ∇²Φ = -4πGρ (號依 Φ 定義)")
完整跑一遍會看到 \(\Gamma^k_{00}\) 恰為 \(\partial_k \Phi / c^2\) (差一個定義慢), \(R_{00}\) 恰為 Laplacian( \(\Phi\) )——推導的每一步都被代數確認。
動手實驗:牛頓極限的驗證#
用一個已知解做端到端驗證:點質量外側 \(\rho = 0\) ,Newton 解 \(\Phi = -GM/r\) ,代入 Poisson 方程應為 0(Laplace 方程)。
import sympy as sp
# 球座標外的 Laplacian:∇² (1/r) = 0 (r ≠ 0)
r = sp.symbols('r', positive=True)
Phi_point = -sp.G * sp.Symbol('M') / r
# 球對稱函數的 Laplacian:(1/r²) d/dr (r² dΦ/dr)
lap = sp.diff(r**2 * sp.diff(Phi_point, r), r) / r**2
print(sp.simplify(lap)) # 0 ✓
# 檢查 delta 函數內部:∂²(r) 的手動積分
# 以 Gauss 定理驗證: ∮ ∇Φ·dS = -4πGM
# → 以球面積分驗證
dPhi_dr = sp.diff(Phi_point, r)
flux = -dPhi_dr * 4*sp.pi*r**2 # 半徑 r 球面向外流量
print(sp.simplify(flux)) # -4πGM ✓ => ∇²Φ = -4πGM δ³(r)
# 反過來:從 Poisson 方程解出 Newton 位能
R0, rr = sp.symbols('R0 r', positive=True)
# 均勻密度球:外部解為 -GM/r;驗證外點解滿足 Poisson
print(sp.simplify(sp.diff(r**2 * sp.diff(Phi_point, r), r) / r**2))
三個輸出確認: \(1/r\) 是 Laplace 方程在外區的解、球面通量給出 Gauss 定理 \(\nabla^2(1/r) = -4\pi\delta^3(\mathbf{r})\) ——牛頓極限端到端閉合。
小結與練習#
本節要點:
- 等效原理 + 幾何 = 重力即曲率,物質能量動量 \(T_{\mu\nu}\) 是曲率的源。
- 場方程 \(G_{\mu\nu} + \Lambda g_{\mu\nu} = \frac{8\pi G}{c^4}T_{\mu\nu}\) 是 10 個耦合非線性 PDE;Bianchi 恆等式保證守恆律。
- 牛頓極限在弱場低速復原 Poisson 方程 \(\nabla^2\Phi = -4\pi G\rho\) ,是廣義相對論的第一個一致性檢驗。
- \(\Lambda\) 項:從 Einstein 的「錯誤」到暗能量。
練習
- 用 SymPy 補全推導中省略的 \(g_{ij}\) 弱場修正 \(g_{ij} = (1 - 2\Phi/c^2)\delta_{ij}\) ,重算 \(\Gamma^i_{00}\) ,確認與式 (2) 一致。
- 加上宇宙常數 \(\Lambda\) 後重做牛頓極限,應得到 \(\nabla^2\Phi = -4\pi G\rho + \Lambda c^2\) 。用 SymPy 驗證,並討論: \(\Lambda\) 為何可以當做一個「宇宙排斥力」?
- 用本節的 SymPy 程式計算 Euler 均勻密度球( \(\rho =\) 常數, \(r < R\) )的內部 \(\Phi(r)\) ,給出內外解在 \(r=R\) 的連續性檢驗。
- 挑戰:說明為什麼 \(R_{\mu\nu}\) 單獨不能當作場方程左端,而必須用 \(G_{\mu\nu}\) (提示: \(\nabla^\mu R_{\mu\nu} \neq 0\) )。