This page intends for crawlers/spiders/bots of search engines. If you didn't modify your HTTP UserAgent, please report the bug to spider-detector.

為何行列式能表示N维體積

*** 本文簡體版已發表於超理論壇: 【科普】行列式为什么表示N维体积? - 超理论坛

傳統線性代數課程是從行列式開始講的,而行列式的定義就好似天上掉下來一般地莫名其妙。如果去問 Google, 網上各種教學就會拿出2維、3維歐氏空間來證明, 行列式的絕對值為什麽同体積相等, blah blah blah, ...

可是這樣子的解釋並不能令人滿意,問題有以下三點:

  1. (1) 證明行列式和体積相等的方法往往是硬算,毫無啟發性
  2. (2) 侷限在低維空間中,無法向高維推廣
  3. (3) 侷限在歐氏空間中,而行列式與內積無關

我們可以循序漸進地先來考慮一下 (1)(2) 要如何解決,暫時先不管 (3). 如果想要讓行列式的定義和它在歐氏空間中的幾何意義聯結地更加清楚明暸, 應該怎樣做?

首先考慮二階行列式。設歐氏空間中有向量 \mathbf{v} = (a,b), \mathbf{w} = (c,d), 問 \mathbf{v}\mathbf{w} 所張成的平行四邊形的面積有多大?是否等於行列式 \mathrm{det}(\mathbf{v},\mathbf{w}) 的值?

李尚志《線性代數》給出了這樣子一種做法:

\mathbf{v}\mathbf{w} 的起點都移到平面上某個點 A 上,設它們的終點分別為 B, C. 此時有 \overrightarrow{AB}=\mathbf{v}=(a,b), \overrightarrow{AC}=\mathbf{w}=(c,d).

\overrightarrow{AB} 逆時針旋轉 90^{\circ}, 得到 \overrightarrow{AB'}=(-b,a). 於是有

\begin{aligned} & 兩個向量所張平行四邊形的面積 \\ =\; & 底AB \times 底AB上的高 \\ =\; & |AB| \times AC在AB'上的投影 \\ =\; & |AB'| \times AC在AB'上的投影 \\ =\; & |\overrightarrow{AB'} \cdot \overrightarrow{AC}| \\ =\; & |(-b,a) \cdot (c, d)| \\ =\; & |-bc+ad| \\ =\; & |ad-bc| \end{aligned}

可見,所求面積與行列式的絕對值相等。

上面的做法給了我們一個提示:在歐氏空間中, 可以利用內積來構建行列式。

兩個向量張成的平行四邊形的二維體積(面積),可以通過最基本的面積公式 底 \times 高 來求出。具體的操作是,先取出一個向量作為高(斜高),剩下的向量作為底。構造出一個與底垂直的向量, 使它的長正好與底邊的長相等,再用它去和斜高做內積,就得到了面積.

順着這個思路繼續思考, 假如維數要上升, 怎麽辦? 現在把圖形換成一個由三個向量張成的平行六面體,要求它的體積, 怎麽做?

我們也先取一個向量做為斜高,剩下的向量作為底。類比一下就知道, 現在需要構造一個與底面垂直的向量,並且它的長正好等於底面積。 拿這個向量同斜高做內積就可以得到體積。於是很自然地想到, 這個需要構造的向量, 正是底邊兩個向量的外積(叉積)。 如此算得的體積應該會等於這三個向量拼成的三階行列式的絕對值。 計算過程這裡就不細說了。

三維的問題解決了。順着這個思路,能不能把任意維數都解決呢?假使現在有 NN 維向量張成了一個平行 ??? 面體,要求它的 N 維體積,怎麽做?如果按照之前的思路,取高再取底的話, 那麽要如何才能構造出一個向量,使之垂直於給定的 N-1 個向量,大小又要等於這 N-1 個向量張成的 N-1 維體積? 或者說,要怎樣推廣外積,才能把外積的定義擴展到一般的 N 維歐氏空間中?如果能成功的話,我們就可以用 N-1 維體積來定義 N 維體積,即,用 N-1 階行列式來定義 N 階行列式。 假如你真的去嘗試了,就會發現這個定義其實和 Laplace 展開完全是一回事情。

