python3-特徵值,特徵分解,SVD奇異值分解

1.設A爲n階矩陣,若存在常數λ及n維非零向量x,使得Ax=λx,則稱λ是矩陣A的特徵值,x是A屬於特徵值λ的特徵向量。
A的全部特徵值的全體,叫作A的譜,記爲λ(A)
2.特徵分解(Eigendecomposition),又稱譜分解(Spectral decomposition)是將矩陣分解爲由其特徵值和特徵向量表示的矩陣之積的方法。須要注意只有對可對角化矩陣才能夠施以特徵分解。
一個矩陣的一組特徵向量是一組正交向量。python

令 A 是一個 N×N 的方陣,且有 N 個線性無關的特徵向量 。這樣, A 能夠被分解爲:
python3-特徵值,特徵分解,SVD奇異值分解ide

其中Q是這個矩陣A的特徵向量組成的矩陣,Σ是一個對角陣,每一個對角線上的元素就是一個特徵值。這裏須要注意只有可對角化矩陣才能夠做特徵分解。3d

只有對角線上有非0元素的矩陣稱爲對角矩陣,或說若一個方陣除了主對角線上的元素外,其他元素都等於零,則稱之爲對角陣。
特徵值分解是一個提取矩陣特徵很不錯的方法,可是它只是對方陣而言的code

python3-特徵值,特徵分解,SVD奇異值分解

python3-特徵值,特徵分解,SVD奇異值分解

python3-特徵值,特徵分解,SVD奇異值分解

python3-特徵值,特徵分解,SVD奇異值分解

python3-特徵值,特徵分解,SVD奇異值分解

import numpy as np
x=np.mat(np.array([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]]))
print(x)
print(np.linalg.det(x))
s,v,d=np.linalg.svd(x)
print (f"{s}\n\n{v}\n\n{d}\n")

[[1. 2. 3.]
[4. 5. 6.]
[7. 8. 9.]]
-9.51619735392994e-16
[[-0.21483724 0.88723069 0.40824829]
[-0.52058739 0.24964395 -0.81649658]
[-0.82633754 -0.38794278 0.40824829]]blog

[1.68481034e+01 1.06836951e+00 3.33475287e-16]it

[[-0.47967118 -0.57236779 -0.66506441]
[-0.77669099 -0.07568647 0.62531805]
[-0.40824829 0.81649658 -0.40824829]]io