神奇的“不动点”_ 值得反复体会
1. 不动点的定义
设 \(f\) 是一个从集合 \(X\) 到自身的函数,即 \(f: X \to X\)。如果存在某个 \(x^* \in X\),使得
那么 \(x^*\) 就是函数 \(f\) 的不动点。
关键就一句话:
函数作用之后,结果还是它自己。
例如:
解方程 \(x^2 = x\),得到 \(x = 0\) 或 \(x = 1\),所以 \(0\) 和 \(1\) 都是 \(f\) 的不动点。
2. 数学中的“迭代不动点”
迭代就是“反复代入同一个函数”:
如果这个迭代过程收敛,也就是 \(x_n\) 越来越接近某个数 \(L\),并且 \(f\) 是连续函数,那么两边取极限:
所以极限 \(L\) 一定满足 \(f(L) = L\)。
也就是说:
迭代的稳定终点,就是不动点。
一个经典例子是:
从任意一个初始值开始迭代:
会收敛到大约 \(0.739\),这个数满足:
所以它是 \(\cos x\) 的不动点。
3. 编程中的“迭代不动点”
编程中,迭代不动点通常就是不断循环计算,直到结果不再变化:
def fixed_point(f, x0, eps=1e-12):
x = x0
while True:
x_new = f(x)
if abs(x_new - x) < eps:
return x_new
x = x_new
这个过程很常见,比如:
- 求解方程:\(g(x)=0\) 可以改写成 \(F(x)=x\),然后迭代求解;
- 牛顿迭代法:求 \(f(x)=0\) 的根时,令
那么原方程的根正好是 \(F\) 的不动点。
更深刻地说,在计算机科学中,递归函数也可以看作“高阶函数的不动点”。例如阶乘可以这样定义:
真正的阶乘函数 \(\mathrm{fact}\) 满足:
所以 \(\mathrm{fact}\) 是 \(F\) 的不动点。
4. 直观解释:为什么 \(f(x)=x\) 是关键?
\(f(x)=x\) 看起来很简单,但它表达了一种“自洽性”:
一个点经过变换后,仍然回到原来的位置。
如果把函数看成一台机器,你输入 \(x\),它输出 \(f(x)\)。如果输出刚好等于输入,那么这个点对机器来说就是“无法改变的点”。
几何上更直观:
画出曲线 \(y=f(x)\),再画出直线 \(y=x\)。不动点就是这两条线的交点。
因为交点处同时满足:
和
所以:
因此,\(f(x)=x\) 是连接“函数”和“不变点”的桥梁,是求不动点的核心方程。
5. 如何形象记忆?
给你几个容易记得住的说法:
-
照镜子法
把 \(f\) 想成一面镜子,\(x\) 照完镜子后还是 \(x\),这个 \(x\) 就是不动点。
迭代就是反复照镜子,如果越照越稳定,最后不再变,那就是不动点。 -
找交点法
不动点就是曲线 \(y=f(x)\) 与对角线 \(y=x\) 的交点。
这个最直观,画图就能理解。 -
“稳如泰山”法
一个点被函数推来推去,如果推完之后它纹丝不动,那它就是不动点。
迭代中的不动点就是“最终稳定下来的状态”。
总结一句话:
不动点不是“点在坐标系里不动”,而是:函数作用之后,值还等于原来的输入。

浙公网安备 33010602011771号