§23-5  閉球上與只要連續

函數只在一個範圍內有定義時,迭代會不會走出去?而如果把要求放寬到只剩連續,不動點還在嗎——若還在,找得到它嗎?

函數只住在一顆球上

導航會把你帶到目的地,可是它只在有圖資的範圍內管用。一旦走出圖資邊界,下一步該往哪裡它就答不出來了——所以真正要確認的不是路線好不好,而是每一步會不會把你帶出範圍。

上一篇的定理有一個不小的前提:函數的定義域是整個空間。可是實際遇到的函數常常只在一個範圍內有定義,或者只在那個範圍內才把距離拉短——出了範圍就不成立。

這時候會冒出一個新問題:迭代走著走著可能走出定義域,下一步就代不進去了。要防止這件事,得先確定函數把那個範圍送回它自己之內。下面這條定理給出一個容易檢查的充分條件。

23.7  THEOREM
Let f be a contraction with constant C, defined on D = {x ∈ ℝᵖ : ‖x‖ ≤ B} with values in ℝᵖ, and suppose
  ‖f(0)‖ ≤ B(1 − C).
Then the sequence x₁ = 0, x_{n+1} = f(xₙ) stays in D and converges to the unique fixed point of f in D.
條件只檢查一個點:原點的像離原點不太遠。這一句話就足以保證整顆球被送回球內,於是迭代永遠代得下去,上一篇的證明原封適用。要留意 C 越接近 1,右邊的容許值越小——拉短的力道越弱,對出發位置的要求就越嚴。
正例:f(x) = (x² + 1)/4 於 B = 1。它在這顆球上的倍率是 ½,而 |f(0)| = ¼ ≤ 1 · (1 − ½),條件成立,例 7 逐步驗。反例:同一個 f 在整個 ℝ 上不是 contraction——|x + u|/4 可以任意大——所以 23.5 用不上,非得靠這一條把場地縮小不可。
PROOF

上一篇的論證只有一個地方會失效:遞迴要求每個 xₙ 都落在定義域內。所以只需補上這一件事。

證明計畫 · 由所求想起
所求是 f(D) ⊆ D,也就是每個 ‖x‖ ≤ B 的點的像仍滿足 ‖f(x)‖ ≤ B。把 f(x) 繞經 f(0) 拆成兩段:一段是 contraction 管得到的差,一段是題目直接給的 ‖f(0)‖。兩段的上界相加恰好湊成 B,而這正是條件裡那個 B(1 − C) 的來歷。場地封閉之後,上一篇的證明逐字適用。

Proof.  Let x ∈ D. Then
  ‖f(x)‖ ≤ ‖f(x) − f(0)‖ + ‖f(0)‖ ≤ C‖x‖ + B(1 − C),
and since ‖x‖ ≤ B the right side is at most CB + B − CB = B. Hence f(D) ⊆ D.
這一步的所求:確認球被送回球內。繞經 f(0) 是唯一的著力點——contraction 條件只談兩點之差,單獨一個 ‖f(x)‖ 它管不到,得先湊出一個差來。原點是最方便的中繼站,因為 ‖0‖ = 0 讓第一段的上界只剩 C‖x‖。條件裡那個 B(1 − C) 不是憑空的:它恰好是 B 減掉第一段的最大值 CB 之後剩下的額度。
Since 0 ∈ D, the sequence x₁ = 0, x_{n+1} = f(xₙ) is well defined and remains in D. The estimates of 23.5 apply verbatim, so (xₙ) is Cauchy and converges to some u; as D is closed, u ∈ D, and continuity gives f(u) = u. Uniqueness in D follows exactly as before.
這一步把上一篇的結論搬過來。唯一新增的檢查是「極限沒有逃出 D」——靠的是閉球 closed,而 10.5 說 closed 的集合收齊了所有 cluster point。若定義域取的是開球,這一格就會漏:數列可以一路貼近球面而極限落在球面上,那裡沒有定義。唯一性的論證完全不涉及定義域大小,照抄即可。
檢查一個點,就把整顆球封成一個可以安心迭代的場地。∎
0 f(0) 像全部落在虛線圓內,而虛線圓不出大圓 半徑 CB

這張圖在說 23.7 的條件在量什麼:整顆球的像全部落在以 f(0) 為中心、半徑 CB 的虛線圓內(因為每個點離原點不超過 B,像離 f(0) 就不超過 CB)。要讓虛線圓不越出大圓,圓心離原點的距離最多只能是 B − CB——那正是條件裡的 B(1 − C)。倍率越接近 1,虛線圓越大,圓心能挪動的空間就越小。

