一、奇异值分解的意义
除了特征分解外,还有另一种分解的方法,称为奇异值分解(SVD),它可以将矩阵分解成奇异值和奇异向量。相对特征分解来说,奇异值分解的应用更加广泛,每个实数矩阵都有一个奇异值分解,但不一定有特征分解。例如:非方阵的矩阵没有特征分解,但有奇异值分解。
二、奇异值分解
三、奇异值和奇异向量的含义
四、Python实现
1. Numpy
import numpy as np
A = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
# 返回三个矩阵
np.linalg.svd(A)
2. Scipy
import numpy as np
from scipy import linalg
A = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
# 返回奇异值
print(linalg.svdvals(A))
# 返回三个矩阵
print(linalg.svd(A))