奇异值分解的反变换matlab程序,清华大学研究生高等数值分析计算实验奇异值分解SVD以及图像压缩matlab源程序代码...

第1部分方法介绍

奇异值分解(SVD )定理:

设m n A R ?∈,则存在正交矩阵m m V R ?∈和n n U R ?∈,使得

T

O A V U O O ∑??=??

??

其中12(,,,)r diag σσσ∑= ,而且120r σσσ≥≥≥> ,(1,2,,)i i r σ= 称为A 的奇异值,V 的第i 列称为A 的左奇异向量,U 的第i 列称为A 的右奇异向量。

注:不失一般性,可以假设m n ≥,(对于m n

方法1:传统的SVD 算法

主要思想:

设()m n A R m n ?∈≥,先将A 二对角化,即构造正交矩阵1U 和1V 使得

110T B n U AV m n

??=??

-??其中12

00

n n B δγγδ????

??=??????

然后,对三角矩阵T T B B =进行带Wilkinson 位移的对称QR 迭代得到:T B P BQ =。

当某个0i γ=时,B 具有形状1

2B O B O B ??

=?

???

,此时可以将B 的奇异值问题分解为两个低阶二对角阵的奇异值分解问题;而当某个0i δ=时,可以适当选取'Given s 变换,使得第i 行元素全为零的二对角阵,因此,此时也可以将B 约化为两个低

阶二对角阵的奇异值分解问题。

在实际计算时,当i B δε∞≤或者()

1j j j γεδδ-≤+(这里ε是一个略大于机器精度的正数)时,就将i δ或者i γ视作零,就可以将B 分解为两个低阶二对角阵的奇异值分解问题。

你可能感兴趣的:(奇异值分解的反变换matlab程序,清华大学研究生高等数值分析计算实验奇异值分解SVD以及图像压缩matlab源程序代码...)