SVD算法的全面介绍
(2)(3) b11b1200 (3)000b22 B(3) J2BJ1J3 (3)(3) 0b32b33b34
b000 44
(3)
消零; 然后继续左乘Givens变换矩阵J4将矩阵元素b32
(2)(3)
b11b1200 (4)(4)(4) 0bbb222324 B(4) J4J2BJ1J3 (4)(4) 00b33b34
b000 44
按同样的道理构造J5,J6,最终可以将重新变换回二对角矩阵,从而完成一次迭代。
由上面的例子,并且利用算法3.1.1,可知:假如已知B为n阶的二对角矩阵,对角元素为 1,..., n,非对角元素为 2,..., n;则经过一次零位移的QR迭代以后的
1,..., n和 2,..., n可由如下算法给出:
算法3.2.1: oldc 1
x i
y i 1
for i 1 //这里i,为子矩阵在总矩阵中的上下标 call [c,s,r] Givens(x,y) //调用算法3.1.1
Update(c,s,vi,vi 1) //利用算法3.1.2
//其中vi,vi 1分别为矩阵V的第i和i+1列
if(i i olds*r x oldc*r y i 1*s h i 1*c
call [c,s,r] Givens(x,y) //调用算法3.1.1 Update(c,s,ui,ui 1) //利用算法3.1.2
//其中ui,ui 1分别为矩阵U的第i和i+1列
i r
x h
if(i 1)y i 2 oldc c olds s endfor h*s