SVD算法的全面介绍
其它非对角元素更快地趋于0;所以当应用“从上往下”“驱逐出境”时,一般采用Criterion1a,Criterion2a,以及对最下角元素 n用Criterion1b;反之当应用“从下往上”“驱逐出境”时,一般采用Criterion1b,Criterion2b,以及对最上角元素 2用Criterion1a。
3) 当碰到 i或 i为零时的处理方法与3.1中的传统QR迭代的SVD算法中的处理方法相同。
4) 当二对角矩阵收敛出现2×2的子矩阵时,直接计算,具体最作法如下:
算法3.2.3:
g12 g
令G是上对角的2×2矩阵,元素为G 11
,在大矩阵B中的位置是i,i 1 0g22 //以下进行右奇异向量的计算
ac T
/* compute GG */
cb
2
a g11
22b g12 g22 c g11*g12
ac
/* compute the Jacobi rotation which diagonalizes */
cb
(b a)/(2c)
t sign( )/ )
cs 1/sn cs*t
/* update columns i and i 1 of B */ for k i to i 1 tmp Bki
Bki cs*tmp sn*Bk,i 1
Bk,i 1 sn*tmp cs*Gk,i 1 endfor
/* update the matrix V of right singular vectors */ for k 1 to n
tmp Vki
Vki cs*tmp sn*Vk,i 1 Vk,i 1 sn*tmp cs*Vk,i 1 Endfor