Skip to content

不动点迭代

Fixed-point iteration · Picard iteration

把方程改写为不动点问题后反复应用同一映射,并用压缩性控制收敛、误差与停机。

形式陈述

给定集合 D、映射 g:DD 和初值 x0D,不动点迭代依次计算

xk+1=g(xk),k=0,1,2,,

希望输出满足 x=g(x) 的点。若原问题写作 f(x)=0,选择 g 就是算法设计的一部分;同一个方程可以有许多代数等价的重排,它们的迭代轨道却未必相同。一次迭代需要一次 g 的求值并保存当前状态,因而执行 k 步的成本通常是 k 次函数求值、额外存储为常数规模;若 g 内部还要求解子问题,则应把那部分成本另行计入。

全局保证直接来自Banach 不动点定理。若 (D,d) 完备、g(D)D,并存在统一常数 0q<1 使

d(g(x),g(y))qd(x,y)(x,yD),

D 中有唯一不动点,任意 x0D 都收敛到它。除存在唯一性外,还得到先验界与后验界

d(xk,x)qk1qd(x1,x0),d(xk,x)q1qd(xk,xk1).

第二个不等式说明:只有已知收缩因子时,相邻两步的距离才能变成真误差证书。若目标误差为 τ,可以在右端不超过 τ 时停止;实际实现还应检查定义域、非有限值、最大迭代数和舍入停滞,并按残差与误差估计的尺度规则同时报告残差或更新量。

一维局部理论更弱,也更常用于分析具体公式。若 g 在不动点 x 附近连续可微且 |g(x)|<1,则存在一个足够小的邻域,使从其中出发且不离开该邻域的迭代收敛。若 g(x)0,误差 ek=xkx 满足

limk|ek+1||ek|=|g(x)|,

所以它通常是线性收敛;当 g(x)=0 时,速度可能更高,但仍要由更高阶展开确认。

直觉

不动点迭代不是“把等号右边反复按计算器”这么简单。映射 g 会在每一步重新塑造误差:若它把不动点附近的距离压短,轨道像被逐步拉向固定位置;若它把距离放大或把点送出定义域,形式上完全正确的重排也会成为失败算法。压缩常数 q 描述最坏方向上的拉伸,q 越接近 1,每一步看起来越安静,抵达目标却越慢。

这也解释了表示方式为何属于算法而不只是代数。方程 f(x)=0 规定要找哪个对象,重排 x=g(x) 则决定如何走向它。两个 g 可以拥有同一个不动点,却分别产生快速收敛、缓慢收敛、周期振荡或定义域逃逸。

例子与边界

方程 x=cosx[0,1] 上给出一个干净的全局例子。映射 g(x)=cosx 把该区间送回自身,且 |g(x)|=|sinx|sin1<1。从 x0=1 出发,轨道

1, 0.5403, 0.8576, 0.6543,

在不动点两侧交替靠近,最终收敛到 0.739085。振荡本身不表示发散;真正起作用的是误差幅度受到统一压缩。

同一方程 x2=2 展示了重排的决定性。取

g1(x)=12(x+2x),

x0=1 得到 3/2,17/12,577/408,,并快速趋于 2;在根处 g1(2)=0,这正是速度高于线性的原因。若改成同样等价的 g2(x)=2/x,则 g2(g2(x))=x,任意非根初值都会在两点间来回跳动,因为 g2(2)=1 正落在局部收敛条件的边界上。

仅凭更新量很小也可能过早停机。对 g(x)=qx+(1q)x,有 |xk+1xk|=(1q)|xkx|;当 q 极接近 1 时,步长可以很小,而真误差仍大。未知 q 时,相邻差只能作为诊断信号,不能替代残差、问题尺度或后验误差界。

推论与应用

Banach 定理负责回答“在什么统一条件下存在唯一不动点并从任意初值收敛”,本页则负责选择迭代映射、估算实际成本和设计停止条件。两者不应重复:定理页保留抽象证明与误差界,算法页展示不同重排为何改变数值行为。

Picard 迭代把常微分方程改写为函数空间中的积分不动点问题,主要用于证明局部存在唯一性;它并不等于把时间区间离散成步长的 ODE 时间步进算法。在线性方程、积分方程和带折扣动态规划中也会出现同样框架,但每个应用都必须重新说明所用空间、范数、自映射区域和收缩常数。

参考资料
  • NIST Digital Library of Mathematical Functions, §3.8 Nonlinear Equations.
  • J. M. Ortega and W. C. Rheinboldt, Iterative Solution of Nonlinear Equations in Several Variables, SIAM, 2000, fixed-point iterations and local convergence.
  • Richard L. Burden, J. Douglas Faires, and Annette M. Burden, Numerical Analysis, 10th ed., Cengage, 2016, fixed-point iteration and error bounds.