奇异值分解(SVD)

奇异值分解(singular value decomposition,SVD)
设矩阵\(A\in R^{m\times n}.\)
定理:矩阵A可以分解为\[A=UDV^T,U\in R^{m\times m},V\in R^{n\times n},\]U和V都是正交矩阵,D除了主对角线上,其余元素皆为0。
U的各列是\(AA^T\)的特征向量(称为左奇异向量),V的各列是\(A^TA\)的特征向量(称为右奇异向量)。D的主对角元依次是\(A^TA\)的特征值的平方根。

SVD的计算方法
注意到U和V是正交矩阵,于是我们有\[AA^T = (UDV^T)(VDU^T)=UD^2U^T.\]
于是,我们先计算出\(AA^T\)的特征值\(\lambda_1,\lambda_2,\cdots,\lambda_k\),(其中可能有重复的,一般将0放在最后)。

令\(D^2\)为主对角元\(\lambda_1,\lambda_2,\cdots,\lambda_k\)的\(m\times n\)矩阵。
注意,实对称矩阵\(AA^T\)的特征值非负,且一定可对角化。因此我们可以开平方根计算出D,并按照D的特征值顺序对\(AA^T\)进行对角化:\(AA^T = UD^2U^T,\)得到正交矩阵U。

另一方面,注意到\(AA^T,A^TA\)的具有相同的非零特征值(记重数),因此也可以依照D的特征值次序对\(A^TA\)进行正交对角化:\(A^TA = VD^2V^T,\)得到正交矩阵V。

    所属分类:高等代数     发表于2022-01-30