不动点迭代之安德森加速
在数学中,函数的不动点(Fixed point, or shortened tofixpoint, also knowns asinvariant point),指的是在函数定义域内的某一个值,经过函数映射后的值还是其本身。在科学和工程领域中,很多问题可以归结为不动点问题,如下:这里和是一个映射(是复数空间)。(1)可以使用不动点迭代方法求解,如下此迭代格式若收敛...
在数学中,函数的不动点(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:此为本人的一点笔记,不尽完善,欢迎讨论。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)