固定点计算是寻找给定函数精确或近似固定点的过程。在最常见的形式中,给定的函数满足布劳威尔固定点定理的条件:也就是说,该函数连续且将单位 d-立方体映射到自身。布劳威尔固定点定理保证该函数存在一个固定点,但其证明并不具建构性。
这使得各种算法诞生,旨在计算近似的固定点,并在经济学、博弈论和动态系统分析中被广泛运用。
在讨论固定点之前,有必要了解一些基本定义。单位区间记为 E := [0, 1],而单位 d 维立方体则记为 E^d。一个定义在 E^d 上的连续函数 f 是从 E^d 对自身的映射。常常假设此函数不仅是连续的,还是利普希茨连续的,即存在一常数L,使得对于所有的x 和y,满足|f(x) - f(y)| ≤ L ⋅ |x - y |。
一个固定点 x 是在 E^d 中的一个点,使得 f(x) = x。根据布劳威尔固定点定理,任何连续函数从 E^d 到自身都有一个固定点。
尽管对于一般函数,不可能精确地计算固定点,因为它可以是任意实数,但固定点计算算法寻求的正是近似固定点。通常的标准如下:
残差标准:给定一个近似参数 ε > 0,一个 ε-残差固定点的定义是满足 |f(x) - x| ≤ ε 的点 x。
绝对标准:对于给定的参数 δ > 0,一个 δ-绝对固定点是满足 |x - x₀| ≤ δ 的点 x,其中 x₀ 是任何固定点。
相对标准:条件为 |x - x₀|/|x₀| ≤ δ,x₀ 满足 f(x₀) = x₀。
对于利普希茨连续函数,绝对标准比残差标准更强。如果 f 是满足定义的利普希茨连续函数,那么这一点便变得尤为重要。
固定点计算算法的最基本步骤为值查询,给定任意 x 在 E^d 中,算法由一个 oracle 提供函数 f 的值 f(x)。近似固定点的准确性取决于 oracle 准确性。然而,对于这些不同的计算方法,有许多基于利普希茨连续性的类型,其中包括著名的巴拿赫固定点定理所导出的算法。
当然,对于收缩函数来说,固定点的计算明显简单了许多。根据巴拿赫的固定点定理,满足布劳威尔条件的每个收缩函数都存在唯一的固定点。固定点迭代算法即是最早的算法之一。经过 t 次迭代后的误差是指数级减少的,因此,对于 d 维空间的 δ-相对固定点通常需要的迭代次数可以表示为一个对数的比值。
当 d 增大时,巴拿赫的算法明显展现出其优越性,尤其在固定点的计算复杂性方面,为在高维空间中解决问题提供了方便的解法。
在针对可微分函数的情况下,若算法可以评估其导数,牛顿法往往能大幅提升计算速度。然而,对于利普希茨常数大于 1 的一般函数,计算固定点的困难度则显著增加,这涉及到无穷次的评估查询,已成为一项棘手的挑战。
虽然一维函数的计算相对简单,但对于二维及更高维度的函数,其固定点的寻找和计算就变得极具挑战性。现今,许多基于函数评价的方法被提出,如赫伯特·斯卡夫在1967年开发的算法便是其中之一,透过形成一个完全标记的「原始集合」,达成了ε-残差固定点的近似。
随着对固定点计算的深入研究,相关算法的复杂性及对应的启发也日益丰富。随着在不同领域的应用,如何更加高效且准确地找到这些固定点,依然是数学和计算机科学中的一大挑战。
在探索这些数学奥秘的同时,我们不禁要问:在现实生活中,我们是否也能应用类似的数学原则,来寻找解决问题的固定点呢?