本文是叙述对于矩阵进行奇异值分解(SVD分解的方法),后面有利用SVD分解对于图像压缩的应用,代码使用matlab语言。
SVD分解可以对于一个一般矩阵使用,将其分解为3个特殊的矩阵,公式如下:
其中,若M为一个m*n (m<n) 矩阵,则分解后的三个矩阵:
U为m*m酉矩阵,
Σ为m*n正定对角矩阵,
V*为V的共轭转置,是n*n酉矩阵。
注:酉矩阵是指其共轭转置与逆矩阵相同的矩阵。
如下图所示:
同特征值相似,奇异值也是从大到小排列,且减小特别快。实际上我们可以用前k个奇异值就能基本近似表示整个矩阵。
则可以得到如下的近似奇异值分解方法。
若原Σ的秩为r,则我们只取前k(k<r)个奇异值,如此分解后:
U为m*r矩阵,