扰动线性系统的初步猜测

计算科学 线性代数 有限元 线性求解器
2021-12-18 10:36:07

假设您通过迭代方法求解线性系统然后你尝试求解一个在矩阵和右手边有轻微扰动的线性系统,比如Au=fA~u~=f~

将旧解决方案用作迭代方法的起始值“有意义”意味着迭代方法的运行时间有可靠的增益。我想知道这是否会导致总体上的改进,从而可以将其视为建议的做法。u~0=u

我想到的一个应用来自自适应有限元。如果我们已经在粗网格上计算了一个解,并且想要在更精细的网格上找到一个解(这可能是基于自适应方法生成的),那么任何迭代算法的起始值都可以是到更精细的网格上。类似地,涉及非线性问题解决方案的牛顿方法或皮卡德迭代可以通过这种方式“提升”,如果它有任何意义的话。uu~u

2个回答

我们已经用自适应有限元对此进行了尝试,我们通过插值将先前的解决方案转移到新网格中。事实证明,从这个向量开始对 CG 迭代次数没有明显影响。换句话说,对于 CG 迭代,一个好的初始猜测大多是无用的。

当然,非线性方法(例如牛顿法)的情况完全不同,在这种方法中,将粗网格上的最后一次迭代作为细网格的起始猜测是绝对值得的。在实践中,通常在最粗的网格上进行 5-10 次迭代,但随后在每个连续细化的网格上只需要 1-2 次迭代。

我认为这真的取决于矩阵 A 的条件数。如果它的条件数很大,那么稍微扰动系统可能会产生完全不同的解决方案。对于自适应 FEM,它取决于您对系统行为的预期(显然,还取决于网格本身的质量)。如果您期望从粗网格到细网格相当平滑的过渡,那么我们应该期望扰动系统有一个非常接近未扰动系统的解决方案。如果您可以预料到突然的剧烈变化,那么就无法真正保证受扰和未受扰系统的接近程度。