利用行列式求直線、平面和圓方程式

本文的閱讀等級:初級

給定平面上的兩點 (2,1)(-3,4),如何求出穿越此兩點的直線?如果你是一位行列式迷,那麼必定知曉這個神奇的公式:

\displaystyle  \left|\!\!\begin{array}{rcc}  x&y&1\\  2&1&1\\  -3&4&1  \end{array}\!\!\right|=0

展開並化簡,可得直線方程式 3x+5y-11=0。本文以這個簡單的例子作為引子,介紹如何利用行列式求平面上穿越兩點的直線、空間中包含三點的平面,以及平面上穿越三點的圓。

 
平面上穿越兩點的直線

首先我從線性代數觀點解釋上述公式的由來。假設直線方程式為 ax+by+c=0。因為 (x_1,y_1)(x_2,y_2) 在此直線上,未知數 a,b,c 必定滿足

\displaystyle\begin{aligned}  ax_1+by_1+c&=0\\  ax_2+by_2+c&=0.  \end{aligned}

表面上,我們要解開上面的線性方程組。你很可能迫不急待地想用克拉瑪公式 (Cramer’s rule,見“克拉瑪公式的證明”) 解出 a,b,c,但過程有些繁複。這裡我介紹另一個解法。因為存在三個未知數,卻只有兩個方程式,不妨將直線方程式加入聯立方程組,如下:

\displaystyle\begin{aligned}  ax+by+c&=0\\  ax_1+by_1+c&=0\\  ax_2+by_2+c&=0,  \end{aligned}

或用矩陣形式表示為

\displaystyle  \begin{bmatrix}  x&y&1\\  x_1&y_1&1\\  x_2&y_2&1  \end{bmatrix}\begin{bmatrix}  a\\  b\\  c  \end{bmatrix}=\begin{bmatrix}  0\\  0\\  0  \end{bmatrix}

因為 k(ax+by+c)=0k\neq 0,代表同一條直線,無限多組 (a,b,c) 滿足這個齊次方程。由此推論係數矩陣不可逆,行列式必定為零,於是導出直線方程式的行列式表達:

\displaystyle  \begin{vmatrix}  x&y&1\\  x_1&y_1&1\\  x_2&y_2&1  \end{vmatrix}=0

從幾何面解釋,想像我們將XY平面上三個共線點 (x,y), (x_1,y_1), (x_2,y_2) 沿著Z軸移動一單位,新的空間座標即為 (x,y,1), (x_1,y_1,1), (x_2,y_2,1)。這三個向量位於同一平面上 (請你繪圖確認),因此所張的平行六面體體積為零,即知三向量合併成的行列式等於零 (見“行列式的幾何意義”)。

 
繼續使用行列式性質化簡直線方程式 (見“行列式的運算公式與性質”),

\displaystyle\begin{aligned}  \begin{vmatrix}  x&y&1\\  x_1&y_1&1\\  x_2&y_2&1  \end{vmatrix}&=\begin{vmatrix}  x&y&1\\  x_1&y_1&1\\  x_2-x_1&y_2-y_1&0  \end{vmatrix}=\begin{vmatrix}  x&y&1\\  x_1-x&y_1-y&0\\  x_2-x_1&y_2-y_1&0  \end{vmatrix}=\begin{vmatrix}  x_1-x&y_1-y\\  x_2-x_1&y_2-y_1  \end{vmatrix}\\  &=(x_1-x)(y_2-y_1)-(x_2-x_1)(y_1-y)=0,  \end{aligned}

可得點斜式

\displaystyle  y-y_1=\frac{y_2-y_1}{x_2-x_1}(x-x_1)

其中 \frac{y_2-y_1}{x_2-x_1} 是直線的斜率。

 
空間中包含三點的平面

套用同樣的思路,我們也可以得到穿越空間中不位於一直線上三個點 (x_1,y_1,z_1)(x_2,y_2,z_2)(x_3,y_3,z_3) 的平面方程式 ax+by+cz+d=0。寫出聯立方程組:

\displaystyle\begin{aligned}  ax+by+cz+d&=0\\  ax_1+by_1+cz_1+d&=0\\  ax_2+by_2+cz_2+d&=0\\  ax_3+by_3+cz_3+d&=0.  \end{aligned}

