矩陣的特徵:特徵值,特徵向量,行列式,trace

矩陣的特徵向量跟特徵值的英文名字分別是 eigenvector 跟 eigenvalue,這倆概念非常非常有用,根據他們倆可以外延出很多有趣的功能。大部分同學可能腦子裡想一下還能記得他們倆是怎麼計算出來的,但是他們為什麼可以代表一個矩陣的「特徵」呢?除了這倆,相信大多數同學都不記得矩陣的行列式是個什麼東西了,總之不太直觀。相比較而言,矩陣的跡(trace)這個概念就比較直觀,就是主對角線上的元素之和。本篇文章主要圍繞這四個概念,講一下這四個東西是如何刻畫矩陣的特徵跟他們之間的關聯。

「eigen」在德語里的意思是「自身的」,「固有的」,在我們漢語里把它翻譯成「特徵」;無論德語還是漢語,都表達出了特徵值跟特徵向量其實是一個矩陣內在的,獨有的東西。特徵值跟特徵向量是定義在方陣上的,為了方便通過圖表描述,我們從最簡單的2*2方陣入手:把方陣Ain R^{2	imes 2}理解成二維平面上的一個映射,平面上任意一個向量xin R^{2	imes 1}都可以被映射成一個新的向量x=Ax,畫在圖上就是

對比著倆圖可以發現,對於一個固定的矩陣A,一般的向量被他transform之後都會改變方向,但是有一些特殊的向量,被A映射了之後還是保持它本來的方向,改變的只是它的模長。這些特殊向量的方向不變性表達出來就是這樣的:

等式的右邊,v表示向量原本的方向,lambda表示向量模長的變化。特徵向量的定義就是這些特殊的向量。那麼特徵向量究竟有什麼好處呢?假設現在有個場景,我們需要把一個向量給transform 100次,也就是計算一下A^{100}v。最簡單粗暴的辦法是直接計算100次矩陣乘法;稍微聰明一點的方法是先計算序列[A,A^2,A^4,A^8,A^{16}....A^{100}],這樣只要十幾次次矩陣乘法就能搞定;不過最方便的還是要從特徵值跟特徵向量入手。假設v是A的特徵向量,並且能滿足上面這個式子,於是有

可以發現如果v是特徵向量,就不需要計算任何矩陣乘法了,只需要計算十幾次乘法就行了。其實對於任意向量winmathcal{R}^{2	imes 1},我們仍然可以從特徵向量入手,w可以由A的特徵向量線性組成而成:

這樣來看,特徵向量會大幅簡化某些矩陣運算,那麼要如何計算特徵向量呢?從特徵向量的定義出發:

從這個方程里,我們不但需要得到v,也需要得到lambda。把原問題轉化成方程(1)之後,可以發現方程(1)沒有常數項,以二維為例可以把(1)寫成:

這個方程組想要有非零解,必須得滿足frac{a}{c}=frac{b}{d} 也就是 (a,c) 跟 (b,d) 共線。也就是教科書上說的矩陣A不滿秩(p.s. 方陣的秩定義為矩陣中線性不相關的行跟列的個數)。教科書上還告訴我們不滿秩的充要條件是矩陣的行列式等於零。矩陣的秩的概念比較容易理解,行列式卻沒有這麼直觀。其實 determinant 這個單詞被翻譯為行列式個人認為不是很傳神,感覺 determinant 也需要一個帶點「特徵」含義的中文名。

與矩陣的秩相似,行列式也是一個數值。還是把矩陣當成一個映射,那麼 (0, 1) 跟 (1, 0) 這對基可以被映射成e_1,~e_2 ,如圖所示,那麼矩陣A的行列式就被定義為由e_1,~e_2 這兩個向量延伸出來的平行四邊形的面積:

用這種方式讓一個矩陣跟一個數值產生關係簡直是神來之筆。更神奇的是這樣做,特徵值,特徵向量,行列式就關聯起來了。不滿秩要求行列式為零,那麼什麼時候一個平行四邊形的面積會變成0呢?可以發現,當e_1,~e_2 這倆向量平行的時候,就沒什麼平行四邊形了,平面上就只剩下了一條線段:

