如何在线性化之前对非线性问题进行预处理?

计算科学 预处理
2021-12-09 10:14:05

当我想到求解非线性方程时,我通常会首先考虑线性化,然后对线性矩阵应用预处理器。我想到,有可能在非线性方程被线性化之前对其进行调节。是否有任何通用策略来预处理独立于方程组结构的非线性方程?

2个回答

当然,任何近似非线性求解器都可以用作非线性预处理器。例如,如果您的系统具有方向刚度,则可以使用 1D 拍摄方法作为预处理器。Cai 和 Keyes (2002) 的非线性预处理不精确牛顿算法提供了另一个有用的例子。

在 PETSc 中,非线性方法,如准牛顿法、非线性共轭梯度法、非线性 GMRES(又名安德森加速度)和非线性理查森法可以与非线性预条件器一起使用。非线性预条件器是任何其他SNES实现,可能是用户定义的“外壳”实现。

当使用非线性共轭梯度法通过最小化残差平方范数时,通常需要通过线性变换对系统进行预处理,例如,由起点处的近似雅可比行列式的近似因式分解(通常这种近似雅可比行列式可以从问题的简化中获得。)因此,可以最小化,其中,并且通过求解来计算。F(x)=0F(x)22LUBF(x)22B=(LU)1r=BF(x)LUr=F(x)

花费更多(每次迭代一个新的近似分解),也可以最小化B(x)F(x)