特徵值與特徵向量
特徵值的英文是 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函數。
eig函數,返回兩個值,第一個是特徵值,多重的特徵值會返回多次。第二個是特徵向量,而且返回的是已經單位化了的特徵向量。也就是每個向量的範數為1。
相似對角化
令A為n×n矩陣,其特徵值為x1,x2...xn,特徵向量為v1,v2...vn ,形成線性無關集合,以每個特徵向量為列構成矩陣X,則矩陣X可以將矩陣A對角化,乘積矩陣X.T*A*X的主對角元素是矩陣A的特徵值v1,v2...vn。
據此我們可以通過簡單的程序將矩陣對角化。
其中用到了我們之前寫過的程序:
我們來看一下結果:
閱讀更多 黑客小學生藍薩節 的文章