逆迭代找到秩亏矩阵的零奇异向量

计算科学 线性代数 迭代法 特征值 svd
2021-12-20 21:58:01

我有一个n×n非对称矩阵A这是由不适定泊松问题的离散化产生的,因此在一维零空间的情况下是秩亏的。我只想计算最小的奇异三元组

(un,σn,vn)

在哪里

unTAvn=σn=0.

通过一些实验,我发现将逆迭代应用于移位(因此是全秩)矩阵ATσI非常快速地产生左奇异向量,通常在一两次迭代中。在 Matlab 代码中:

x(:,1) = rand(n,1); 
for k = 1:MAXIT
    x(:,k+1) = ( A' - sigma*eye(n) )\x(:,k); 
    x(:,k+1) = x(:,k+1)/norm(x(:,k+1)); 
end

通常,此迭代收敛到足够小的容差(||xkTA||=109左右)在一两次迭代中。

我认为这收敛得如此之快,因为最大和第二大奇异值(ATσI)1被隔开σ1可以做得很大,但我无法证明这个逆迭代应该收敛。我确信有一些巧妙的方法可以使用 SVD 来显示这种收敛,就像在特征向量的等效逆迭代的标准证明中一样,但我想不出它。

任何关于它为什么有效以及我如何证明它有效的帮助、想法或想法都会有所帮助。

1个回答

仅收集评论中包含的答案:

A的左右奇异向量正好是左右核向量由于假设内核的维度,并且在内核外部条件良好,因此可以使用通常的旋转矩阵分解来计算内核向量。AA1A

对于 LU 分解,一个置换矩阵,对角线的下三角等价于的最后一行(包括对角元素)为零,因此选择并反向代入得到核向量.A=PLUPL1Ax=0Ux=0Uxn=1xvn=x/x

yTA=0等价于,它具有非平凡解是一个正则三角矩阵,因此这很容易解决并且(yTPL)R=0(yTPL)=enTLT(PTy)=enLTy=P(LTen)


在 QR 分解中,行旋转没有效果,因此需要应用列旋转,因此分解为等价于可以像以前一样解决,并且等价于,同样有明显的解决方案AP=QRAx=0R(PTx)=0PTxyTA=0(yTQ)R=0yTQ=enTy=Qen