非线形求解器
最近在看《现代科学计算》和《数值分析》两本书里关于不动点迭代和牛顿迭代的讲解。
不动点迭代直接从原方程构造出来,具有全局收敛性,而牛顿迭代通过对原方程的一阶线性近似构造,一般只有局部收敛性。
加速非线性求解器收敛的技术有很多,例如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}}
// };