二次曲線的不變量與射影視角:當解析幾何變成矩陣代數
用大矩陣、小行列式與特徵值,三步判別任意斜躺二次曲線,再跳進射影平面看橢圓、拋物線、雙曲線如何成為一家人
當「畫圖」變成「算矩陣」:二次曲線的不變量與射影視角
入門篇我們學會把圓、橢圓、拋物線、雙曲線寫成代數方程,再用配方、判別式、聯立去拆解它們。那是一種「以代數描述幾何」的技術。但這裡有一個更深的問題會立刻浮現:當你旋轉、平移座標軸時,方程式的係數會整批改變,可是「這條曲線是橢圓」這個事實卻不該因為你換了角度看而改變。換句話說,方程式的係數是表象,真正的幾何身分藏在係數的某些組合裡——這些組合在座標變換下保持不變,稱為不變量(invariant)。
進階篇要做的,就是把解析幾何從「逐題配方」升級成「看不變量、用矩陣、必要時跳進射影平面」。這套語言一旦掌握,你能在幾步之內判別任意二次曲線的類型,能理解為什麼橢圓、拋物線、雙曲線其實是同一個東西在不同無窮遠處的切片,也能看懂計算機視覺、計算幾何裡那些「齊次座標(homogeneous coordinates)」到底在幹嘛。