然而, 推廣外積並非那麽容易,即便費九牛二虎之力推廣成功了,得到的結果也只能侷限在歐氏空間中,所以並不是很划算。

現在我們來轉換一下思路,從歐氏空間的小圈子裡跳出來,考慮一下一般的向量空間。如果我們能在一般的空間中解決問題 (1), 問題 (2)(3) 也就被自然地解決了。

那麽要解決問題 (1), 另一個新問題馬上迎面而來: 一般的向量空間中的體積到底是什麽東西?沒有幾何背景,如何討論體積?

其實並不是非要有幾何背景才可以討論體積。如果某個抽象的東西能夠滿足體積應有的一切性質,我們也可以把它稱為體積。於是我們接下來要做的就是,找到體積應該滿足的性質,然後證明行列式滿足這些性質, 並且滿足這些性質的概念也只有行列式。

我們把 N 維向量空間中的 N 個向量 \mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_n 所張成 N 維形體的 N 維有向體積記作 \mathrm{vol}(\mathbf{v}_1, \mathbf{v}_2, \cdots, \mathbf{v}_N), 並把 \mathrm{vol} 這個函數稱為體積函數。如果這個函數名副其實的話,它必須滿足以下性質:

  1. (1) \mathrm{vol}(\cdots, k \mathbf{v}_i,\cdots) = k\;\cdot\mathrm{vol}(\cdots, \mathbf{v}_i,\cdots)
  2. (2) \mathrm{vol}(\cdots, \mathbf{v}_i+\mathbf{u}, \cdots) = \mathrm{vol}(\cdots, \mathbf{v}_i,\cdots) + \mathrm{vol}(\cdots, \mathbf{u},\cdots)
  3. (3)i \neq j, \mathbf{v}_i=\mathbf{v}_j, 則必有 \mathrm{vol}(\cdots, \mathbf{v}_i, \cdots, \mathbf{v}_j,\cdots) = 0

解釋:

  1. (1) 在這 N 個向量中,任何一個向量都可做斜高(同時讓其餘向量做底)。把斜高伸展 k 倍,體積必伸展 k 倍,否則就很難把這個函數稱為體積函數。此時 k 可以是任意純量,它不一定是正數,因為在一般的 field 上沒辦法定義什麽是正數。同理,體積也不一定是正數,於是在 \reals 上,這裡所定義的體積就變成了有向體積。
  2. (2) 在這 N 個向量中,任何一個向量都可做斜高(同時讓其餘向量做底)。我們知道,面積等於高乘以底,其中高是斜高在某個方向的投影,並且投影是可加的,即兩個向量之和的投影等於兩個向量的投影之和。設向量 \mathbf{x} 在高上的投影為 \mathrm{p}(\mathbf{x}), 則有: \begin{aligned} & \mathrm{vol}(\cdots, \mathbf{v}_i+\mathbf{u}, \cdots) \\ =\; & \mathrm{p}(\mathbf{v}_i+\mathbf{u}) \times 底 \\ =\; & \left ( \mathrm{p}(\mathbf{v}_i) + \mathrm{p}(\mathbf{u}) \right ) \times 底 \\ =\; & \mathrm{p}(\mathbf{v}_i) \times 底 + \mathrm{p}(\mathbf{u}) \times 底 \\ =\; & \mathrm{vol}(\cdots, \mathbf{v}_i,\cdots) + \mathrm{vol}(\cdots, \mathbf{u}, \cdots) \end{aligned} 簡單地說就是「高相加則體積相加」。如果這條性質不成立, 也是很難把這個函數稱為體積函數的。
  3. (3) 如果這 N 個向量中有兩個向量是相等的,那麽這 N 個向量就線性相關了,它們最多張成一個 N-1 維形體, 而絕不可能張成一個 N 維形體。因此,它們所張成的形體的 N 維體積必然為零,就好比點和線段都沒有面積, 平面圖形沒有(三維)體積一樣。否則,體積函數就名不副實了。

此外,從以上三條性質還可推出另一條關鍵性質:

