在数学中,函数的不动点(Fixed point, or shortened to fixpoint, also knowns as invariant point),指的是在函数定义域内的某一个值,经过函数映射后的值还是其本身。在科学和工程领域中,很多问题可以归结为不动点问题,如下:
这里 和
是一个映射(
是复数空间)。 (1)可以使用不动点迭代方法求解,如下
此迭代格式若收敛,需要满足一定的收敛条件。在收敛性满足条件下,为了加速不动点跌倒的收敛速度,最初的想法是在迭代格式(2)后引入一个松弛迭代,进行外推加速。如下:
这里(一般选为实数,也可以是一个复数)是一个松弛因子。最终的迭代格式等价于
。借鉴这个思想,求解不动点问题(1)的安德森加速方法如下:
更一般地,可以将 表示如下:
这里 是一个松弛参数。安德森加速的伪代码如下(形式和前面叙述一致,这里为了自己理解):
安德森方法的一些小注记:(1)、安德森加速方法中一定要满足加权系数的和为一。(2)、对于加权系数可以使用最小二乘法求解。
参考文献:
(1)Y. Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., SIAM, Philadelphia, 2003
(2)Homer F. Walker and Peng Ni Anderson acceleration for fixed-point iterations SIAM J. Numer. Anal., 49(4), 1715–1735
(3)Alex Toth and C. T. Kelley Convergence analysis for Anderson acceleration SIAM J. Numer. Anal., 53(2), 805–819.
Remark:此为本人的一点笔记,不尽完善,欢迎讨论。