以行列式表達的平面方程式即為

\displaystyle  \begin{vmatrix}  x&y&z&1\\  x_1&y_1&z_1&1\\  x_2&y_2&z_2&1\\  x_3&y_3&z_3&1  \end{vmatrix}=0

化簡行列式,可得

\displaystyle\begin{aligned}  \begin{vmatrix}  x&y&z&1\\  x_1&y_1&z_1&1\\  x_2&y_2&z_2&1\\  x_3&y_3&z_3&1  \end{vmatrix}&=\begin{vmatrix}  x&y&z&1\\  x_1&y_1&z_1&1\\  x_2-x_1&y_2-y_1&z_2-z_1&0\\  x_3-x_1&y_3-y_1&z_3-z_1&0  \end{vmatrix}=\begin{vmatrix}  x&y&z&1\\  x_1-x&y_1-y&z_1-z&0\\  x_2-x_1&y_2-y_1&z_2-z_1&0\\  x_3-x_1&y_3-y_1&z_3-z_1&0  \end{vmatrix}\\  &=-\begin{vmatrix}  x_1-x&y_1-y&z_1-z\\  x_2-x_1&y_2-y_1&z_2-z_1\\  x_3-x_1&y_3-y_1&z_3-z_1  \end{vmatrix}\\  &=(x-x_1)\begin{vmatrix}  y_2-y_1&z_2-z_1\\  y_3-y_1&z_3-z_1  \end{vmatrix}+(y-y_1)\begin{vmatrix}  z_2-z_1&x_2-x_1\\  z_3-z_1&x_3-x_1  \end{vmatrix}\\  &~~~+(z-z_1)\begin{vmatrix}  x_2-x_1&y_2-y_1\\  x_3-x_1&y_3-y_1  \end{vmatrix}=0.\end{aligned}

\mathbf{u}=(x_2-x_1,y_2-y_1,z_2-z_1)\mathbf{v}=(x_3-x_1,y_3-y_1,z_3-z_1)。向量 \mathbf{u}\mathbf{v} 的外積 (cross product,或稱向量積) \mathbf{u}\times\mathbf{v} 代表平面 ax+by+cz+d=0 的法向量 (normal vector,或稱公垂向量),可用行列式表示為 (見“答張盛東──關於外積與行列式的關係”)

\displaystyle  \mathbf{u}\times\mathbf{v}=\left(\begin{vmatrix}  y_2-y_1&z_2-z_1\\  y_3-y_1&z_3-z_1  \end{vmatrix},\begin{vmatrix}  z_2-z_1&x_2-x_1\\  z_3-z_1&x_3-x_1  \end{vmatrix},\begin{vmatrix}  x_2-x_1&y_2-y_1\\  x_3-x_1&y_3-y_1  \end{vmatrix}\right)

對於平面上任一點 (x,y,z),令 \mathbf{w}=(x-x_1,y-y_1,z-z_1)。因為 \mathbf{w} 必垂直於法向量 \mathbf{u}\times\mathbf{v},故滿足 \mathbf{w}\cdot(\mathbf{u}\times\mathbf{v})=0 (符號 \cdot 代表內積),此即高中數學慣用的平面方程式求法。

 
平面上穿越三點的圓

給定平面上不共線的三個點 (x_1,y_1), (x_2,y_2), (x_3,y_3),求穿越這三個點的圓。傳統的作法設圓心為 (h,k),半徑為 r,圓方程式為 (x-h)^2+(y-k)^2=r^2,代入三點座標,消去二次項 h^2, k^2, r^2,可得一次聯立方程組,由此解出 h,kr。另一個較快捷的方法設圓方程式為 x^2+y^2+bx+cy+d=0,代入三點座標可得一次聯立方程組,解開可得 b, c, d。既然最終總會推演出一次方程,行列式方法應當可行。設圓方程式為 a(x^2+y^2)+bx+cy+d=0 (將圓方程式乘入一非零常數 a 不會改變圓),則有下列聯立方程組:

\displaystyle\begin{aligned}  a(x^2+y^2)+bx+cy+d&=0\\  a(x_1^2+y_1^2)+bx_1+cy_1+d&=0\\  a(x_2^2+y_2^2)+bx_2+cy_2+d&=0\\  a(x_3^2+y_3^2)+bx_3+cy_3+d&=0.  \end{aligned}