\forall\;i,j,\; \mathrm{vol}(\cdots, \mathbf{v}_i, \cdots, \mathbf{v}_j, \cdots) + \mathrm{vol}(\cdots, \mathbf{v}_j, \cdots, \mathbf{v}_i, \cdots) = 0

即:交換兩個向量的位置得到的新體積是原體積的相反數(加法負元)。 這是不是和行列式很接近了?我們來看看這個性質為何會成立:

\begin{aligned} & \mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}, \cdots, {\color{Blue}\mathbf{v}_j}, \cdots) + \mathrm{vol}(\cdots, {\color{Blue}\mathbf{v}_j}, \cdots, {\color{Red}\mathbf{v}_i}, \cdots) \\ =\;& +\mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}, \cdots, {\color{Blue}\mathbf{v}_j}, \cdots) + 0 \\ & + \mathrm{vol}(\cdots, {\color{Blue}\mathbf{v}_j}, \cdots, {\color{Red}\mathbf{v}_i}, \cdots) + 0 \\ =\;& +\mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}, \cdots, {\color{Blue}\mathbf{v}_j}, \cdots) + \mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}, \cdots, {\color{Red}\mathbf{v}_i}, \cdots) \\ & + \mathrm{vol}(\cdots, {\color{Blue}\mathbf{v}_j}, \cdots, {\color{Red}\mathbf{v}_i}, \cdots) + \mathrm{vol}(\cdots, {\color{Blue}\mathbf{v}_j}, \cdots, {\color{Blue}\mathbf{v}_j}, \cdots) \\ =\;& +\mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}, \cdots, {\color{Blue}\mathbf{v}_j}+{\color{Red}\mathbf{v}_i}, \cdots) \\ & + \mathrm{vol}(\cdots, {\color{Blue}\mathbf{v}_j}, \cdots, {\color{Red}\mathbf{v}_i}+{\color{Blue}\mathbf{v}_j}, \cdots) \\ =\;& \mathrm{vol}(\cdots, {\color{Red}\mathbf{v}_i}+{\color{Blue}\mathbf{v}_j}, \cdots, {\color{Blue}\mathbf{v}_j}+{\color{Red}\mathbf{v}_i}, \cdots) \\ =\;& 0 \end{aligned}

可以看出,這條性質是性質 (2) 和性質 (3) 的一個推論。現在我們就來證明,行列式是唯一一個滿足上述所有性質的函數。怎麽證明呢?其實我們可以通過上述性質,直接寫出體積函數的具體表達式。如此一來體積函數當然也就唯一確定了。

簡單起見我們先從2維向量空間入手。設二維向量空間有一組基底 (\mathbf{x}, \mathbf{y}), 那麽這個向量空間中的任何向量都可以寫成 \mathbf{x}\mathbf{y} 的線性組合。因為討論體積總要有個單位,我們這裡就假定 \mathrm{vol}(\mathbf{x}, \mathbf{y}) = 1. 設 \begin{aligned} \mathbf{v} &= (a,b) = a \mathbf{x} + b \mathbf{y} \\ \mathbf{w} &= (c,d) = c \mathbf{x} + d \mathbf{y} \end{aligned} 則有 \begin{aligned} & \mathrm{vol}(\mathbf{v},\mathbf{w}) \\ =\;& \mathrm{vol}(a \mathbf{x} + b \mathbf{y}, c \mathbf{x} + d \mathbf{y}) \\ =\;& \mathrm{vol}(a \mathbf{x}, c \mathbf{x} + d \mathbf{y}) + \mathrm{vol}(b \mathbf{y}, c \mathbf{x} + d \mathbf{y}) \\ =\;& \mathrm{vol}(a \mathbf{x}, d \mathbf{y}) + \mathrm{vol}(b \mathbf{y}, c \mathbf{x}) \\ =\;& ad\cdot\mathrm{vol}(\mathbf{x}, \mathbf{y}) + bc\cdot\mathrm{vol}(\mathbf{y}, \mathbf{x}) \\ =\;& ad\cdot\mathrm{vol}(\mathbf{x}, \mathbf{y}) - bc\cdot\mathrm{vol}(\mathbf{x}, \mathbf{y}) \\ =\;& (ad-bc)\cdot\mathrm{vol}(\mathbf{x}, \mathbf{y}) \\ =\;& ad-bc \end{aligned} \mathrm{vol}\left( \begin{bmatrix}a\\b\end{bmatrix}, \begin{bmatrix}c\\d\end{bmatrix} \right) = \begin{vmatrix} a & c\\ b & d \end{vmatrix}

