定义
特征值分解是求解方阵的特征,对于非方阵而言可以通过奇异值分解描述矩阵的特征。
对于矩阵A为m*n的矩阵,可以分解成如下形式:
A是一个m*n的矩阵,那么得到的U是一个m * m的方阵(里面的向量是正交的,称为左奇异向量),Σ是一个m * n的矩阵(除了对角线的元素外,其它都是0,对角线上的元素称为奇异值),VT是一个n * n的矩阵(里面的向量也是正交的,称为右奇异向量)。
右奇异向量求解
矩阵A左乘转置AT,将会得到一个方阵(n*n),通过该方阵求特征值和特征向量,该特征向量即A的右奇异向量。
上面的Vi构成的矩阵即A的右奇异矩阵。
右奇异向量和奇异值的求解
根据上面得到的特征值λ,计算奇异值σ,以及左奇异向量u:
python代码实现
dataA = np.array([[1, 1], [1, 1], [0, 0]])
lvecs, vals, rvecs = np.linalg.svd(dataA)