線性代數(三)行列式的來歷
來自專欄 馬同學高等數學
行列式是線性變換的伸縮因子,在這篇文章裡面已經介紹過了。
本文想談的是行列式在歷史中是怎麼演變出來的,主要以下幾個問題:
- 定義行列式的目的是什麼?
- 行列式出現的思路是什麼?
- 為什麼用「全排列」、「逆序數」這麼晦澀的名詞來定義行列式?
1 定義行列式的目的
歷史上,定義行列式的目的就是為了解線性方程組。
下面這個方程組:
從幾何上來講,兩個方程都是直線,解就是它們的交點:
通過高斯消元法可以得到唯一解:
一般的,對於二元一次線性方程組:
如果它有唯一解,那麼通過高斯消元法容易得到:
對於三元一次線性方程組:
如果它有唯一解,同樣可以通過高斯消元法得到:
元一次線性方程組的解可想而知,會更加複雜。
簡化 元一次線性方程組的解,找出其中的規律,在這個過程中產生了行列式。
2 定義行列式的思路
大家可能習慣了這樣的數學:
或者矩陣乘法的定義(可以參考這篇文章):
以上數學的劇情都是直線發展的。但是行列式的定義思路要曲折些:
有點像經常說的,大膽假設、小心求證。下面我們來看看這一過程。
3 低階行列式
3.1 二階行列式
3.1.1 定義
二階行列式是這麼定義的,交叉相乘,之後相減:
3.1.2 驗證
再看看剛才的二元一次方程組的解:
它的解的分母都是:
套用剛才定義的二階行列式的符合和規則可以得到:
分子可以分別表示為:
則線性方程的解表示為:
經過驗證,這樣定義二階行列式是合理的,可以達到我們預設的解線性方程組的目的。
3.2 三階行列式
3.2.1 定義
比較複雜,可以靠對角線法則進行記憶:
3.2.2 驗證
有了三階行列式的定義,則三元方程組的解:
可以通過三階行列式來表示:
經過驗證,這樣定義三階行列式也是合理的。
4 行列式的定義
階行列式應該怎麼定義?
具體的過程肯定是,數學家們(應該是凱萊、范德蒙這些先驅)廢了無數草稿紙,反覆驗算各階線性方程組,從中總結出來的。
為了介紹行列式的定義,先引入兩個概念。
4.1 全排列
有如下三個數字:
總共有以下6種不重複的排列方式:
這就是全排列。
把 個不同的元素排成一列,叫做這 個元素的全排列(簡稱排列)。
再舉個例子,如下四個數字:
總共有以下24種不重複的排列方式,可以自行驗算。
4.2 逆序數
比如有這麼一個數列:
規定:
- 從小到大為正序
- 否則為逆序
比如:
上圖中可以看出,沒有一個逆序的,因為5是第三個數字,所以用下列的負號來表示沒有逆序:
再比如:
數列內所有的逆序數為:
逆序數定義為:
在一個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為一個逆序。一個排列中逆序的總數就稱為這個排列的逆序數。
再比如數列:
數列的逆序數為4,可以自行驗證。
4.3 通過全排列和逆序數定義三階行列式
有了全排列和逆序數,就可以來定義行列式了。
以三階行列式為例:
來觀察每一項的腳標,腳標第一項都是按照「 」排列的:
而腳標的第二項是「 」的全排列:
正負號怎麼來的呢?是由逆序數決定的:
整個過程為:
三階行列式可以定義為:
其中, 為排列 的逆序數, 表示對「 」的所有排列「 」求和。
這種定義方式和之前的對角線定義方式得到的結果是一樣的,但是可以推廣到 階。
4.4 定義
階行列式定義為:
其值為:其中, 為排列 的逆序數, 表示對「 」的所有排列「 」求和。
5 克拉默法則
那麼上面的 階行列式的定義是否合適?我們用克拉默法則來驗收。
加百列·克萊姆(1704 - 1752),瑞士數學家,發現了可以通過行列式解線性方程組的克拉默法則(也稱之為克萊姆法則),讓行列式成為數學界的共識,是行列式的歷史源頭。
下面從具體的二元、三元一次方程組說起。
5.1 規律
觀察二元方程組的解:
再觀察三元方程組的解:
可以看到如下規律:
- 分母都是係數組成的行列式
- 分子也是係數組成的行列式,只是對應於不同的 ,第 列被替換為了常數項
推廣到 元線性方程組的話,就是克拉默法則。
5.2 定義
如果有 個未知數, 個方程所組成的線性方程組,它的係數矩陣 的行列式不等於零,即:
則方程組有唯一解: 其中 是把係數矩陣 中第 列的元素用方程組右端的常數項代替後所得到的 階矩陣,即:
從 階行列式的定義出發可以證明:
這就說明行列式的定義是成功的(從行列式的定義出發,需要先證明幾個行列式的性質,然後證明克拉默法則,這裡就不引用了)。
為什麼要用「全排列」、「逆序數」這麼晦澀的名詞來定義行列式?完全是因為只有這樣定義,克拉默法則才成立。
廣告時間:
線性代數的各種概念都可以通過文中的形式進行講解,有興趣可以報名參加我們的「線代基礎課程」(報名方法:關注微信公眾號:馬同學高等數學,公眾號ID:matongxue314,點擊菜單欄的「線代課程」)。
推薦閱讀:
※矩陣論筆記(2)
※語料庫語言學基礎知識:矩陣(Haskell版)
※gal2mat:將gal權重文件轉成n-by-n矩陣
※矩陣和向量求導