就和我上一篇整理一樣,這一篇也是因?yàn)楹闷嫘尿?qū)使之下產(chǎn)生的,在此重申一次,因?yàn)槲也皇谴髮W(xué)數(shù)學(xué)、物理、或資訊學(xué)系,所以以下言論對於某些人可能會(huì)很荒謬。
行列式和矩陣的發(fā)展歷史比較少人提及,不像上一篇的向量有很多資料,此篇整理看起來會(huì)比較沒有連貫性。我的初衷就是想把網(wǎng)路上比較分散的各種資料觀點(diǎn)集合起來變成一篇相對統(tǒng)整的文章。
(以下是內(nèi)文參考的文章(事實(shí)上參考的文章太多了,以下只列出內(nèi)文重點(diǎn)文章):
內(nèi)文統(tǒng)稱以上文章為 見文)
矩陣對高中生(我)來講是很新奇的東西,更甚於向量,
向量的表達(dá)很常用數(shù)對(a,b,c),
國中生學(xué)過直角座標(biāo)之後都應(yīng)該熟悉這種符號,
是矩陣卻是全新的表達(dá)方式
還有和它很像的行列式
我在學(xué)到矩陣之前,非常納悶,向量就算是新教的量,它起碼可以說是一種另類數(shù)字,
矩陣寫成這樣,正方形的也就算了,它甚至還有
長這樣的
又長這樣的
這是在集思廣益玩創(chuàng)意嗎,這麼多種排法,哪天有三角陣,八邊形陣都不奇怪了,
這到底要怎麼用,要怎麼算,為什麼這麼詭異的東西可以被說廣為應(yīng)用在各種科學(xué)領(lǐng)域?
(上面提到的八邊形陣
實(shí)際上應(yīng)該沒這東西吧
這想法的最初來源我忘了,好像是班上哪個(gè)天兵寫出來的。)
在課本裡,我們首先學(xué)到二階行列式,之後就清楚,行列式是可以算出一個(gè)值的表達(dá)方式,用圖像化的方式讓它變得更好做計(jì)算和理解,當(dāng)初的我不清楚矩陣和行列式這兩個(gè)長得很像的東西差在哪裡,我以為矩陣或許像行列式一樣可以算出一個(gè)值,後來才發(fā)現(xiàn)不是這樣。
歷史上也是先出現(xiàn)行列式再出現(xiàn)矩陣,有趣的是,它們的計(jì)算規(guī)則也比它們的表達(dá)方式更早出現(xiàn),
根據(jù)見文1.3和其他一些文件,公認(rèn)最早的行列式規(guī)則出現(xiàn)在1750年,高二也都熟悉的克拉瑪公式(但是之後又發(fā)現(xiàn)其實(shí)此規(guī)則在更早的文件中就已經(jīng)出現(xiàn)了,像是1693年萊布尼茲(Gottfried Wilhelm von Leibniz)就用了類似克拉瑪公式來解方程組),
發(fā)明行列式的方形記法有人說是由柯西先使用類似寫法(也就是上一篇整理提到柯西不等式的發(fā)明者),而大部分人則說凱萊(Arthur Cayley)在1841年發(fā)明,之後此寫法便通行。
另外,范德蒙(Alexandre-Théophile Vandermonde)和拉普拉斯(Pierre-Simon Laplace)在1770年代提出行列式的餘因子降階計(jì)算,
不過,在1770年時(shí),行列式顯然應(yīng)該還不是「方形」的,雖然只要看著三階行列式的那六個(gè)項(xiàng)
aei + bfg + cdh - ceg - bdi - afh
再稍微結(jié)合一下
a(ei-fh) - b(di-fg) + c(dh-eg)
就看得出來現(xiàn)在降階的影子,不過當(dāng)時(shí)數(shù)學(xué)家們怎麼去記憶這些複雜的正負(fù)號排列,顯然不會(huì)是我們現(xiàn)在的
況且,事實(shí)上只有二三階行列式可以用斜線相乘來計(jì)算,到四階以上時(shí),餘因子降階才是標(biāo)準(zhǔn)的計(jì)算規(guī)則,否則會(huì)出現(xiàn)問題。
設(shè)一個(gè)四階行列式
若以斜線相乘計(jì)算,會(huì)得出8項(xiàng)
afkp + bglm + chin + dejo - dgjm - cfip - belo - ahkn
若是以餘因子降階計(jì)算,則會(huì)有24項(xiàng)
正負(fù)規(guī)則如同三階推廣
以最上列的 a b c d 來做降階,
最後就可得出互相都不會(huì)消去的24個(gè)項(xiàng),
和原本斜線算法完全不同,雖然這24個(gè)項(xiàng)也包含斜線算法的8項(xiàng),
但是8項(xiàng)當(dāng)中又只有四個(gè)項(xiàng)的正負(fù)與斜線算法相同:
+afkp +bglm +chin +dejo -dgjm -cfip -belo -ahkn
8個(gè)項(xiàng)當(dāng)中,只有
afkp、chin一樣是正,cfip、ahkn一樣是負(fù)
把二三階的兩個(gè)方法推廣到四階之後,得出兩個(gè)截然不同的結(jié)果,那要如何知道哪一個(gè)才能定義成正確的行列式值?
就是回歸到行列式起源的用途:解方程組。
只要行列式值用在克拉瑪公式得出正確的解,那就是正確的行列式值了。
所以,就來確定一下,
先設(shè)解為a = 1,b = 2,c = 3,d = 4,再挑幾個(gè)係數(shù)組成四元一次方程組,
首先用斜線算法計(jì)算得:a = 44/3,b = 2,c = 5,d = 40/3,
再來用降階算法得:
a = -1/-1 = 1
b = -2/-1 = 2
c = -3/-1 = 3
d = -4/-1 = 4
為了求慎重,把斜線算法結(jié)果代入第一式,得 a+b+c+d = 35
從這結(jié)果看來十分明顯,只有降階算法得出完全正確的結(jié)果,斜線算法雖然算出正確的b,但是整體不符合方程式,所以降階算法名正言順的應(yīng)該被定義成正確的行列式值算法。
這也表示當(dāng)初在行列式還不是方的情況下,提出正確的降階算法的兩人,實(shí)在有先見之明。
矩陣其實(shí)就是把數(shù)字排成方形然後框起來,先不論矩陣複雜的計(jì)算,看起來其實(shí)還滿和藹可親的,從小到大在學(xué)數(shù)學(xué)時(shí),都有一大堆規(guī)矩和寫法,像是國小四則運(yùn)算單元,要一行一行標(biāo)準(zhǔn)的計(jì)算,實(shí)在是酷刑,
相較之下,找?guī)讉€(gè)數(shù)字隨意排成方形,再畫個(gè)框框,這樣就是一個(gè)數(shù)學(xué)物件,第一印象感覺實(shí)在比目前看過的各種數(shù)都要來的有人性。
矩陣裡面橫的名為列,豎向稱為行,橫的數(shù)過去是行數(shù),直的數(shù)下去是列數(shù)。
矩陣的加減一切合理,兩個(gè)矩陣需要是等列等行才能加減,否則就會(huì)多幾個(gè)少幾個(gè),但是乘法就不是這樣,我想第一次看到矩陣乘法的定義大概都不知道它為何這樣乘,即便是做完課本上很生活化的例題,還是很不明白,「這樣的普通計(jì)算為何硬要用矩陣啊?」,就如同課本還提到矩陣的行、列向量一樣很突兀。
就像是見文4所說的,若是不知道矩陣的真正意義和用法,又何以去定義什麼是正確的乘法,如同上面的四階行列式,若沒有克拉瑪公式賦予行列式值意義,又怎可以說斜線算法是錯(cuò)誤的。
在1857年,凱萊(發(fā)明行列式記法那位),發(fā)表了關(guān)於矩陣的研究,其中包含重要的矩陣乘法。
矩陣當(dāng)初是為了簡化線性變換(函數(shù))的標(biāo)記法,把
簡記成
因此,像是高二下教的列運(yùn)算和四個(gè)變換(伸縮、推移、鏡射、旋轉(zhuǎn))等,都是由這點(diǎn)而衍生。
凱萊的乘法也是以這點(diǎn)為原則定義的,兩個(gè)矩陣相乘便是兩個(gè)函數(shù)的複合,也就是先經(jīng)過一個(gè)函數(shù)變換,再經(jīng)過下一個(gè)函數(shù)變換的結(jié)果,
矩陣乘法不符合交換律,原因就是因?yàn)閮纱魏瘮?shù)變換不一定會(huì)有交換性,就像上面提到的鏡射,就沒有交換性,
先對 a 軸鏡射,再對 b 軸鏡射,相比先對 b 再對 a,結(jié)果不一定會(huì)一樣,常常會(huì)不一樣。
兩個(gè)函數(shù),
(
其實(shí)(現(xiàn)代的讀音寫成英文等於Fee,我知道很多人都念Phi)函數(shù)這個(gè)名字應(yīng)該早就被用走了,
這裡是我個(gè)人興趣才用希臘字母)把函數(shù)代入
f 函數(shù),得
再把 x 項(xiàng) y 項(xiàng)係數(shù)合併
最後簡寫成矩陣
這複合函數(shù)(矩陣)就是
f 矩陣 乘以
矩陣的結(jié)果,
若是將兩者交換,就變成
很明顯不相等。
凱萊就這樣定義出一個(gè)劃時(shí)代的乘法定義,雖然這樣的複合函數(shù)計(jì)算之前就有,但是他是首先想到用在矩陣上面的,
線性變換的應(yīng)用現(xiàn)在非常廣泛,定義來代表線性變換的矩陣好寫又好記,所以這看似只是把數(shù)字排在一起的矩陣,自然也被應(yīng)用在各領(lǐng)域,
但究竟是線性變換促成矩陣的泛用,還是矩陣造就線性變換的應(yīng)用,這就不得而知了。
而對於文章一開始的八邊形陣,我的老師回答:你當(dāng)然可以自己創(chuàng)造很多形狀的陣,但是你得要定義出有用的計(jì)算法則,這樣排才能有意義。就是因?yàn)榫仃嚤欢x出有用的運(yùn)算,也才會(huì)被寫在課本裡教給你們。
矩陣乘法還有一個(gè)性質(zhì),就是
(det是行列式(determinant)的縮寫,意思是決定性因素)
換句話說,這性質(zhì)表示「兩個(gè)函數(shù)的係數(shù)行列式值相乘,會(huì)等於它們複合後函數(shù)的係數(shù)行列式值。」
也就是
這也提示了一點(diǎn),剛剛雖然說矩陣乘法不可以交換,交換後的結(jié)果不相等,
可是視角換到行列式的世界後,卻發(fā)現(xiàn)其實(shí)是可以交換的,當(dāng)然,僅在行列式的世界裡成立。
這個(gè)性質(zhì)當(dāng)初我問很多個(gè)數(shù)學(xué)老師,也包含知名補(bǔ)習(xí)班老師,有的說因?yàn)榫仃囅喑说男辛惺酱砻娣e變化,有的臨時(shí)想不到證明,有的甚至不知道這性質(zhì),
我個(gè)人想要看到的是直接由行列式來證明,或是經(jīng)由和函數(shù)的關(guān)係證明,不經(jīng)過矩陣性質(zhì),畢竟這個(gè)性質(zhì)可是聽說在1812年柯西就證明過了,表示這性質(zhì)不需要經(jīng)過矩陣也能證明,
我試過用克拉瑪公式,但是最後沒有成功,
後來看到見文5,才知道原來證明如此簡單,這就印證了人在學(xué)習(xí)和習(xí)慣太多東西之後,反而看不出最簡單的那條路。
證明重點(diǎn)就只是行列式的這個(gè)性質(zhì)
以下
再提出數(shù)字
然後合併係數(shù)
我個(gè)人很著迷於這個(gè)性質(zhì),它巧妙的連結(jié)了矩陣和行列式,也提示了矩陣乘法和複合函數(shù)的關(guān)係,這性質(zhì)對我個(gè)人來說有如歐拉公式一般神奇
也許有人會(huì)生氣,兩個(gè)公式的層級相差甚遠(yuǎn),一個(gè)是純數(shù)學(xué)的美妙公式,一個(gè)則只是一般人不會(huì)注意到的小石頭。
的確,數(shù)學(xué)課的重點(diǎn)在於矩陣乘法的定義和計(jì)算等等,這個(gè)性質(zhì)一般只是稍微帶過,我學(xué)校的第一類組甚至完全沒講這個(gè)性質(zhì),好玩的是段考選擇題卻考出來,我想很多人一定為了這個(gè)比矩陣乘法還早出現(xiàn)的基本性質(zhì),戰(zhàn)戰(zhàn)兢兢的乘了好幾組矩陣來確定吧。
(或許到了四階證明方法會(huì)有差異,不過就不追究下去了)
上面提到行列式的英文determinant,
當(dāng)初的行列式有很多名字同時(shí)存在,柯西先用這名字,之後由有名的高斯(Johann Karl Friedrich Gau?(?讀音等於ss))在1801年使用這名字,從此定下來。
一說是因?yàn)樾辛惺綄Ψ匠探M的解是「決定性因素」,一說行列式是決定矩陣可逆的因素,
但是我覺得,矩陣可逆的探討,關(guān)鍵來自矩陣乘法的定義,但是矩陣乘法直到1857年才出現(xiàn),
高斯在56年前應(yīng)該不是因?yàn)橛袩o反矩陣才取這名字,所以我比較相信前者的說法。
這裡想講一個(gè)我自己覺得超級方便很常用,但是看起來卻很少同學(xué)用的性質(zhì),
這個(gè)性質(zhì)表示你可以把好幾個(gè)矩陣的常數(shù)都提出來,先乘完矩陣部分,再和乘完的常數(shù)部分相乘,遇到矩陣裡有很多分?jǐn)?shù)時(shí)很好用,
像是下面的例子,用這個(gè)性質(zhì)就很方便:
(題目滿常遇到常數(shù)會(huì)自己消掉~ 然後只要處理剩下的矩陣就好了)
還有
(這種是最常遇到的,乘完之後再和常數(shù)乘,有時(shí)答案幸運(yùn)是整數(shù),也有時(shí)是分?jǐn)?shù))
凱萊在發(fā)表矩陣乘法當(dāng)時(shí),也發(fā)表了矩陣的各個(gè)特徵物件。
一個(gè)二階方陣 A
設(shè)有一個(gè)常數(shù) C 和一個(gè)向量X = (x,y) 滿足一個(gè)方程式:
也就是 AX = CX,
為了求出 C 和 X,把右邊移項(xiàng)到左邊,再提出 X,得
這時(shí)因?yàn)橐S持矩陣相乘的封閉性(矩陣乘完應(yīng)該還是矩陣),所以加上一個(gè)單位矩陣 I,
同時(shí)把0改為 O 矩陣,也就是元素都是0的矩陣
再轉(zhuǎn)成方陣化簡一下得
這時(shí)思考一下,我們想要 X 不為 (0,0),就表示 (A-CI) 應(yīng)該不會(huì)有反方陣,否則只要在等號兩邊同乘反方陣,就會(huì)知道
而矩陣沒有反方陣的條件,就是矩陣行列式值等於0,所以
這個(gè)就是二階矩陣的特徵多項(xiàng)式,
求出來的C就叫做特徵值。
凱萊對於特徵多項(xiàng)式提出一個(gè)凱萊─漢彌爾頓定理,
定理表示,若在特徵多項(xiàng)式裡,特徵值(C) 的位置,代入原本的矩陣,
結(jié)果也會(huì)等於0,也就是O矩陣
其實(shí)這是凱萊一人發(fā)現(xiàn)的,名字會(huì)加上漢彌爾頓,是因?yàn)閯P萊說他是在聽過漢彌爾頓的四元數(shù)演講時(shí)想到的,所以加上漢彌爾頓。
凱萊當(dāng)初只證明到三階方陣的情況,並說再上去的證明是沒有必要的,後來才由弗洛貝尼伍斯
(Ferdinand Georg Frobenius)在1875年推廣證明。
這個(gè)式子其實(shí)高二下也應(yīng)該會(huì)很熟悉,或許數(shù)學(xué)老師會(huì)有略提過,因?yàn)橛蟹N題目就是以這個(gè)下去出題:
有一個(gè)二階方陣
A,設(shè)它滿足
,求出數(shù)對
(x,y)。
這個(gè)題目其實(shí)算簡單,只要算出A平方之後解方程組就好,而若是知道這定理,只消幾秒就可算出來了。
這個(gè)定理聽說也可以用在計(jì)算矩陣的次方,
將上式移項(xiàng)得
知道四個(gè)元素,就可以很快算出A平方,這時(shí)要算A三次方,只要把A平方乘以A就可得出,四五次方以後同理,
這個(gè)方法聽說可以化成程式語言交給電腦計(jì)算。
(不過我覺得對電腦來說,直接把 A 做平方 和 計(jì)算 (a+d)A-(ad-bc)I 應(yīng)該不會(huì)有太大差別,況且之後同樣是連續(xù)的矩陣相乘,兩種方法誰優(yōu)誰劣,或許就看寫程式的人的智慧了吧。)
再來就設(shè)實(shí)際數(shù)字算算看,設(shè)一個(gè)矩陣B
它的特徵多項(xiàng)式為
得出特徵值 C = 3、-2 ,也就是對於這個(gè)矩陣,會(huì)有特徵值 3 和 -2 分別滿足,
算出在特徵值 3 的時(shí)候,(X,Y)是符合方程式 X = Y 的所有解,也就是 (t , t) ,
而在 -2 時(shí),則是滿足方程式 3X = -2Y,也就是 (-2t , 3t),
而這兩個(gè)向量 (t , t)、(-2t , 3t) 就是分別對應(yīng)兩個(gè)特徵值的特徵向量,
把所有的數(shù)字代入 t,得出符合條件的所有向量,以原點(diǎn)為起點(diǎn)的這些向量就會(huì)形成兩條直線,
也就是說,在這兩條直線上所有的點(diǎn)或方向向量,經(jīng)過B矩陣變換後,依然在各自原本的直線上。這種特性在很多地方用得到,不過這裡不繼續(xù)多談。
而會(huì)不會(huì)有不同特徵值最後得出同樣的特徵向量?如果會(huì)的話,就表示這個(gè)向量和矩陣相乘,結(jié)果會(huì)有很多個(gè),分別都是和不同特徵值相乘,這情況應(yīng)該是不會(huì)發(fā)生才對,所以說,有幾個(gè)特徵值,就會(huì)得出幾個(gè)不同的特徵向量。
特徵向量可以用在一個(gè)地方,就是矩陣的對角化,
在高二下也會(huì)看到一種題目,裡面出現(xiàn)一個(gè)讓人滿有印象的相乘形式:
這個(gè)東西的特別之處在於,把它做次方計(jì)算時(shí),中間的
都會(huì)消掉,最後只剩下
我們也知道,一個(gè)矩陣若是只有主對角線(左上到右下)有數(shù)字,其他都是0,次方計(jì)算就只要把這些數(shù)字做次方就可以了,
所以,我們只要在此找出適當(dāng)?shù)?font color="#0000ff">
P矩陣,使
變成
對角矩陣,就可以把矩陣次方變成數(shù)字次方計(jì)算,次方完之後就在左右兩邊再各乘
P、
,就可以得出A的n次方了
。其實(shí)這個(gè) P 就是取特徵向量排起來變成矩陣,而所有數(shù)字代入 t ,對角化完都會(huì)是一樣的結(jié)果,所以這裡取 (1,1) 和 (-2,3),
所以
(反方陣就是使用上面那個(gè)提出常數(shù)性質(zhì)的好時(shí)機(jī),高二下時(shí)最常用在這裡)
然後把三個(gè)矩陣依照上面的順序乘起來,就完成了對角化:
可以看到對角上的數(shù)字就是特徵值,而且會(huì)對應(yīng)P矩陣中特徵向量放的位置順序,若是把P改成
則對角化後的矩陣就會(huì)變成
為什麼特徵向量剛好符合對角化需要的P,這裡大概可以想成,因?yàn)樘蒯缦蛄康男再|(zhì)就是在矩陣右邊相乘之後,會(huì)等於只是乘上特徵值,而又再經(jīng)過反P矩陣處理過後,這個(gè)乘上的特徵值便會(huì)在對角上顯現(xiàn)出來。
那所有矩陣都可以對角化嗎?不是
以下這個(gè)矩陣就不能對角化
它的特徵多項(xiàng)式為
特徵值只有 2,特徵向量是 (t , -t),
如果要把它對角化,因?yàn)槭侵馗员硎拘枰膬蓚€(gè)特徵向量都是(t , -t),P就會(huì)是
而想要計(jì)算這個(gè)矩陣的行列式來求反方陣時(shí),我們都知道,行列式任兩行或兩列相等,行列式值等於0,
也就是這個(gè)矩陣沒有反矩陣,
對角化宣告失敗。
所以說,n 階方陣可以對角化的條件,就是特徵值要有 n 個(gè)。
因?yàn)榘婷嫣L,所以文章在此切開,接續(xù)2.1
(2017年6月後敘:以上所講到不可對角化的條件其實(shí)有誤,真正可對角化的條件是特徵向量要有 n 個(gè),這時(shí)一個(gè)特徵值可以對應(yīng)多個(gè)特徵向量。也就是特徵值有重根的矩陣還是可能可對角化,對角化之後還是會(huì)在對角線上出現(xiàn)特徵值。而上面那個(gè)矩陣因?yàn)樘蒯缰?不存在第二個(gè)特徵向量,所以不可對角化。)