numpy基础(part11)--特征值与奇异值分解
生活随笔
收集整理的這篇文章主要介紹了
numpy基础(part11)--特征值与奇异值分解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
學習筆記,這個筆記以例子為主。
開發(fā)工具:Spyder
文章目錄
- 特征值和特征向量
- 案例(求矩陣特征值和特征向量)
- 奇異值分解
- 舉個例子1(不設(shè)置參數(shù)full_matrices = False)
- 舉個例子2(設(shè)置參數(shù)full_matrices = False, 即不要求V為一個方陣)
特征值和特征向量
對于n階方陣A,如果存在數(shù)a和非零n維列向量x,使得Ax=ax,則稱a是矩陣A的一個特征值,x是矩陣A屬于特征值a的特征向量.
- 語法
備注:np.diag(一維數(shù)組),表示將這個一維數(shù)組作為對角元素,組成矩陣。
案例(求矩陣特征值和特征向量)
代碼:
import numpy as npA = np.mat('1 3 5;2 1 6;1 1 2') print(A)#提取特征值和特征向量 eigvals, eigvecs = np.linalg.eig(A) print(eigvals, '--eigvals') print(eigvecs, '--eigvecs')#逆向推導原矩陣 print(np.mat(eigvecs) * \np.mat(np.diag(eigvals)) * np.mat(eigvecs).I)結(jié)果:
[[1 3 5][2 1 6][1 1 2]] [-1.14005494 6.14005494 -1. ] --eigvals [[-0.91698775 0.69142632 -0.94280904][ 0.35680076 0.64617623 0.23570226][ 0.17840038 0.32308811 0.23570226]] --eigvecs [[ 1. 3. 5.][ 2. 1. 6.][ 1. 1. 2.]]奇異值分解
有一個矩陣M,可以分解為3個矩陣U、S、V,使得U x S x V等于M。U與V都是正交矩陣(乘以自身的轉(zhuǎn)置矩陣結(jié)果為單位矩陣)。S矩陣主對角線上的元素稱為矩陣M的奇異值,其它元素均為0。
相關(guān)函數(shù):
U, sv, V = np.linalg.svd(M, full_matrices=False) #sv是奇異值舉個例子1(不設(shè)置參數(shù)full_matrices = False)
我們對矩陣[4, 11, 14; 8, 7, -2]進行奇異值分解。
代碼:
結(jié)果:
在進行逆向回推原矩陣時,因為此時若對sv作為對角元素,構(gòu)建對角矩陣,則會構(gòu)建出22的矩陣,則U為22階,V為3*3階,他們不能做矩陣相乘運算,否則會報錯:
為了解決這個問題,我們再舉個例子。
舉個例子2(設(shè)置參數(shù)full_matrices = False, 即不要求V為一個方陣)
我們再對矩陣[4, 11, 14; 8, 7, -2]進行奇異值分解。
代碼:
結(jié)果:
逆向回推原矩陣:
結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的numpy基础(part11)--特征值与奇异值分解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LG 49GR85DC 显示器海外上市:
- 下一篇: numpy基础(part12)--快速傅