本文較為硬核,請酌情跳過部分内容。
如果你真想知道行列式(以及矩陣)究竟是在說什麼,我建議你看完全文。
行列式的本質其實很直觀,先說一下結論,行列式的本質是體積。
至于是什麼的體積?
請往下看。
對一些讀者來說,理解行列式的意義需要重塑對線性代數的整體認知,所以我要先介紹一下線性代數的“正确打開方式”。
大部分線性代數教材都把線性方程組放在第一位,但我認為線性代數應該從線性空間講起。
線性空間也叫向量空間,之前學過線性代數的人可能會覺得這是個非常複雜的概念,但其實線性空間很簡單,最典型的線性空間就是我們熟悉的三維空間。
或許我應該從更簡單的一維空間談起,它也是一種線性空間。
一條直線其實就是一個一維空間,直線上有無窮多個點,或者說直線是由無窮多個點組成的。
類推下去,二維空間、三維空間、更高維的線性空間也都是由無窮多個點組成的,或者說:線性空間是點的集合。
一些讀者可能會反駁道:
線性空間明明是滿足8條運算定律的向量的集合,怎麼能說成是點的集合?
這其實就涉及到我們對向量的理解了,什麼是向量?
是有大小和方向的量嗎?
不是,尤其是在線性代數中,一定要注意:向量是滿足8條運算定律的量,它不需要有方向,也不需要有大小。
點,就是最直觀的例子。沒錯,點也是向量。其實這很好理解,當我們用坐标去表示點或向量(暫且看成有大小和方向的量)的時候,用的方法是一樣的。
對于向量這個概念,重要的不是它究竟是什麼,而是它滿足的運算定律是什麼,也就是前文提到的8條運算定律:
這8條運算定律其實都很簡單,就是我們熟知的那種有大小和方向的量的運算定律。
隻要滿足這8條運算定律,那就是向量。這會導緻函數也是一種向量,引出非常豐富的内容,在本文中就不多提了。
雖然向量不是有大小和方向的量,但是“有大小和方向的箭頭”的圖景可以幫助我們理解向量的性質,所以我們可以暫時把下文中的向量看成是“有大小和方向的箭頭”。
接下來就是重頭戲了,我們需要知道如何描述向量。很多人都知道可以用一組坐标去描述向量,就像下面這樣:
但是,僅僅靠坐标還不足以描述向量,因為坐标系有很多種,一組坐标在不同的坐标系中表示的向量是不同的,就像下面這樣:
所以,在我們用一組坐标表示向量的時候,一定要知道使用的是什麼坐标系。在線性代數中,用“基”表示坐标系,“基”其實也是向量,可以稱為基向量。
理解基向量需要重新認識坐标系,我們通常對向量的坐标表示的看法是:
現在我們要放棄上面這種看法,轉而用基向量去重新理解坐标,每一種坐标系都有特定的基向量。
向量的坐标表示其實是:
這種方法其實就是把基向量伸縮以後再首尾相連,“伸縮”就是向量的數乘,“首尾相連”就是向量的加法,伸縮的系數就是坐标。
也就是說,完整描述一個向量需要“基向量”和“坐标”,這二者缺一不可。很多人對于向量的印象僅僅隻是“坐标”,而忽略了“基向量”,這正是理解行列式的一個障礙,所以我一定要事先強調“基向量”的重要性。
在這裡就會出現一個很少有人明确告訴初學者的規則,基向量也是向量,描述基向量也需要“基向量”和“坐标”。這時就會出現“無限套娃”的情況(基向量一層一層套下去),為了防止這種“無限套娃”,線性代數默認:
這可能有點繞,不過我相信大家都能理解它。
也就是說線性代數有一個默認的“背景”,這個“背景”是直角坐标系,在這個“背景”中構建出基向量,再用基向量的線性組合去表示一般的向量。
這是理解行列式必不可少的一環,我必須提前說清楚。
上文的關鍵内容其實就是這兩句話。
變換是連接不同坐标系的橋梁,也就是把一個坐标系變換到另一個坐标系。這種變換包括兩部分:
我們可以用一個簡單的旋轉變換看出它們之間的關系:
也就是說:基變換和坐标變換是反着的,專業一點的說法是它們互為逆變換。
上面的例子其實是線性變換,也是線性代數中讨論的變換。之所以說稱其為“線性變換”是因為:
到了這一步,才算是碰到了理解行列式的門檻。
矩陣和行列式很像,事實上行列式就是對矩陣進行一套運算之後的結果,所以在理解行列式之前需要先了解矩陣。
上面的旋轉變換還可以寫成這種形式:
也就是說,矩陣其實就是線性變換的一種表現形式。
不過僅僅對矩陣理解到這個程度還不夠,根本不足以進一步理解行列式,想要加深理解就需要先運用一下矩陣,比如用矩陣表示“基變換”和“坐标變換”:
讓我們把重點放在“基變換”上面,“基變換”其實就是把新的基向量表示成舊的基向量的線性組合。相應的,矩陣中每一列的元素都是一個新的基向量的坐标。
這也就是說,矩陣也是一組向量的坐标,更準确地說是:一組基向量在另一組基向量中的坐标。
“線性變換”和“一組向量的坐标”其實是一回事,它們都是矩陣的意義。
(确實也可以簡單地說:矩陣就是一組向量。這可能是一個顯而易見的結果,不過簡單地觀察矩陣與向量的形式得到這個結論,和經過“基變換”得到這個結論相比,對結論的理解可遠遠不在一個檔次上。)
現在,終于可以正式談論行列式的意義了。
前面說過:
将它們綜合之後,大家就可以理解行列式的意義了。
行列式是一組基向量構成的圖形的“體積”,行列式的計算方法就是計算“體積”的方法。
基向量構成圖形的方法其實很簡單,兩個基向量構成的圖形就是平行四邊形,三個基向量構成的圖形就是平行六面體。
之所以統一用“體積”這個詞,而不用“面積”這個詞,是因為線性代數研究的向量是任意的n維空間中的向量,基向量構成的圖形也是任意的n維空間中的圖形,所以用“體積”這個詞更合适。
考慮到基向量是“單位向量”,所以行列式表示的“體積”也是“單位體積”,或者說是“體積元”。
(當然,這裡說的“體積”和我們熟悉的那個體積還是有些不同的,因為這裡說的“體積”是有方向的,這和行列式的計算方法有關。至于計算行列式的方法到底是怎麼來的,這就有些麻煩了,本文就不介紹了。)
知道了行列式是體積元,其實就已經可以想到很多用處了。由于筆者隻對物理學有所了解,所以想到的用處基本上都在物理學裡,比如廣義相對論裡面會經常用到體積元。歡迎大家在評論區裡補充其它用處。
在線性代數裡面,行列式通常是用于判斷一個矩陣是否有逆矩陣。如果一個矩陣的行列式等于0,就說明這個矩陣沒有逆矩陣。
逆矩陣很好理解,在前面提到的旋轉變換裡面,表示順時針旋轉的矩陣的逆矩陣就是表示逆時針旋轉的矩陣。
一個矩陣存在逆矩陣其實就是說:矩陣表示的線性變換是可逆的,也就是在變換之後,還可以用逆變換變回原樣。
至于這和體積有什麼關系?
依然可以用基向量理解,線性變換是聯系兩組基向量的橋梁,一個線性變換(“基變換”)存在逆變換其實就是說:兩組基向量都可以表示成對方的線性組合。
理解這些内容隻需要看一張圖片:
如果一組基向量在線性變換之後發生了“降維”,那麼新的基向量就無法表示更“高維”的原本的基向量,這就說明這個線性變換沒有與之對應的逆變換。
有話要說...