例 7在一顆球上解二次方程式
要解 x² − 4x + 1 = 0。公式當然有,可是換成迭代,23.7 的條件怎麼檢查?
  1. 把方程式改寫成不動點的形式:4x = x² + 1,也就是 x = (x² + 1)/4。取 f(x) = (x² + 1)/4,並取球 D = {x : |x| ≤ 1}(B = 1)。
  2. 驗 contraction:在 D 上 |x + u| ≤ 2,於是
      |f(x) − f(u)| = |x + u| |x − u| / 4 ≤ ½ |x − u|。
    倍率 C = ½。要留意這只在 D 上成立——放到整條數線上 |x + u| 沒有上界。
  3. 驗 23.7 的條件:|f(0)| = ¼,而 B(1 − C) = 1 · ½ = ½。¼ ≤ ½,過關。定理保證 D 內恰有一個不動點,而且從 0 出發的迭代不會跑出去。
  4. 算五步:0,0.25,0.265625,0.2676392,0.2679077。真正的根是 2 − √3 ≈ 0.2679492,第五步的誤差約 0.0000415。
  5. 對照 23.6 的估計:(C⁴/(1 − C)) · |x₂ − x₁| = (0.0625/0.5) · 0.25 = 0.03125。實際誤差比它小了將近三個數量級——這裡的估計相當鬆,與 §23-4 例 6 幾乎貼合的情形正好相反。原因是那個 f 每一步都恰好把距離縮成 0.4 倍,而這裡的 ½ 只是最壞情形,實際靠近不動點時縮得凶得多。
  6. 另一個根 2 + √3 ≈ 3.732 到哪裡去了?它在 D 外面,這一輪根本沒被找。定理說的「唯一」是在 D 之內唯一,換一顆球就可能換一個答案。
第 2 步與第 6 步是這個例子的兩個重點:contraction 是函數與定義域一起的性質(與均勻連續同理),而把場地縮小的代價是結論也跟著縮小——只保證球內的那一個。第 5 步提醒誤差估計是上界,鬆緊要看函數的實際行為。
2 − √3 y = x y = (x² + 1)/4 另一個交點遠在球外,這一輪沒被找

這張圖在說例 7 的畫面:不動點就是曲線與對角線的交點。在球 |x| ≤ 1 的範圍內,兩者只交會一次,那就是 2 − √3。拋物線在這一段幾乎是平的(斜率遠小於 1),這正是它在此處為 contraction 的幾何理由;可是往右走它會越翹越陡,第二個交點落在 x ≈ 3.73,早已離開這顆球。

放寬到只要連續

23.5 與 23.7 的結論很強:不只有解,還唯一,還附算法與誤差保證。代價是 contraction 這個要求相當苛刻——例 7 就得先把場地縮到一顆小球上才勉強成立。

那麼把要求放寬到只剩「連續」,還剩下什麼?答案出人意料地慷慨:存在性完全保得住,只是唯一性與算法都沒了。這是 1910 年由 Brouwer 證明的一個深刻結果。

23.8  BROUWER FIXED POINT THEOREM
Let B > 0 and put D = {x ∈ ℝᵖ : ‖x‖ ≤ B}. Then every continuous function with domain D and values in D has at least one fixed point.
只要求連續,而且把球送回球內。沒有唯一性,也沒有建構——定理只說那個點存在。p = 1 的情形用本節與上一節的工具就證得出來(見下),高維的證明需要另一套方法,這裡只交代結論。要留意定義域必須是閉球:換成開球或去掉中心的球,結論都會垮。
正例:f(x) = √(1 − x²) 把 D = [−1, 1] 送進 [0, 1] ⊆ D,連續,於是有不動點——解 x = √(1 − x²) 得 x = 1/√2 ≈ 0.7071。它不是 contraction(在 x = 1 附近陡到沒有定倍上限),所以 23.5 與 23.7 都用不上。反例:把定義域換成去掉中心的圓環,連續函數可以整體轉一個角度,一個不動點都沒有——閉球這個形狀是必要的。
THEOREM · 一維的情形
Let B > 0 and let f be continuous on [−B, B] with values in [−B, B]. Then f(c) = c for at least one c ∈ [−B, B].
p = 1 時 23.8 就地證得出來,工具是上一節的中間值定理。手法與 §22-2 例 4 的對蹠點完全一樣:要比較的兩個量相減,做成同一個函數的兩端。
正例:f(x) = −x/2 於 [−1, 1],值域是 [−½, ½],不動點是 0。反例:值域必須留在同一個區間內——f(x) = x + 1 在 [−1, 1] 上連續,可是它把 1 送到 2,跑出區間,於是沒有不動點。
PROOF

要證的是 f(c) − c = 0 有解。等號右邊是零,這是中間值定理最合用的形狀。

證明計畫 · 由所求想起
所求是一個讓「輸出減輸入」歸零的點。把這個差本身做成一個函數 g,於是問題變成「g 取不取得到 0」。接著只要在兩個端點各算一次:值域被關在區間內這個前提,恰好讓 g 在左端非負、在右端非正。中間值定理接手。

