在 Krylov 子空间方法的标准公式中,您总是必须在解中某处除以 0 ,例如,在 CG 中,
(当然,通常你永远不会得到在那里,因为在此之前停止标准。)
是否有避免这种划分的 CG 公式,例如,通过计算递归中的系数?
在 Krylov 子空间方法的标准公式中,您总是必须在解中某处除以 0 ,例如,在 CG 中,
(当然,通常你永远不会得到在那里,因为在此之前停止标准。)
是否有避免这种划分的 CG 公式,例如,通过计算递归中的系数?
或中的任何一个为零都意味着精确算术的精确收敛,因此这绝不是问题。共轭梯度在用作迭代求解器之前就被用作线性方程组的直接求解器,因为我们知道对于对称正定线性系统,CG 将在次迭代中收敛到精确解,并且您担心的故障发生在 -st 迭代中。
在计算机算术上,如果任一数量下溢并变为零,我想您可能会遇到早期故障。不过我觉得这不太可能,因为下溢的分母应该小于 ~。或者,如果向量的某些条目比其他条目大很多数量级,则可能会发生这种情况,并且由于可表示数字之间的间隙可能导致错误的算术运算。在这种情况下,您可能会观察到错误的收敛。解决方案是在大多数情况下对系数矩阵进行对称归一化。