1. 什么是奇异值分解(SVD)
奇异值分解(Singular Value Decomposition,简称 SVD)是矩阵分解的一种方法,它将任意矩阵 AAA 分解为三个矩阵的乘积:
A=UΣVT A = U \Sigma V^T A=UΣVT
其中:
- AAA 是 m×nm \times nm×n 的矩阵。
- UUU 是 m×mm \times mm×m 的酉矩阵,包含 AATA A^TAAT 的特征向量。
- Σ\SigmaΣ 是一个 m×nm \times nm×n 的对角矩阵,包含矩阵 AAA 的奇异值。
- VTV^TVT 是 n×nn \times nn×n 的酉矩阵,包含 ATAA^T AATA 的特征向量。
奇异值分解不仅适用于方阵,也适用于任意矩阵。它在信号处理、图像压缩、降维和推荐系统等应用中有着广泛的应用。
2. 计算步骤
步骤 1:计算 AATA A^TAAT 和 ATAA^T AATA
首先,我们计算矩阵 AATA A^TAAT 和 ATAA^T AATA:
- AATA A^TAAT 是一个 m×mm \times mm×m 的对称矩阵;
- ATAA^T AATA 是一个 n×nn \times nn×n 的对称矩阵。
步骤 2:求解特征值和特征向量
-
对 AATA A^TAAT 求特征值和特征向量:矩阵 AATA A^TAAT 的特征向量构成了矩阵 UUU,它的特征值的平方根是矩阵 AAA 的奇异值。
-
对 ATAA^T AATA 求特征值和特征向量:矩阵 ATAA^T AATA 的特征向量构成了矩阵 VVV,它的特征值的平方根同样是矩阵 AAA 的奇异值。
步骤 3:构建矩阵 UUU、Σ\SigmaΣ 和 VTV^TVT
- UUU 是由 AATA A^TAAT 的特征向量构成的矩阵。
- Σ\Sigma