tft每日頭條

 > 生活

 > 矩陣的特征值特征向量如何求

矩陣的特征值特征向量如何求

生活 更新时间:2024-12-02 14:57:12

今天和大家聊一個非常重要,在機器學習領域也廣泛使用的一個概念——矩陣的特征值與特征向量。[1]


我們先來看它的定義,定義本身很簡單,假設我們有一個n階的矩陣A以及一個實數lambda,使得我們可以找到一個非零向量x,滿足:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)1


如果能夠找到的話,我們就稱lambda是矩陣A的特征值,非零向量x是矩陣A的特征向量。[2]


幾何意義


光從上面的式子其實我們很難看出來什麼,但是我們可以結合矩陣變換的幾何意義,就會明朗很多。


我們都知道,對于一個n維的向量x來說,如果我們給他乘上一個n階的方陣A,得到Ax。從幾何角度來說,是對向量x進行了一個線性變換。變換之後得到的向量y和原向量x的方向和長度都發生了改變。


但是,對于一個特定的矩陣A來說,總存在一些特定方向的向量x,使得Ax和x的方向沒有發生變化,隻是長度發生了變化。我們令這個長度發生的變化當做是系數lambda,那麼對于這樣的向量就稱為是矩陣A的特征向量,lambda就是這個特征向量對應的特征值


求解過程


我們對原式來進行一個很簡單的變形:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)2


這裡的I表示單位矩陣,如果把它展開的話,可以得到一個n元的齊次線性方程組。這個我們已經很熟悉了,這個齊次線性方程組要存在非零解,那麼需要系數行列式


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)3


不為零,也就是系數矩陣的秩小于n。


我們将這個行列式展開:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)4


這是一個以lambda為未知數的一元n次方程組,n次方程組在複數集内一共有n個解。我們觀察上式,可以發現 lambda 隻出現在正對角線上,顯然,A的特征值就是方程組的解。因為n次方程組有n個複數集内的解,所以矩陣A在複數集内有n個特征值。


我們舉個例子,嘗試一下:


假設:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)5


那麼


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)6


我們套入求根公式可以得出使得 f(lambda) = 0 的兩個根 lambda1 lambda2,有:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)7


這個結論可以推廣到所有的n都可以成立,也就是說對于一個n階的方陣A,都可以得到:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)8


案例


我們下面來看一個例子:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)9

我們帶入


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)10

可以得到:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)11


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)12


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)13


使用Python求解特征值和特征向量


在我們之前的文章當中,我們就介紹過了Python在計算科學上的強大能力,這一次在特征值和特征矩陣的求解上也不例外。通過使用numpy當中的庫函數,我們可以非常輕松,一行代碼,完成特征值和特征向量的雙重計算。


我們一起來看代碼:


import numpy as np a = np.mat([[3, 1], [1, 3]]) lam, vet = np.linalg.eig(a)

np.linalg.eig 方法會返回兩個值,第一個返回值是矩陣的特征值,第二個返回值是矩陣的特征向量,我們看下結果:


矩陣的特征值特征向量如何求(線性代數精華矩陣的特征值與特征向量)14

這裡的特征向量為什麼是0.707呢?因為Python自動幫我們做好了單位化,返回的向量都是單位向量,不得不說實在是太貼心了。


總結


關于矩陣的特征值和特征向量的介紹到這裡就結束了,對于算法工程師而言,相比于具體怎麼計算特征向量以及特征值。理解清楚它們的概念和幾何意義更加重要,因為這兩者在機器學習的領域當中廣泛使用,在許多降維算法當中,大量使用矩陣的特征值和特征向量。


對于降維算法的原理,這裡不過多贅述,我們會在以後的文章當中更新相關内容。感興趣的同學可以小小期待一下。


文章到這裡就結束了,這也是線性代數專題的最後一篇文章,短短六篇文章當然不能涵蓋線性代數這門學科當中的所有知識點,但實際當中常用的内容基本上已經都包括了。


今天的文章就到這裡,如果覺得有所收獲,請順手點個關注或者轉發吧,你們的支持是我最大的動力。


參考資料


[1]《線性代數-第五版》: 上海交通大學出版社。

[2] 程序員的數學2: 結城浩

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved