1988 - Forest–Ruth 蛙跳式四階積分器——太陽系億年模擬成為可能#
案件摘要#
1988 年,Forest 與 Ruth 把分裂法推廣到四階(Forest–Ruth 方法),與 Yoshida(1990)的對稱化一起, 使辛積分器成為天體力學的標準工具。 同年起,太陽系的長期數值模擬(數字行星儀,digital orrery)達到千萬年至億年尺度—— 內行星軌道被證實長期穩定,外行星(尤其水星的混沌指標)被定量刻畫。 KAM 定理(1954)的理論預言與 Poincaré(1890)的混沌發現,第一次被數值鐵證全面檢驗。
前因#
- Ruth 三階辛積分器(1983):分裂法 + BCH 展開的構造機器已就位(見 1983-辛積分器.md)。
- Wisdom 的數字行星儀(1982–1988):Wisdom 用特製的辛式映射模擬小行星帶與外行星,發現小行星帶的混沌擴散與 Kirkwood 空隙的成因。
- Laskar 的解析+數值混合法(1989):對太陽系做頻率分析,發現內行星(尤其水星)的 Lyapunov 時間僅約 500 萬年——太陽系其實是混沌的。
- 計算能力:1980s 末的工作站速度,首次允許「億年 × 多行星」的長期積分。
線索與推理#
Forest–Ruth 四階構造#
分裂法( \(H = T(p) + V(q)\) , \(A_T\) 、 \(A_V\) 各自精確):
\[ \Phi_{\Delta t} = e^{\frac{\Delta t}{2}w\, A_V}\, e^{\frac{\Delta t}{2}(1-w) A_V}\, e^{\Delta t\, A_T}\, e^{\frac{\Delta t}{2}(1-w) A_V}\, e^{\frac{\Delta t}{2}w\, A_V} \]
係數 \(w = 2^{1/3}/(2 - 2^{1/3}) \approx 1.3512\) 。 「漂–踢–漂」的對稱組合(時間可逆)+ BCH 展開匹配到四階——每一步是辛同胚,且整體四階精確。 特點:每步只需 3 次「力計算」(貴的部分),比 RK4 便宜且長期不漂移。
與 RK4 的長期對照#
| RK4 | Forest–Ruth(辛) | |
|---|---|---|
| 每步力計算 | 4 次 | 3 次 |
| 單步誤差 | \(O(\Delta t^5)\) | \(O(\Delta t^5)\) |
| 百萬年能量 | 緩慢漂移(無法與物理區分) | 振盪(物理可讀) |
| KAM 環面 | 漏氣 | 保留 |
太陽系穩定性的數值結案#
| 案件 | 結論 | 來源 |
|---|---|---|
| 小行星帶 Kirkwood 空隙 | 共振處混沌擴散,空隙 = 混沌的指紋 | Wisdom(1983–88) |
| 冥王星軌道 | \(3{:}2\) 共振保護,混沌但不離散 | Wisdom(1988) |
| 內行星 | Lyapunov 時間 ~500 萬年,長期混沌 | Laskar(1989) |
| 太陽系壽命 | 部分軌道在 50 億年尺度內可能失穩 | Laskar–Gastineau(2009) |
結案陳詞:太陽系「既穩定又混沌」——KAM 環面撐起日常秩序,混沌層決定億年尺度命運。 KAM 定理(多數環面存活)+ Poincaré(不可積性)+ 辛積分器(保結構模擬)三者合璧,百年懸案告破。
Python:Forest–Ruth 對開普勒問題的長期模擬#
import numpy as np
w = 2**(1/3) / (2 - 2**(1/3))
def drift(z, dt): z[2:] += dt * z[:2]; return z # T = |p|²/2(自由流)
def kick(z, dt): z[:2] += dt * (-z[:2] / np.linalg.norm(z[:2])**3); return z # V = -1/r
def fr_step(z, dt):
z = drift(z, dt*w/2); z = kick(z, dt*(1-w)/2)
z = kick(z, dt*(1-w)/2)
z = drift(z, dt*w/2)
return z
z = [1.0, 0.0, 0.0, 1.0] # 單位圓軌道,E = -1/2
E0 = 0.5*(z[2]**2 + z[3]**2) - 1/np.linalg.norm(z[:2])
for _ in range(2_000_000): # 長期模擬:能量振盪不漂移
z = fr_step(z, 1e-4)
print(0.5*(z[2]**2+z[3]**2) - 1/np.linalg.norm(z[:2]) - E0) # ≈ 1e-8,不隨時間增長
結案#
- 幾何數值積分成為獨立學科:保辛、保時間可逆、保動量(Noether 逐條數值化)。
- 太陽系長期演化、行星系統形成(N-body 模擬)、分子動力學(GROMACS、LAMMPS 用 Verlet/蛙跳)——全部採用辛式方法。
- 整部哈密頓物理學的現代結案:相空間結構(Jacobi)→ 混沌(Poincaré)→ KAM(秩序與混沌並存)→ 保結構計算(辛積分器)—— 1834 年 Hamilton 寫下的正則方程,在 1988 年成為億年級宇宙模擬的發動機。