特徵值怎麼理解?矩陣不會轉向的那些方向

把一張橡皮膜放在桌上,在上面朝各個方向畫一百支短箭頭,然後拉這張膜,讓它往橫向伸長的程度是往上伸長的兩倍。看看那些箭頭。幾乎所有箭頭都會在膜變形時偏向水平方向。只有兩支完全不動:原本水平的箭頭仍然水平,長度變成兩倍;原本垂直的箭頭仍然垂直,長度不變。
這兩支箭頭就是這個拉伸的特徵向量,而 2 和 1 這兩個數就是它的特徵值。這個主題裡所有的內容,包括含行列式的公式、特徵多項式、對角化,以及矩陣旋轉時出現的複數,都是在一臺光用眼睛看不出這些特殊箭頭的機器上,把它們找出來的方法。
如果你還沒讀過矩陣怎麼理解,這一篇就是它的續集。上一篇建立了一個圖像:矩陣是一臺機器,送進去一趟行程,吐出一趟行程。這一篇對這臺機器只問一個問題:哪些行程是你不會改動的?
矩陣是一臺機器,而大多數箭頭會被轉向
矩陣 接收一個向量 ,產生一個新向量 。對大多數輸入來說,輸出會指向新的方向。推移(shear)會讓箭頭傾斜。旋轉會讓每個箭頭轉過同樣的角度。在某個方向拉得比另一個方向更強的伸縮,會把箭頭拖向拉力較強的那個方向。
把矩陣想成一座風洞。箭頭進去,被風吹到,出來時彎了。有趣的問題不是一般的箭頭會怎樣,而是有沒有哪支箭頭是風吹不彎的,出來時指的方向和進去時完全一樣,只是變長或變短。
拒絕轉向的箭頭
的特徵向量,是機器讓它留在自己那條直線上的非零向量 :
希臘字母 lambda,,就是特徵值:箭頭被縮放的倍數。這個等式說的是,機器作用在這支特定箭頭上,和單純乘以一個數沒有差別。沿著特徵向量,矩陣不再是矩陣,而變成了一個純量。
特徵值用一個數就帶來很多資訊:
- 表示機器把那個方向拉長。
- 表示它把那個方向縮短。
- 表示它完全不動那個方向。
- 表示它先把箭頭翻成反方向,再做縮放。
- 表示它把那個方向壓成一無所有。機器沿著那條直線把空間壓扁了。
要注意特徵向量不是什麼。它不是單獨一支箭頭,而是一個方向:如果 是特徵向量,那麼 也是,特徵值相同。而零向量依定義被排除在外,因為每個矩陣都會把零送到零,這樣每個數都會是特徵值,整個概念就沒有意義了。
公式從哪裡來
教科書直接給你 ,好像它是從天上掉下來的。其實它來自上面那句話。
從 開始。右邊是一個數乘以一個向量。要把它移到等號另一邊,需要把它寫成矩陣形式,而 等同於 ,其中 是什麼都不做的單位矩陣。現在相減:
把它讀成關於一臺新機器 的敘述。它接收一支非零箭頭 ,卻回傳零向量。一臺能把真正的箭頭送成一個點的機器,至少已經把空間的某個方向壓扁了。在矩陣那篇文章裡我們看到,行列式衡量的是一臺機器處理後還剩多少面積,所以壓扁的機器行列式為零:
整個推導就是這樣。特徵值就是讓機器 壞掉的那些 值,而特徵向量就是它沿著壞掉的那些方向。把行列式展開會得到一個關於 的多項式,稱為特徵多項式,它的根就是特徵值。對 矩陣來說它是一元二次式;對 矩陣則是 次式,這也是為什麼 矩陣最多有 個特徵值。
慢慢走一遍例題
取矩陣
把對角線上都減去 ,再取行列式:
令它等於零並因式分解:,所以特徵值是 與 。
接下來求每個特徵值對應的方向。對 ,解 :
兩列都說 ,所以特徵向量是 的任意倍數。拿原本的機器驗算:。對角線方向的箭頭出來時變成三倍長,指向相同的方向。
對 ,兩列都說 ,所以特徵向量是 的任意倍數,而確實 。反對角線方向的箭頭完全不受影響。
現在你可以用一句話描述這個矩陣了,這是光看四個元素做不到的:它沿著對角線方向把空間拉長為 3 倍,而反對角線方向保持不變。平面上其他所有箭頭都會被拖向對角線方向,因為對角線方向的分量成長得比另一個分量快三倍。
特徵值告訴你這臺機器的什麼
特徵多項式帶出兩個值得記住的事實。
特徵值的乘積等於行列式。在例題中,,而 的行列式是 。這是合理的:行列式是整臺機器對面積的縮放倍數,如果機器沿一個方向拉長為 3 倍、沿另一個方向為 1 倍,面積就放大 3 倍。
特徵值的總和等於矩陣的跡(trace),也就是對角線元素的總和。這裡 。這兩個事實都是快速檢查你的計算有沒有出錯的方法。
更廣泛地說,特徵值是這臺機器的一份頻譜。數值大的特徵值,對應的是機器反覆作用許多次之後佔優勢的方向。一臺特徵值為 與 的機器,作用十次後,會把第一個特徵向量拉長 倍,第二個則是 倍。任何起始箭頭只要含有一絲第一個方向的成分,最後都會幾乎完全對齊那個方向。這就是為什麼反覆進行的過程會穩定在某個特徵向量上:它是勝出的方向。
複數特徵值代表旋轉
把平面旋轉 90 度。每個箭頭都轉向。沒有任何方向保持不動,所以應該沒有特徵向量,而公式也同意這一點。旋轉矩陣是
它的特徵多項式是 ,沒有實數解。它的特徵值是 與 。
這不是方法失敗了,而是方法在告訴你一件真實的事:這臺機器在旋轉,而旋轉在實數平面上沒有固定的方向。複數特徵值是扭轉的標誌。旋轉角 的一般旋轉矩陣,特徵值是 與 ,也就是歐拉恆等式裡那些會旋轉的數;而特徵值像 的矩陣,則會向內螺旋,同時旋轉又縮小。如果複數對你來說仍像是一種把戲,虛數怎麼理解用 代表四分之一圈的圖像建立直覺,而這正是它在這裡扮演的角色。
對角化:換個座位,機器就變成乘法
假設一個 矩陣有 個指向真正不同方向的特徵向量。那麼這些特徵向量就可以當成一組新的坐標軸。用每個特徵向量各含多少來描述每一個向量,機器就變得簡單:它只是把每個坐標乘上對應的特徵值。
寫出來就是,若 是以特徵向量為行的矩陣, 是由特徵值組成的對角矩陣,則
從右往左讀。 把向量換成特徵向量坐標, 縮放每個坐標, 再換回來。機器沒有變,只是你找到了一個座位,從那裡看過去,它就像一串數字。
好處在於次方。把機器作用一百次,意思是
而 只是把每個特徵值各自取一百次方。原本要做一百次矩陣乘法的計算,變成幾個純量的乘法。關於矩陣的每一個長期問題,例如一個族群經過五十個世代會怎樣、隨機漫步最後會收斂到哪裡、振動如何衰減,都是在問 。
為什麼各個領域都在找特徵向量
一旦你把特徵向量看成反覆進行下會勝出的方向,各種應用就不再像一份清單,而像是同一個想法。
- PageRank。 Google 最初的排名,就是一個描述哪些網頁連到哪些網頁的巨大矩陣中,特徵值為 1 的特徵向量。它是當你再多順著連結走一步時,仍保持不變的注意力分布。
- 微分方程。 方程組 的解,是由沿著各特徵向量的 組成。正的特徵值會成長,負的會衰減,複數的會振盪。特徵值就是這個系統的速率。拉普拉斯轉換是同樣在尋找指數行為,只是用積分取代行列式來進行。
- 振動。 橋梁、吉他弦或分子都有自然頻率,而它們就是其勁度矩陣的特徵值。特徵向量則是它振動時的形狀。
- 資料。 主成分分析找的是共變異數矩陣的特徵向量。特徵值最大的特徵向量,就是資料變化最大的方向,也就是你想概括資料時會選的第一個軸。
- 量子力學。 可觀測量是算符的特徵值。一次測量會得到其中一個特徵值,而特徵向量是系統會穩定下來的狀態。
每一種情況用的方法都一樣:找出機器不會動的方向,複雜的行為就化為沿這些方向的乘法。
錯誤從哪裡來
這個主題的錯誤很固定,而且大多來自失去了圖像。
接受零向量。 解 時,永遠允許 。那不是特徵向量。如果你得到的唯一解是零,表示你用錯了 。
期待只靠一列就得到答案。 在例題中, 的兩列說的是同一件事,。這種重複不是錯誤,而是壓扁的結果。如果兩列給出的是獨立的方程式、只有零解,那這個特徵值就是錯的。
以為特徵向量永遠夠多。 兩列為 與 的推移矩陣,只有一個重複的特徵值 ,卻只有一個特徵向量方向。它無法對角化。遇到重複的特徵值,要檢查而不是想當然。
搞混這兩個詞。 特徵值是一個數。特徵向量是一個方向。題目只問其中一個時,常常需要另一個作為過程中的一步,而交出錯誤類型的答案,是最常見的失分方式。
特徵多項式的符號失誤。 對 矩陣,多項式永遠是 。照這個形式寫,並檢查兩根的乘積是否等於行列式,就能抓到大部分失誤。
沒人要求卻自己單位化。 特徵向量是那條直線上任何非零向量。把它縮放成長度 1,有時題目會要求,但多半是可有可無;題目沒說就不要做,而且做的時候絕不能弄丟方向。
Math Zen 能幫上什麼
機器拉長某些方向、轉動另一些方向的圖像,值得你盯著看一個小時。至於機械式的步驟,也就是對角線減 、展開行列式、因式分解、回代求方向,則值得做三十道題,因為上面每一種錯誤都是習慣,只有反覆練習才能改掉。
Math Zen 的矩陣主題會產生全新的特徵值題目,並核對你的作答,從 特徵多項式,到特徵向量,再到跡與行列式的檢查,也包括它們所依賴的行列式與反矩陣。每道題旁邊的解說都呈現壓扁的圖像,而不只是代數,讓公式始終連著它成立的原因。
重點整理
矩陣會讓大多數箭頭轉向。特徵向量是它不會轉向的箭頭,而特徵值就是它改為把那支箭頭伸縮的倍數。公式 只是在說: 必須沿著特徵向量把空間壓扁,而壓扁的機器行列式為零。複數特徵值表示機器在旋轉,對角化是從機器看起來像單純乘法的座位去描述它,而反覆進行的過程最後會落在特徵值最大的特徵向量上,這就是為什麼搜尋引擎、橋梁與族群,最後都歸結到同一個計算。
找出機器不會動的方向,這臺機器就不再神祕。
常見問題
- 特徵向量用最簡單的話怎麼說?
- 矩陣的特徵向量,就是這個矩陣不會讓它轉向的方向。把指向那個方向的箭頭交給矩陣,它還給你的箭頭仍然指向同一個方向,只是變長、變短或反向。箭頭被縮放的倍數就是特徵值。幾乎所有其他箭頭出來之後都會指向新的方向。
- 為什麼要解 det(A − λI) = 0 才能求出特徵值?
- 如果 A 乘以 v 等於 λ 乘以 v,那麼對於非零向量 v,(A − λI) 乘以 v 就等於零向量。一個能把非零箭頭送成零的矩陣,已經把空間壓扁了,而壓扁的機器行列式為零。所以特徵值正好就是讓 det(A − λI) 變成 0 的那些 λ 值。
- 矩陣可以沒有實數特徵值嗎?
- 可以。旋轉 90 度的矩陣會讓每個箭頭都轉向,所以沒有任何實數方向保持不動,特徵方程式也沒有實數根。它的特徵值是複數 i 與 −i。複數特徵值,正是矩陣除了伸縮還會旋轉的標誌。
- 特徵值與特徵向量有什麼差別?
- 特徵向量是一個方向,是矩陣讓它留在自己那條直線上的箭頭。特徵值是一個數,是矩陣沿著那個方向把箭頭拉長、壓縮或反向的倍數。每個特徵向量都對應一個特徵值;同一個特徵值可以由好幾個特徵向量共用。
- 特徵值到底用在哪裡?
- 它們告訴你一個反覆進行的過程最後會穩定成什麼樣子。Google 的 PageRank 就是連結矩陣中特徵值為 1 的特徵向量,橋梁的自然頻率是其勁度矩陣的特徵值,微分方程組中的成長或衰減速率是特徵值,而主成分分析則是挑出資料共變異數矩陣的特徵向量。


