SVD算法的全面介绍
h*c
文献[13]中还给出了随着迭代的进行而最终累积的误差所满足的两个定理: 定理3.2.1: 假设B是n阶的二对角矩阵,B 是对B进行一次零位移的QR迭代后得到的矩
是矩阵B 的奇异值;则当阵, 1 ... n是原矩阵的准确的奇异值,而 1 ... n
以下不等式成立时 69n2 1 则有以下式子满足:
i 1
由此可知用零位移QR迭代k次以后得到的矩阵Bk,其奇异值 k1 ... kn,有以下式子满足:
1
(当k 1时,可取近似式) i ki 1 i 69kn2 i,k
1
定理3.2.2: 假设B是n阶的二对角矩阵,B 是对B进行一次零位移的QR迭代后得到的矩
是矩阵B 的奇异值;并且阵, 1 ... n是原矩阵的准确的奇异值,而 1 ... n
i i
Givens变换时的旋转角 都满足sin2 1,则当以下不等式成立时
88n 1
(1 )2
则有以下式子满足:
i 1
由此可知用零位移QR迭代k次以后得到的矩阵Bk,其奇异值 k1 ... kn,有以下式子满足:
1 88kn
(当k 1时,可取近似式) i ki ,1
1 k i(1 )2i
而可知 的值在算法计算的过程中可以很容易地检测。
文献中[13]还分析了传统QR迭代算法不能得到满足精度的三个原因;首要的一条是判断收敛的依据。
假设已知B为n阶的二对角矩阵,对角元素为 1,..., n,非对角元素为 2,..., n;在软件包LINPACK中用到的判断对角元素为零的依据是:
if( i 1 i i i 1 i),
i i
then……(3.2.1)
i 0