一般二次曲線:把它寫成矩陣
平面上最一般的二次曲線(conic)方程是
$$ A x^2 + B xy + C y^2 + D x + E y + F = 0. $$
逐項處理很痛苦,但只要引入一個對稱矩陣,整個結構就清楚了。定義
$$ M = \begin{pmatrix} A & B/2 & D/2 \\ B/2 & C & E/2 \\ D/2 & E/2 & F \end{pmatrix}, \qquad A_{33} = \begin{pmatrix} A & B/2 \\ B/2 & C \end{pmatrix}. $$
那麼整條曲線可以寫成一個簡潔的二次型(quadratic form):若令齊次向量 $\mathbf{x} = (x, y, 1)^\top$,則
$$ \mathbf{x}^\top M \mathbf{x} = 0. $$
請自行展開驗證——你會發現對角線給出 $A x^2, C y^2, F$,而非對角線的因子 $B/2, D/2, E/2$ 各出現兩次,剛好湊回 $Bxy, Dx, Ey$。這個「把交叉項的係數對半拆到對稱位置」的小技巧,是所有二次型操作的起手式。
矩陣 $M$ 叫做曲線的大矩陣,左上角 $2\times 2$ 的 $A_{33}$ 叫小矩陣(或主部矩陣)。接下來所有判別、分類、化簡,全都讀這兩個矩陣的數值特徵。
三個不變量:類型不靠係數,靠組合
座標變換(旋轉 + 平移)在這套語言裡,等於對 $\mathbf{x}$ 乘上一個矩陣 $P$,於是 $M \mapsto P^\top M P$。關鍵的代數事實是:這種合同變換(congruence transformation)會改變 $M$ 的個別元素,卻保留以下三個量的符號(在旋轉這種正交變換下嚴格不變,在平移下也不變):
$$ \Delta = \det M, \qquad \delta = \det A_{33} = AC - \tfrac{B^2}{4}, \qquad S = \operatorname{tr} A_{33} = A + C. $$
- $\Delta$(大行列式)判斷曲線是否退化。$\Delta \ne 0$ 是真正的圓錐曲線;$\Delta = 0$ 則退化成一對直線、一點或空集。
- $\delta$(小行列式)判斷類型:$\delta > 0$ 為橢圓型,$\delta = 0$ 為拋物型,$\delta < 0$ 為雙曲型。注意 $\delta = AC - B^2/4$ 正是入門篇那條判別式 $B^2 - 4AC$ 的反號(差一個正因子 $-4$),所以你早就見過它,只是現在知道它是某矩陣的行列式。
- $S = A + C$ 在類型確定後用來細分(例如判斷是真橢圓還是無實點的「虛橢圓」,以及在化簡時提供特徵值的線索)。
把這三者組成一張判別表,整個高中「配方分類」就被一張表取代了:
| $\Delta$ | $\delta$ | 類型 |
|---|---|---|
| $\ne 0$ | $> 0$ | 橢圓($\Delta \cdot S < 0$ 為實橢圓,否則虛橢圓) |
| $\ne 0$ | $= 0$ | 拋物線 |
| $\ne 0$ | $< 0$ | 雙曲線 |
| $= 0$ | $> 0$ | 單一點(兩條虛相交直線) |
| $= 0$ | $= 0$ | 一對平行直線 / 重合直線 / 空 |
| $= 0$ | $< 0$ | 一對相交實直線 |
這張表的威力在於:你完全不需要把方程式化簡,只要算兩個行列式。
旋轉消去交叉項:特徵值就是新係數
當 $B \ne 0$,曲線的主軸不平行座標軸,圖形看起來「歪」的。入門篇用旋轉角公式 $\cot 2\theta = (A - C)/B$ 把 $xy$ 項消掉。進階視角更乾淨:消去 $xy$ 項等價於把對稱矩陣 $A_{33}$ 對角化。
因為 $A_{33}$ 是實對稱矩陣,譜定理(spectral theorem)保證它有兩個實特徵值 $\lambda_1, \lambda_2$,且存在正交矩陣 $Q$ 使 $Q^\top A_{33} Q = \operatorname{diag}(\lambda_1, \lambda_2)$。在新座標 $(x', y')$ 下,二次部分就變成
$$ \lambda_1 x'^2 + \lambda_2 y'^2. $$
於是兩個特徵值「就是」消去交叉項後的兩個平方係數。而且由特徵多項式的係數比較可知:
$$ \lambda_1 \lambda_2 = \det A_{33} = \delta, \qquad \lambda_1 + \lambda_2 = \operatorname{tr} A_{33} = S. $$
這立刻解釋了為什麼 $\delta$ 決定類型:$\delta > 0$ 表示兩特徵值同號(同號平方項 → 橢圓),$\delta < 0$ 表示異號(異號平方項 → 雙曲線),$\delta = 0$ 表示有一個特徵值為零(退化成只剩一個平方項 → 拋物線)。整個分類學在這裡收斂成一句話:圓錐曲線的類型,就是其主部矩陣特徵值的符號組合(sign signature)。
跳進射影平面:三種曲線其實是一家人
橢圓有界、拋物線單臂張開、雙曲線兩支分離——它們看起來毫無關係。但在射影平面(projective plane) $\mathbb{RP}^2$ 上,它們是同一條曲線在不同位置與「無窮遠線」相交的結果。
齊次座標把平面點 $(x, y)$ 寫成 $[X : Y : Z]$,其中 $x = X/Z$、$y = Y/Z$,且 $[X:Y:Z]$ 與 $[\lambda X : \lambda Y : \lambda Z]$($\lambda \ne 0$)視為同一點。$Z = 0$ 的那些點不對應任何有限平面點,它們組成無窮遠線(line at infinity),代表「方向」。
二次曲線在齊次座標下就是 $\mathbf{X}^\top M \mathbf{X} = 0$,$\mathbf{X} = (X, Y, Z)^\top$,跟前面的大矩陣 $M$ 完全是同一個。現在問:這條曲線跟無窮遠線 $Z = 0$ 相交於幾點?把 $Z = 0$ 代入,剩下
$$ A X^2 + B XY + C Y^2 = 0. $$
這是關於比值 $(X : Y)$ 的齊次二次方程,它的判別式正是 $B^2 - 4AC = -4\delta$。於是:
- $\delta < 0$(雙曲線):$B^2 - 4AC > 0$,與無窮遠線交於兩個實點——對應雙曲線的兩條漸近線方向。
- $\delta = 0$(拋物線):$B^2 - 4AC = 0$,與無窮遠線相切於一點——對應拋物線唯一的開口方向。
- $\delta > 0$(橢圓):$B^2 - 4AC < 0$,與無窮遠線無實交點(只有一對共軛複數方向)——所以橢圓「不跑到無窮遠」,是有界的。
這就是統一的圖像:橢圓、拋物線、雙曲線是同一類射影二次曲線,差別只在於它和無窮遠線的相交方式(不交、相切、交兩點)。你甚至可以透過一個射影變換把任何一種變成另一種——這正是「圓錐曲線」這個古老名字背後最現代的詮釋:它們都是同一個圓錐被不同平面切出來的截痕,而那個「不同平面」在代數上就是不同的射影變換。
看一個例子
判別並化簡曲線
$$ 5x^2 - 4xy + 8y^2 - 36 = 0, $$
求其類型、主軸方向與標準形。
第一步:寫出矩陣。 對照 $A=5,\ B=-4,\ C=8,\ D=E=0,\ F=-36$:
$$ M = \begin{pmatrix} 5 & -2 & 0 \\ -2 & 8 & 0 \\ 0 & 0 & -36 \end{pmatrix}, \qquad A_{33} = \begin{pmatrix} 5 & -2 \\ -2 & 8 \end{pmatrix}. $$
第二步:算不變量。
$$ \delta = \det A_{33} = 5\cdot 8 - (-2)^2 = 40 - 4 = 36 > 0, $$
所以是橢圓型。再算大行列式(沿第三列展開,只有 $-36$ 一項非零):
$$ \Delta = \det M = -36 \cdot \det A_{33} = -36 \cdot 36 = -1296 \ne 0, $$
非退化,確實是真橢圓。又 $S = A+C = 13 > 0$ 而 $\Delta < 0$,故 $\Delta \cdot S < 0$,確認為實橢圓(有實點)。
第三步:對角化主部矩陣。 特徵方程
$$ \det(A_{33} - \lambda I) = (5-\lambda)(8-\lambda) - 4 = \lambda^2 - 13\lambda + 36 = 0, $$
解得 $\lambda = \dfrac{13 \pm \sqrt{169 - 144}}{2} = \dfrac{13 \pm 5}{2}$,即 $\lambda_1 = 4,\ \lambda_2 = 9$。驗證:$\lambda_1 \lambda_2 = 36 = \delta$,$\lambda_1 + \lambda_2 = 13 = S$,與不變量一致。
第四步:求主軸方向。 對 $\lambda_1 = 4$,解 $(A_{33} - 4I)\mathbf{v} = 0$:
$$ \begin{pmatrix} 1 & -2 \\ -2 & 4 \end{pmatrix}\mathbf{v} = 0 \ \Rightarrow\ v_1 = 2 v_2 \ \Rightarrow\ \mathbf{v}_1 = (2, 1)/\sqrt{5}. $$
對 $\lambda_2 = 9$,得正交方向 $\mathbf{v}_2 = (-1, 2)/\sqrt{5}$。兩主軸彼此垂直(對稱矩陣的不同特徵值對應正交特徵向量,這是必然)。
第五步:寫標準形。 在主軸座標 $(x', y')$ 下方程變為
$$ 4x'^2 + 9y'^2 = 36 \quad\Longleftrightarrow\quad \frac{x'^2}{9} + \frac{y'^2}{4} = 1. $$
所以這是半長軸 $a = 3$(沿 $\mathbf{v}_1 = (2,1)$ 方向)、半短軸 $b = 2$(沿 $\mathbf{v}_2 = (-1,2)$ 方向)的橢圓。注意一個容易搞混的細節:較小的特徵值 $\lambda_1 = 4$ 對應較長的軸,因為標準形的分母是 $36/\lambda$,特徵值越小、分母(半軸平方)越大。整個過程沒有用到任何旋轉角的三角公式,純線性代數一氣呵成。
重點回顧
- 任意二次曲線都可寫成 $\mathbf{x}^\top M \mathbf{x} = 0$,其中 $\mathbf{x}=(x,y,1)^\top$,$M$ 為對稱大矩陣(交叉項係數對半拆到對稱位置)。
- 三個不變量 $\Delta=\det M$、$\delta=\det A_{33}$、$S=\operatorname{tr}A_{33}$ 決定一切:$\Delta$ 看退化、$\delta$ 看類型、$S$ 細分;它們在座標變換下不變,所以反映的是真正的幾何身分而非係數表象。
- 消去交叉項 = 對角化主部矩陣 $A_{33}$;兩個特徵值就是化簡後的平方係數,且 $\lambda_1\lambda_2=\delta$、$\lambda_1+\lambda_2=S$。類型即特徵值的符號組合。
- 特徵向量給出主軸方向,較小特徵值對應較長半軸;全程不需旋轉角三角公式。
- 射影視角統一三類曲線:橢圓、拋物線、雙曲線分別與無窮遠線「不交 / 相切 / 交兩點」,是同一射影二次曲線的不同切面。
深入探討(研究所視角)
把二次曲線寫成對稱矩陣,只是一個更大故事的入口。以下幾條線索值得在大學進階課程與研究中繼續追:
Sylvester 慣性定律與分類的真正基礎。 我們說「類型 = 特徵值符號組合」並非偶然,背後是 Sylvester 慣性定律(Sylvester's law of inertia):任何實對稱矩陣在合同變換下,正、負、零特徵值的個數(即慣性指標 inertia)是不變量。圓錐曲線分類本質上是把 $3\times 3$ 對稱矩陣 $M$ 與 $2\times 2$ 主部 $A_{33}$ 按慣性指標歸類。這個觀點直接推廣到三維的二次曲面(quadric surface)——橢球、雙曲面、拋物面、錐面的分類,就是 $4\times 4$ 與 $3\times 3$ 對稱矩陣慣性指標的窮舉,邏輯完全平行。
射影、仿射、度量的分層幾何。 Klein 的 Erlangen 綱領(Erlangen program)告訴我們,幾何學可以按「允許哪些變換」分層。在射影群下,所有非退化圓錐曲線等價(沒有橢圓/拋物/雙曲之分);降到仿射群(保留無窮遠線)才分出三類;再降到等距群(保留距離與角度)才有離心率、焦點這些度量概念。所以高中談的「離心率 $e$」是最精細的度量不變量,而 $\delta$ 的符號是較粗的仿射不變量——它們是同一座標化幾何在不同變換群下看到的不同層次的不變量。理解這個分層,你會知道哪些性質在投影(如相機成像)下會保留、哪些會扭曲。
對偶與線圓錐曲線。 在射影平面裡,點與線是對偶的:一條線也可以用三個齊次座標表示。二次曲線除了「點圓錐曲線」$\mathbf{X}^\top M \mathbf{X}=0$,還有由其切線族構成的「線圓錐曲線」,由伴隨矩陣(adjugate)$M^*$ 描述,滿足 $\boldsymbol{\ell}^\top M^* \boldsymbol{\ell}=0$。這套對偶在計算幾何與計算機視覺裡是核心工具:相機標定(camera calibration)中的「絕對圓錐曲線(absolute conic)」、多視幾何(multiple view geometry)中的基礎矩陣(fundamental matrix)$F$,都是這同一套齊次二次型語言的直接後裔。當你在影像處理函式庫裡求兩張影像之間的單應矩陣(homography),背後算的就是射影變換矩陣 $P$ 如何把一個 $M$ 變成 $P^\top M P$。
數值穩定性與條件數。 真實資料(如從影像偵測到的橢圓邊緣點)擬合二次曲線時,直接最小化代數誤差 $\sum (\mathbf{x}_i^\top M \mathbf{x}_i)^2$ 會偏向退化解,且對 $A_{33}$ 的條件數(condition number)敏感。Fitzgibbon 等人提出的「直接最小平方橢圓擬合(direct least squares ellipse fitting)」在約束 $4AC - B^2 = 1$(即 $4\delta = 1$)之下求解,把問題轉成廣義特徵值問題(generalized eigenvalue problem),保證解必為橢圓。這正是不變量 $\delta$ 從「分類判據」升格為「最佳化約束條件」的一個漂亮應用——理論不變量直接決定了演算法的數值行為。
一個值得親手驗證的小命題。 試證:對任意旋轉 $Q\in SO(2)$,$\operatorname{tr}A_{33}$ 與 $\det A_{33}$ 都不變。提示——旋轉作用是 $A_{33}\mapsto Q^\top A_{33} Q$,而跡與行列式在這種相似變換下不變($\operatorname{tr}(Q^\top A Q)=\operatorname{tr}(A Q Q^\top)=\operatorname{tr}A$,$\det(Q^\top A Q)=\det Q^\top \det A \det Q=\det A$)。動手算一遍,你就會親眼看到「不變量」三個字在矩陣代數裡是如何被精確兌現的——這也是把解析幾何徹底線性代數化之後,最值得帶走的一個直覺。