跳轉到

1637 笛卡兒解析幾何#

案發現場#

1637 年 6 月,法國哲學家勒內·笛卡兒(René Descartes, 1596–1650)在萊頓出版《方法談》(Discours de la méthode)——附錄中的〈幾何學〉(La Géométrie)僅約百頁,卻完成了一件劃時代的事:把代數與幾何合為一體。

案發現場的知識處境:兩千年來,幾何(歐幾里得)與代數(方程運算)是兩門獨立的學問。幾何靠圖形與公理,證明優雅但繁瑣;代數(韋達、卡爾達諾時代已相當發達)擅長計算卻缺乏直觀。兩者之間有一道無形的牆——幾何問題用幾何證明,代數問題用代數運算,互不往來。

同時,伽利略與開普勒的新科學(1638-兩門新科學.md、1609-開普勒行星定律.md)迫切需要描述變化的數量關係——行星的軌跡、落體的運動,都是「連續變化的曲線」。謎團:如何用數學語言精確地描述曲線與運動?

偵查過程#

笛卡兒的推理(與費馬幾乎同時的獨立發現)可以重建如下:

  1. 起點是方法論:《方法談》提出四條方法準則——「除了清晰明確的觀念,不接受任何東西為真;把難題分解為小問題;由簡到繁;全面覆查」。〈幾何學〉是這四條準則在數學中的示範。
  2. 關鍵一步——座標的發明:笛卡兒的創舉是用一對數(座標)指定平面上的一點——一點到兩條固定軸的距離 \((x, y)\) 。傳說他躺在床上看見蒼蠅在天花板上移動,想到只需「距離兩牆的長度」就能描述其位置——空間被數字化了。
  3. 曲線即方程:座標使「幾何圖形」與「代數方程」一一對應——圓是 \(x^2 + y^2 = r^2\) ,直線是 \(ax + by = c\) ,拋物線是 \(y = ax^2\) 。幾何問題可以化為代數運算,代數問題可以化為幾何直觀。兩千年的高牆倒塌了。
  4. 變數的誕生:方程中的 \(x\) 、 \(y\) 是變數——它們可以連續變化。這是數學史上第一次讓「變化」本身成為數學對象。代數從「求解未知數的靜態學問」變成「研究關係與變化的動態學問」——這正是描述運動與自然律所需要的語言。
  5. 費馬的平行發現:圖盧茲的費馬(Fermat)在《平面與立體軌跡引論》(約 1636 年成稿,1679 年出版)中獨立提出座標方法——同一發現的雙重誕生,證明時代已經成熟:印刷術時代(1450-古騰堡印刷術.md)的知識流通與科學需求,正在同時催逼同一批工具。

結案報告#

解析幾何是「理論工具升級」的典範——它不直接解決某一物理問題,卻為整個後世科學提供了語言:

  1. 微積分的前夜:變數與曲線方程是微積分(牛頓、萊布尼茨,1660s)的直接前提;沒有解析幾何,就沒有「對函數求導」的觀念。牛頓《原理》的全部數學(1687-牛頓原理.md)都建立在這套語言上。
  2. 物理學的數學化:伽利略的落體定律(1638-兩門新科學.md)、開普勒的橢圓軌道(1609-開普勒行星定律.md),在解析幾何中成為清晰的方程式——數學成為自然的語言,這一程序至此完成。
  3. 高維與抽象的展開:座標方法自然推廣到三維、n 維乃至無窮維(函數空間)——十九世紀的解析力學、相對論的時空座標(1915-廣義相對論.md)、量子力學的希爾伯特空間,全部是笛卡兒座標的後裔。
  4. 迴路的意義:解析幾何本身是純理論(理論環節),但它降生的動力是伽利略與開普勒的新科學需求(理論與實驗),而它又反哺微積分與整個物理學——理論→理論的接力,正是迴路轉動的表現。古代希臘有最好的幾何(-0250-阿基米德與機械.md),卻沒有代數的合流;古代中國有代數(宋元天元術)而沒有幾何的座標化——兩者合流只發生在印刷術時代知識加速流通的歐洲。

證據與工具#

# 用 Python 演示解析幾何的核心:幾何問題 ⇄ 代數運算
# 案例:用代數求直線與圓的交點(古希臘需尺規作圖,這裡只需解方程)

import math

# 直線:y = x + 1;圓:x² + y² = 25
# 代入:x² + (x+1)² = 25 → 2x² + 2x - 24 = 0 → x² + x - 12 = 0
# 解二次方程:x = (-b ± sqrt(b²-4ac)) / 2a
a, b, c = 1, 1, -12
disc = b*b - 4*a*c
x1 = (-b + math.sqrt(disc)) / (2*a)
x2 = (-b - math.sqrt(disc)) / (2*a)
print("直線 y = x + 1 與圓 x² + y² = 25 的交點:")
for x in [x1, x2]:
    print(f"  ({x:.0f}, {x+1:.0f})")

# 座標的威力:兩點距離 = 勾股定理的代數化
P, Q = (0, 0), (3, 4)
d = math.dist(P, Q)
print(f"\n點 {P} 到 {Q} 的距離 = √(3²+4²) = {d:.0f}")

# 曲線即方程:拋物線 y = x²(伽利略落體的軌跡形狀!)
# 落體:自由落體距離 s = ½gt² → s 與 t² 成正比 → 拋物線
g = 9.8
print("\n--- 曲線即方程:伽利略的拋物線 ---")
print("時間t(s)  下落距離s(m)")
for t in [1, 2, 3, 4]:
    s = 0.5 * g * t**2
    print(f"  {t}       {s:6.1f}")
print("s ∝ t² → 拋物線軌跡:幾何形狀 = 代數關係")

# 變數的誕生:x 可以連續變化 → 變化本身成為數學對象
import numpy as np
xs = np.linspace(-5, 5, 11)
print(f"\nx = {xs}")
print("y = x² 的連續變化:", [f"{x**2:.0f}" for x in xs])
print("\n變數 + 座標 + 方程 = 解析幾何:微積分的前夜,")
print("數學成為自然的語言。")