跳轉到

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 年成為億年級宇宙模擬的發動機。