什麼樣的矩陣會產生這種效果呢?對於二維矩陣來說,只要它的兩個行向量共線就可以。重新理一下我們現在的邏輯線條:想讓方程組(1)有非零解,必須讓它的行向量共線,想讓行向量共線,只需要A的行列式為零;二維矩陣的行列式等於平行四邊形的面積,三維矩陣的行列式對應的是平行六面體的體積....更高維度上也可以延伸出同樣的類似於「體積」的定義。

那麼面積要怎麼算呢?還是以二維平面為例,兩個向量構成的平行四邊形的面積可以由下面這個公式計算 (粉紅的圖片來自維基百科)

令這個計算面積的公式等於零:

這個方程就是課本上的特徵方程,方程的解就是特徵值。特徵方程的解也可以寫成這種形式:

方程(2)跟方程(3)必須是一回事。觀察一下這倆方程,可以發現(2)的常數項是 ad-bc; 方程(3)的常數項是lambda_1cdot lambda_2 。結合前面講的矩陣A的行列式(平行四邊形的面積)可以發現:|A| = ad-bc = lambda_1lambda_2;對,這不是巧合,實際上在任意維度的矩陣上同樣可以證明

也就是行列式等於特徵值的乘積

到此為止,這哥三通過各種神來之筆被聯繫在了一起,下面我們再來分析下兩種特殊的矩陣對應的這三個值。讓我們回去看看A^{100}v=lambda^{100}v ,在這個式子中,如果lambda<1,那麼經過多次迭代, A^{100}v=0;如果lambda>1, 那麼A^{100}v=infty 。於是,當且僅當lambda=1的時候經過多次迭代,還能剩下一個穩定的向量。這個性質是不是有點似曾相識?沒錯,馬爾科夫鏈的概率轉移矩陣就是這樣的矩陣。在馬爾科夫鏈中,經過足夠多次跳轉之後,狀態分布趨向一個穩定的值。馬爾科夫鏈的概率轉矩陣需要滿足的條件是:每一行都滿足行元素之和為1。相反方向也同樣成立:如果一個矩陣滿足每一行的元素之和都是1,那麼它必定有一個為1的特徵值。

除了馬爾科夫概率轉移矩陣,還有一種矩陣的特徵向量有特殊的性質:對稱矩陣的特徵向量相互之間正交。證明如下,對於任意兩個向量x,y 跟矩陣 A, 有

如果A是一個對稱矩陣,並且x,y分別是A的兩個不同的特徵向量對應的特徵值分別為lambda,mu ,那麼便有

lambda 
e mu 為了讓上式滿足,只有令langle x, y 
angle =0 即特徵向量之間兩兩正交。這個性質非常非常有用,在我們的降維繫列裡面會常常用到。

最後輪到矩陣的trace了,個人覺得trace的中文翻譯就更渣了,居然就直勾勾的叫作跡。。。trace的英文名字感覺還跟它的物理意義挺搭的:拿到一個矩陣,我們沿著主對角線往下走到最後,所有元素的和就是trace:trace(A)=sum A_{ii}

下面,高能的部分來了:trace(A) = sum lambda_{i}矩陣的trace等於特徵值之和,也就是說矩陣的主對角線元素之和等於它的特徵值之和。對於這個性質作者暫時也還沒能想到一個直觀的解釋,證明的思路跟證明前面的那個行列式等於特徵值之和類似,要從特徵方程的表達式入手。

本篇文章取名叫做矩陣的特徵,我們圍繞著特徵值,特徵向量,行列式,trace這四個概念,重點講了一下他們之間的聯繫。線性代數是大一上學期開的一門基礎課,其實作者當年上課的時候大部分時間都不知所云,弄懂了幾道練習題之後,還以為線性代數無非是弄兩下矩陣的乘法,照著課本上的公式算幾個東西這麼簡單。後來隨著學習工作的深入,感覺線性代數真的是博大精深,充斥著各種神來之筆,強烈建議看下這篇文章《理解矩陣》。


推薦閱讀:

[數據分析與可視化 14] 行列式的幾何直觀
將線性代數形象化(三) · 行列式
行列式介紹[MIT線代第十八九課]
一道行列式,最後結果的係數有什麼方法求?
絕望的行列式

TAG:线性代数 | 特征值 | 行列式 |