Proof.  Put g(x) = f(x) − x for x ∈ [−B, B]; it is continuous by 20.6. Since f takes values in [−B, B] we have f(−B) ≥ −B and f(B) ≤ B, so
  g(−B) ≥ 0  and  g(B) ≤ 0.
這一步的所求:把前提翻譯成兩端的符號。用到的只有「像沒有跑出區間」這一句——左端點的像不可能比左端點更左,右端點的像不可能比右端點更右,兩句話各給一個不等號。這是整個證明唯一用到值域限制的地方,而它已經把事情辦完了。
If either quantity is zero, the corresponding endpoint is a fixed point. Otherwise g(−B) > 0 > g(B), so on the connected set [−B, B] we have inf g < 0 < sup g, and 22.4 provides a point c with g(c) = 0, that is, f(c) = c.
這一步收網。兩端的情形要先分開處理,因為中間值定理要的是嚴格不等式;端點恰好歸零時它派不上用場,可是那時候答案已經在手上了。區間 connected 由 12.8 給出。要留意這個 c 完全沒有位置資訊——定理不指出它在哪裡,也不保證只有一個。
一維的 Brouwer 定理只是中間值定理換個說法。∎
例 8兩條定理的分工:一條給算法,一條只給存在
同一個問題,23.5 與 23.8 各能說什麼?差距具體有多大?
  1. 取 f(x) = √(1 − x²) 於 D = [−1, 1]。它連續,而且值落在 [0, 1] ⊆ D 內,所以 23.8(或上面的一維版本)保證有不動點。
  2. 它不是 contraction:取 u = 1,則 |f(x) − f(1)| = √(1 − x²) = √((1 − x)(1 + x)),而 |x − 1| = 1 − x。兩者的比是 √((1 + x)/(1 − x)),x 趨近 1 時要多大有多大。任何倍率都被它衝破,遑論小於 1 的倍率。
  3. 所以 23.5 與 23.7 一句話都說不出來。而迭代確實幫不上忙:從 x₁ = 0 出發得 f(0) = 1、f(1) = 0、f(0) = 1⋯永遠在兩點之間跳,不收斂。
  4. 不動點本身還是解得出來(x = √(1 − x²) 給 x² = 1 − x²,取正根 1/√2),可是那是靠代數,不是靠定理。23.8 只承諾存在,這個例子把「只承諾存在」的意思演得很清楚。
  5. 對照 §23-4 例 6:那裡的函數是 contraction,於是迭代收斂、答案唯一、誤差事先算得出來、要跑幾輪也事先決定得了。四項保證,這裡一項都沒有。
第 3 步的振盪值得記住:連續加上「把球送回球內」保證得了終點存在,卻保證不了走得到。兩條定理的差別不在結論的強弱程度,而在有沒有附一條路徑——contraction 的每一步都把距離拉短,路徑因此自動收斂;只有連續時,路徑可以永遠繞著不動點打轉。
收縮:一路走到底 只有連續:來回跳

這張圖在說例 8 的對照:兩邊的虛線都是對角線,曲線與它的交點就是不動點。左邊每一步都被拉短,折線一路收攏到交點;右邊的折線繞成一個封閉的方框,永遠回到出發點。不動點在右圖裡確實存在(曲線與對角線交得到),可是迭代這條路走不到它——存在與可達是兩件事。

—— 第五階段到此結束 ——

本篇補上兩塊。23.7 處理定義域只有一顆球的情形:只要檢查原點的像離原點不超過 B(1 − C),整顆球就被送回自己之內,上一篇的證明原封適用;例 7 用它解一個二次方程式,並示範誤差估計可能相當鬆。23.8 則把要求放寬到只剩連續——存在性保得住,唯一性與算法全部失去;p = 1 的情形用上一節的中間值定理就地證完,手法與對蹠點那個例子相同。例 8 的振盪把兩條定理的分工演了一次。本節到此收工,起來走一走。

下一幕預告

本節從一個很小的觀察出發:δ 除了跟著 ε 走,還跟著位置走。把後面那個依賴拿掉就是均勻連續,而 compact 的定義域讓這件事免費發生。接著 Lipschitz 條件把「跟著位置走」壓成一個倍率,倍率小於 1 時甚至換來一個不動點與一套算法。

下一節把鏡頭從「一個函數」拉到「一列函數」。§17-2 已經定義過函數列的均勻收斂,當時留了一個沒回答的問題:§17-1 例 2 那列連續函數 xⁿ 的極限函數在端點不連續。連續會不會被極限弄丟?下一節給出精確的答案——弄丟的條件是收斂不夠均勻,而均勻收斂剛好把它保下來。同一節還會證明一件更強的事:任何在閉區間上連續的函數,都可以被多項式均勻逼近到要多準有多準。