固定點計算是尋找給定函數精確或近似固定點的過程。在最常見的形式中,給定的函數滿足布勞威爾固定點定理的條件:也就是說,該函數連續且將單位 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年開發的算法便是其中之一,透過形成一個完全標記的 「原始集合」,達成了 ε-殘差固定點的近似。
隨著對固定點計算的深入研究,相關算法的複雜性及對應的啟發也日益豐富。隨著在不同領域的應用,如何更加高效且準確地找到這些固定點,依然是數學和計算機科學中的一大挑戰。
在探索這些數學奧秘的同時,我們不禁要問:在現實生活中,我們是否也能應用類似的數學原則,來尋找解決問題的固定點呢?