1609 開普勒行星定律#
案發現場#
1609 年,帝國數學家約翰內斯·開普勒(Johannes Kepler, 1571–1630)在布拉格出版《新天文學》(Astronomia Nova)——書中宣布了行星運動的前兩條定律。第三條要等到 1619 年的《世界的和諧》。
案發現場的知識處境:哥白尼的日心說(1543-哥白尼日心說.md)雖然翻轉了宇宙圖像,卻仍堅持圓軌道與等速轉動——這是兩千年的柏拉圖信條:「天體的運動必是完美的圓與勻速。」開普勒本人也是此信條的信徒。第谷的火星觀測(1576-第谷天文台.md)精度已達 1–2 角分,但圓軌道模型與數據之間始終有 8 角分上下的殘差。
謎團:8 角分——不足滿月的四分之一——的偏差,究竟是觀測誤差,還是理論的破產?
偵查過程#
開普勒的偵查是科學史上最著名的「數據逼出真相」案例:
- 接手遺產(1600–1601):開普勒成為第谷助手,分管火星。第谷臨終(1601)囑咐他善用數據。開普勒選火星,正是因為它偏心率最大、數據最「不馴」——難題是最好的破案對象。
- 對抗的八年:他先用傳統偏心圓模型擬合火星軌道,費盡心力後殘差仍達 8 角分。換作旁人,會把 8 角分歸咎於觀測誤差(誤差已不小)。開普勒卻寫下那句名言:
「既然神聖的仁慈已賜予我們第谷這樣精確的觀測者,那這 8 角分就不該被忽視——僅憑這 8 角分,就值得徹底改造整個天文學。」 8 角分 >> 1 角分的觀測誤差——數據否決了理論。
- 從圓到卵再到橢圓:他嘗試卵形軌道,仍不吻合;最終回到阿波羅尼奧斯兩千年前的幾何圖形——橢圓。太陽位於橢圓的一個焦點上(第一定律)。殘差消失:數據與幾何完全吻合。
- 第二定律——等面積:等速圓周也破產了。開普勒發現:行星與太陽的連線在相等時間內掃過相等面積——近日點跑得快、遠日點跑得慢。這是物理學第一次把「變速運動」寫成精確的數學定律。
- 第三定律——和諧(1619):在《世界的和諧》中,他找到行星週期與軌道半徑的關係:
\[ T^2 \propto a^3 \]
各行星的週期平方與半徑立方成正比——太陽系第一次成為有統一數學結構的系統。開普勒狂喜地寫道:「我通過一道閃光看見了最美的和諧……書可以等上一百年,等它的讀者。」
結案報告#
開普勒定律是「實驗數據逼出理論」的極致案例,同時是數學成為自然語言的宣言:
- 柏拉圖信條之死:完美的圓與勻速被橢圓與等面積取代——兩千年的美學偏見第一次向數據低頭。「美」的標準從古典幾何轉向數學和諧。
- 太陽系的統一結構:第三定律使所有行星服從同一數學關係——這是「自然界有普遍規律」的強力證據,直接通往牛頓的萬有引力(1687-牛頓原理.md):牛頓證明,若力與距離平方成反比,則 \(T^2 \propto a^3\) 自動成立。開普勒的三條經驗定律,在牛頓手中成為一條物理定律的推論。
- 迴路的運轉:第谷的數據(實驗)→開普勒的定律(理論)→伽利略望遠鏡的新發現(1609-伽利略望遠鏡.md)→牛頓的統一理論。同時,開普勒的天文計算浩繁如山,催生了對數(1614-納皮爾對數.md)這一計算技術——理論逼出技術。
- 數據品質的迴響:沒有第谷 1 角分的精度,8 角分的殘差就會被誤差吞沒——開普勒親承此點。實驗環節的獨立價值(1576-第谷天文台.md)在此得到最終證明。
證據與工具#
# 用 Python 驗證開普勒第三定律:T² ∝ a³(以現代行星數據)
# 行星數據:軌道半長徑 a(AU)與週期 T(年)
planets = {
"水星": (0.387, 0.241),
"金星": (0.723, 0.615),
"地球": (1.000, 1.000),
"火星": (1.524, 1.881),
"木星": (5.203, 11.86),
"土星": (9.537, 29.45),
}
print(f"{'行星':>4} {'a(AU)':>7} {'T(年)':>7} {'T²/a³':>7}")
for name, (a, T) in planets.items():
k = T**2 / a**3
print(f"{name:>4} {a:>7.3f} {T:>7.3f} {k:>7.3f}")
# 若 T²/a³ 對所有行星都是常數 → 第三定律成立
ks = [T**2 / a**3 for a, T in planets.values()]
print(f"\nT²/a³ 的平均值 = {sum(ks)/len(ks):.4f},最大偏差 < 0.5%")
print("→ 第三定律成立:太陽系服從同一數學結構。")
# 驗證第一定律:橢圓的偏心率(火星 e=0.0934 最大)
# 開普勒對抗的 8 角分殘差:圓軌道模型與真實橢圓的偏差
import math
e_mars = 0.0934
residual_arcmin = 8 # 開普勒最優偏心圓模型的殘差(史實值)
print(f"\n火星偏心率 {e_mars} → 圓軌道殘差量級數角分(遠大於第谷誤差 1 角分)")
print("→ 開普勒的名言:『僅憑這 8 角分,就值得徹底改造整個天文學。』")
# 順帶驗證:牛頓反平方力 ⇒ T² ∝ a³ 自動成立(圓軌道簡化)
# 引力 F = GMm/r² = m·v²/r,v = 2πr/T ⇒ T² = (4π²/GM)·r³
G, M_sun = 6.674e-11, 1.989e30
a_mars_m = 1.524 * 1.496e11
T_calc = math.sqrt(4 * math.pi**2 * a_mars_m**3 / (G * M_sun))
print(f"\n由牛頓引力計算火星週期 = {T_calc/86400/365.25:.3f} 年(觀測值 1.881 年)")
print("開普勒的經驗定律 → 牛頓的物理定律:數據逼出橢圓,理論完成統一。")