非线形求解器

最近在看《现代科学计算》和《数值分析》两本书里关于不动点迭代牛顿迭代的讲解。

不动点迭代直接从原方程构造出来,具有全局收敛性,而牛顿迭代通过对原方程的一阶线性近似构造,一般只有局部收敛性

加速非线性求解器收敛的技术有很多,例如Steffensen方法,Aitken方法,亚松弛方法(under relaxation scheme)[19], Hamming 方法(Hamming’s scheme)[20],广义 法[21,22]。Steffensen迭代需要推广到向量空间,Banach空间(https://en.wikipedia.org/wiki/Steffensen%27s_method)。

《现代科学计算》brouwer不动点迭代的构造,下降newton方法,同伦算法。

在PETSC中,SNES(scalable nonlinear equation solver)列举了很多算法

// { 
//     {"default",      {"default SNES method",                                  ""}},
//     {"newtonls",     {"Line search method",                                   SNESNEWTONLS}},
//     {"newtontr",     {"Trust region method",                                  SNESNEWTONTR}},
//     {"ngmres",       {"Nonlinear generalised minimum residual method",        SNESNGMRES}},
//     {"nrichardson",  {"Richardson nonlinear method (Picard iteration)",       SNESNRICHARDSON}},
//     {"vinewtonrsls", {"Reduced space active set solver method (for bounds)",  SNESVINEWTONRSLS}},
//     {"vinewtonssls", {"Reduced space active set solver method (for bounds)",  SNESVINEWTONSSLS}},
//     {"qn",           {"Limited memory quasi-Newton",                          SNESQN}},
//     {"ncg",          {"Nonlinear conjugate gradient method",                  SNESNCG}},
//     {"fas",          {"Full Approximation Scheme nonlinear multigrid method", SNESFAS}},
//     {"nasm",         {"Nonlinear Additive Schwartz",                          SNESNASM}},
//     {"anderson",     {"Anderson mixing method",                               SNESANDERSON}},
//     {"aspin",        {"Additive-Schwarz Preconditioned Inexact Newton",       SNESASPIN}},
//     {"ms",           {"Multistage smoothers",                                 SNESMS}}
// };

image-20230729172233800