其實無非就是把體積函數根據性質 (1)(2) 展開,然後再根據交換變號的性質,把逆序的 \mathrm{vol}(\mathbf{y}, \mathbf{x}) 轉換成了自然順序的 \mathrm{vol}(\mathbf{x}, \mathbf{y})(已知),從而求出結果.

再看一般的3維向量空間。設三維向量空間中有基底 (\mathbf{x},\mathbf{y},\mathbf{z}), 並且 \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z})=1. 設有向量 \begin{aligned} \mathbf{u} &= (a,b,c) = a \mathbf{x} + b \mathbf{y} + c \mathbf{z} \\ \mathbf{v} &= (d,e,f) = d \mathbf{x} + e \mathbf{y} + f \mathbf{z} \\ \mathbf{w} &= (g,h,i) = g \mathbf{x} + h \mathbf{y} + i \mathbf{z} \end{aligned} 則有 \begin{aligned} & \mathrm{vol}(\mathbf{u},\mathbf{v},\mathbf{w}) \\ =\;& \mathrm{vol}(a\mathbf{x}+b\mathbf{y}+c\mathbf{z},d\mathbf{x}+e\mathbf{y}+f\mathbf{z},g\mathbf{x}+h\mathbf{y}+i\mathbf{z}) \\ =\;& + \mathrm{vol}(a\mathbf{x},e\mathbf{y}+f\mathbf{z},h\mathbf{y}+i\mathbf{z}) \\ & + \mathrm{vol}(b\mathbf{y},d\mathbf{x}+f\mathbf{z},g\mathbf{x}+i\mathbf{z}) \\ & + \mathrm{vol}(c\mathbf{z},d\mathbf{x}+e\mathbf{y},g\mathbf{x}+h\mathbf{y}) \\ =\;& + a\cdot\mathrm{vol}(\mathbf{x},e\mathbf{y}+f\mathbf{z},h\mathbf{y}+i\mathbf{z}) \\ & + b\cdot\mathrm{vol}(\mathbf{y},d\mathbf{x}+f\mathbf{z},g\mathbf{x}+i\mathbf{z}) \\ & + c\cdot\mathrm{vol}(\mathbf{z},d\mathbf{x}+e\mathbf{y},g\mathbf{x}+h\mathbf{y}) \\ =\;& + a \cdot ( \mathrm{vol}(\mathbf{x},e\mathbf{y},i\mathbf{z}) + \mathrm{vol}(\mathbf{x},f\mathbf{z},h\mathbf{y}) ) \\ & + b \cdot ( \mathrm{vol}(\mathbf{y},d\mathbf{x}+i\mathbf{z}) + \mathrm{vol}(\mathbf{y},f\mathbf{z},g\mathbf{x}) ) \\ & + c \cdot ( \mathrm{vol}(\mathbf{z},d\mathbf{x},h\mathbf{y}) + \mathrm{vol}(\mathbf{z},e\mathbf{y},g\mathbf{x}) ) \\ =\;& + a \cdot ( ei \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) + fh \cdot \mathrm{vol}(\mathbf{x},\mathbf{z},\mathbf{y}) ) \\ & + b \cdot ( di \cdot \mathrm{vol}(\mathbf{y},\mathbf{x},\mathbf{z}) + fg \cdot \mathrm{vol}(\mathbf{y},\mathbf{z},\mathbf{x}) ) \\ & + c \cdot ( dh \cdot \mathrm{vol}(\mathbf{z},\mathbf{x},\mathbf{y}) + eg \cdot \mathrm{vol}(\mathbf{z},\mathbf{y},\mathbf{x}) ) \\ =\;& + a \cdot ( ei \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) - fh \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) ) \\ & + b \cdot ( di \cdot \mathrm{vol}(\mathbf{y},\mathbf{x},\mathbf{z}) - fg \cdot \mathrm{vol}(\mathbf{y},\mathbf{x},\mathbf{z}) ) \\ & + c \cdot ( dh \cdot \mathrm{vol}(\mathbf{z},\mathbf{x},\mathbf{y}) - eg \cdot \mathrm{vol}(\mathbf{z},\mathbf{x},\mathbf{y}) ) \\ =\;& + aei \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) - afh \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) \\ & - bdi \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) + bfg \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) \\ & + cdh \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) - ceg \cdot \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) \\ =\;& + aei - afh \\ & - bdi + bfg \\ & + cdh - ceg \\ \end{aligned} \mathrm{vol}\left( \begin{bmatrix} a\\b\\c \end{bmatrix}, \begin{bmatrix} d\\e\\f \end{bmatrix}, \begin{bmatrix} g\\h\\i \end{bmatrix} \right) = \begin{vmatrix} a & d & g \\ b & e & h \\ c & f & i \end{vmatrix}

