python3與線性代數 特徵值 特徵向量 相似對角化

特徵值與特徵向量

特徵值的英文是 eigenvalue 特徵向量的英文是 eigenvector。

沒錯,eigen就是特徵的前綴。

什麼是特徵值和特徵向量呢?

設 A 是n階方陣,如果存在數m和非零n維列向量 x,使得 Ax=mx 成立,則稱 m 是矩陣A的一個特徵值(characteristic value)或本徵值(eigenvalue)。非零n維列向量x稱為矩陣A的屬於(對應於)特徵值m的特徵向量或本徵向量,簡稱A的特徵向量或A的本徵向量。

如何用python求特徵值和特徵向量

在numpy中已經有了現成的方法。就是使用np.linalg.eig函數。

python3與線性代數 特徵值 特徵向量 相似對角化

eig函數,返回兩個值,第一個是特徵值,多重的特徵值會返回多次。第二個是特徵向量,而且返回的是已經單位化了的特徵向量。也就是每個向量的範數為1。

相似對角化

令A為n×n矩陣,其特徵值為x1,x2...xn,特徵向量為v1,v2...vn ,形成線性無關集合,以每個特徵向量為列構成矩陣X,則矩陣X可以將矩陣A對角化,乘積矩陣X.T*A*X的主對角元素是矩陣A的特徵值v1,v2...vn。

據此我們可以通過簡單的程序將矩陣對角化。

python3與線性代數 特徵值 特徵向量 相似對角化

其中用到了我們之前寫過的程序:


我們來看一下結果:

python3與線性代數 特徵值 特徵向量 相似對角化


分享到:


相關文章: