共轭梯度 - 病态和数值公差

计算科学 线性求解器 迭代法 共轭梯度 精确 条件数
2021-12-22 03:15:13

我想解决系统,其中是 SPD,但非常病态()。我有兴趣使用共轭梯度法的未经预处理的版本。 Ax=bAcond(A)>1011

是否有任何关于残差范数的估计,哪种方法实际上可以在双精度算术中收敛?我对数值求解系统不感兴趣。我正在寻找包含有限精度浮点运算的错误界限。

1个回答

表示的解,让表示计算的解。我们不能希望比的浮点表示在这种情况下,最有利的情况是其中是单位舍入。因此,现在,让表示由 我们有xAx=bx^

x^=fl(x),
xx^j=xj(1+δj)|δj|uuxx^2ux2r
r=bAx^=A(xx^).
r2A2xx^2uA2x2uA2A12b2.
我们得出结论,相对残差满足其中的 2-范数条件数
r2b2uκ2(A),
κ2(A)=A2A12A


上述估计对于一般矩阵是正确的。在实践中,您会发现迭代方法的相对残差停滞在的水平上。一般来说,CG算法没有希望做得更好。Auκ2(A)