【转】奇异值分解(SVD)
转载:http://redstonewill.com/1529/ 普通方阵的矩阵分解(EVD) 我们知道如果一个矩阵 A 是方阵,即行列维度相同(mxm),一般来说可以对 A 进行特征分解: 其中,U 的列向量是 A 的特征向量,Λ 是对角矩阵,Λ 对角元素是对应特征向量的特征值。 举个简单的例子,例如方阵 A 为: 那么对其进行特征分解,相应的 Python 代码为: 1 import numpy as np 2 3 A = np.array([[2,2],[1,2]]) 4 lamda, U = np.linalg.eig(A) # 特征向量和特征值 5 print('方阵 A', A) 6 print('特征值 lamda', lamda) 7 print('特征向量 U', U) 8 9 # 输出 10 # 方阵 A [[2 2] 11 # [1 2]] 12 # 特征值 lamda [3.41421356 0.58578644] 13 # 特征向量 U [[ 0.81649658 -0.81649658] 14 # [ 0.57735027 0.57735027]] 特征分解就是把 A 拆分,如下所示: 其中,特征值 λ1=3.41421356,对应的特征向量 u1=[0.81649658 0.57735027];特征值 λ2=0.58578644,对应的特征向量 u2=