以行列式表達的圓公式為

\displaystyle  \begin{vmatrix}  x^2+y^2&x&y&1\\  x_1^2+y_1^2&x_1&y_1&1\\  x_2^2+y_2^2&x_2&y_2&1\\  x_3^2+y_3^2&x_3&y_3&1  \end{vmatrix}=0

下面舉一例展示四階行列式的計算過程。給定三點 (1,1), (1,7), (4,4),代入圓方程式,化簡如下:

\displaystyle\begin{aligned}  \begin{vmatrix}  x^2+y^2&x&y&1\\  2&1&1&1\\  50&1&7&1\\  32&4&4&1  \end{vmatrix}&=\begin{vmatrix}  x^2+y^2&x&y&1\\  2&1&1&1\\  48&0&6&0\\  30&3&3&0  \end{vmatrix}=\begin{vmatrix}  x^2+y^2&x&y&1\\  2-(x^2+y^2)&1-x&1-y&0\\  48&0&6&0\\  30&3&3&0  \end{vmatrix}\\  &=-\begin{vmatrix}  2-(x^2+y^2)&1-x&1-y\\  48&0&6\\  30&3&3  \end{vmatrix}\\  &=-6\cdot 3\cdot\begin{vmatrix}  2-(x^2+y^2)&1-x&1-y\\  8&0&1\\  10&1&1  \end{vmatrix}\\  &=-18\left(x^2+y^2-2x-8y+8\right)=0.\end{aligned}

使用配方法,可得 (x-1)^2+(y-4)^2=3^2

 
利用行列式求直線、平面以及圓方程式有甚麼優點呢?好比我們常用行列式來表達方陣 A 的特徵多項式 p(t)=\det(A-tI),我想到的唯一一個理由大概就是簡便吧。以求解平面上穿越三點的圓為例,不需要解開包含三個未知數的聯立方程組,直接化簡行列式即可得到圓方程式。同樣道理,我們也可以用五階行列式求出空間中包含四點的球,這就留給讀者當作練習。

 
補充解釋:
牛頓在《數學原理》(Principia Mathematica) 提出一個問題:一圓錐曲線 (即二次曲線,見“圓錐曲線”) 可由五個穿越點唯一決定。牛頓使用幾何方法證明了這個命題,我們可以運用上文介紹的行列式方法來推導圓錐曲線。任一圓錐曲線可用二元二次方程式表示為

\displaystyle   ax^2+bxy+cy^2+dx+ey+f=0

其中 a,b,c,d,e,f 是實數。給定平面上五個點 (x_i,y_i)i=1,\ldots,5,穿越這些點的圓錐曲線為

\displaystyle  \begin{vmatrix}  x^2&xy&y^2&x&y&1\\  x_1^2&x_1y_1&y_1^2&x_1&y_1&1\\  x_2^2&x_2y_2&y_2^2&x_2&y_2&1\\  x_3^2&x_3y_3&y_3^2&x_3&y_3&1\\  x_4^2&x_4y_4&y_4^2&x_4&y_4&1\\  x_5^2&x_5y_5&y_5^2&x_5&y_5&1  \end{vmatrix}=0

廣告
本篇發表於 線性代數專欄, 應用之道 並標籤為 , , , 。將永久鏈結加入書籤。

6 Responses to 利用行列式求直線、平面和圓方程式

  1. Watt Lin 說道:

    我在高中時期,老師沒教,國立編譯館的數學課本也沒這樣寫。
    當年,如果知道這些行列式的妙用,應該是很有趣的事!

    • ccjou 說道:

      說的對。人多少總會畫地自限。拿我自已來說,五年來寫了300多篇,直到昨天才突然動念想寫些解析幾何的主題。「線代啟示錄」這個名稱反而讓我綁手綁腳的。

  2. Chua 說道:

    96年指考數乙有一題也是考類似的以行列式表示橢圓,當時邊作答邊覺得有意思有意思。沒想到多年後偶然看到相關推論

  3. 柏宗 說道:

    請問(5,10 )(6,9)(-2, 3) 求圓方程式
    可以幫我列式嗎?

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s