三維的情況複雜了許多,但規律是可以掌握的。展開體積函數之後我們得到了 \mathrm{vol}(?,?,?) 的線性組合,其中 ?,?,? 是基向量 \mathbf{x},\mathbf{y},\mathbf{z} 的各種全排列. 自然順序的 \mathrm{vol}(\mathbf{x},\mathbf{y},\mathbf{z}) 是已知的,所以要求值就只需要把每個排列通過一步一步的元素交換排回自然順序就可以了,如果所需的交換次數是奇數,這一個排列所在那一項就會變號,那一項最終的值是 -1; 如果所需的交換次數是偶數次, 那麽就不會變號,那一項最終的值是 1. 最終的結果就是這些 -11 的線性組合。

有了2維和3維空間中的體積, n 維空間中體積的定義也就呼之欲出了:

\mathrm{vol}(\mathbf{v}_1,\cdots,\mathbf{v}_n) = \left ( \sum_{i=1}^{n!} \mathrm{sgn}(\sigma_i)\prod_{j=1}^{n} \left ( \mathbf{v}_{j} \right )_{\sigma_i(j)} \right) \cdot \mathrm{vol}(\mathbf{e}_1,\cdots,\mathbf{e}_n)

其中

  1. (1) \sigma_i 是指 1,2,3,\cdots,n 的第 i 種排列(總共有 n! 種排列)
  2. (2) \mathrm{sgn}(\sigma_i) 取值 \pm 1, 把 \sigma_i 調換回自然順序時, 若需要奇數次元素交換, 則取值 -1, 否則取值 +1
  3. (3) \sigma_i(j) 是指在第 i 個排列中處在第 j 個位置上的數
  4. (4) (\mathbf{v}_j)_{\sigma_i(j)} 是指 \mathbf{v}_j 在基底 (\mathbf{e}_1,\cdots,\mathbf{e}_n) 下的第 \sigma_i(j) 個座標

如果設 \mathrm{vol}(\mathbf{e}_1,\cdots,\mathbf{e}_n)=1, 那麽就可以求出具體值:

\mathrm{vol}(\mathbf{v}_1,\cdots,\mathbf{v}_n) = \sum_{i=1}^{n!} \mathrm{sgn}(\sigma_i)\prod_{j=1}^{n} \left ( \mathbf{v}_{j} \right )_{\sigma_i(j)}

可以看到,這個定義同教科書上對 n 階行列式的定義是全完一致的,只是有一個細節還需要說明一下。 教科書上一般會用逆序對個數的奇偶性來定義排列 \sigma_i 的符號 \mathrm{sgn}(\sigma_i), 這個定義和本文中的定義是等價的,詳情可參考維基百科 Parity_of_a_permutation#Proof_4, 此處不再贅述。總之,排列的符號、係數的排列組合,這些在行列式的定義中出現的東西並非空穴來風, 它們都可以從體積應該滿足的幾何性質中推導出來,沒什麽好奇怪的。