§16-3  Bolzano-Weierstrass 的數列版

放棄單調之後只剩有界,還能得到什麼?集合版的 Bolzano-Weierstrass 定理能不能直接搬過來用——數列可以重複取值,這件事會造成什麼障礙?

鬆綁「單調」這個條件

單調收斂定理很有力,可是它的前提很苛刻:實際遇到的數列大多不單調。((−1)ⁿ/n) 一左一右地逼近 0,(sin n) 更是毫無規律——這些數列一條都不歸 16.1 管。

放棄單調之後,還剩什麼?有界。而有界本身推不出收斂(((−1)ⁿ) 就是反例)。但它推得出一件弱一點、卻仍然非常有用的事:總能從裡面挑出一條收斂的子數列。直覺是這樣的:把無限多個點關進一個有限大的範圍裡,它們沒有足夠的空間各自散開,一定會在某處擠成一團。這句話的集合版本,§10-3 的 Bolzano-Weierstrass 定理(10.6)已經證過了——有界的無限集必有 cluster point。現在要把它翻成數列的語言。

翻譯不是照抄,中間有一道真正的落差:10.6 談的是集合,而數列可以重複取值。((−1)ⁿ) 有無限多項,值集合卻只有兩個成員,連一個 cluster point 都沒有——10.6 對它完全使不上力,可是它顯然有收斂的子數列。所以證明必須分兩種情形處理。

16.4  BOLZANO-WEIERSTRASS THEOREM
Every bounded sequence in ℝᵖ has a convergent subsequence.
ℝᵖ 中每一條 bounded 的數列,都挑得出一條收斂的子數列。
正例:((−1)ⁿ) 有界,偶數項那條子數列 (1, 1, 1, ⋯) 收斂到 1(奇數項那條收斂到 −1,可見子數列的極限不唯一)。反例:有界少不得——(n) 的任何子數列 (rₙ) 都滿足 rₙ ≥ n,同樣無界,因此同樣發散(14.6)。
PROOF

設 X = (xₙ) 是 ℝᵖ 中的 bounded 數列,記 S₁ = {xₘ : m ≥ 1} 為它的值集合。

證明計畫 · 由所求想起
⇢ 按值集合的大小分兩種情形——因為 10.6 只對無限集有話講。
⇢ 值只有有限多種:必有一個值被取到無限多次,把它每次出現時各挑一項,得到常數子數列。
⇢ 值有無限多種:值集合有界又無限,10.6 交出一個 cluster point x*;接著以半徑 1, 1/2, 1/3, ⋯ 逐步收網,每次都從「更後面的項」裡挑一個進來。
⇢ 收網之所以永遠挑得到,是因為刪掉有限多個點不會毀掉 cluster point 的身分。
Proof.  Case 1: the sequence takes only finitely many distinct values. Then at least one value v is taken for infinitely many indices, since finitely many values covering infinitely many indices leaves some value used infinitely often. Listing those indices in increasing order gives a subsequence all of whose terms equal v; a constant sequence converges to v.
第一種情形靠的是純粹的計數。無限多個項分配到有限多個值上,必有一個值分到無限多項——這就是鴿籠原理,無限多個東西放進有限多格,必有一格裝了無限多個。把那個值 v 出現的所有編號由小到大排出來(它們有無限多個,所以排得出一串嚴格遞增的編號),依 15.1 這就是一條合格的子數列,而且每一項都等於 v。常數數列當然收斂到那個常數(每個 ε 都取 K = 1 即可)。具體:((−1)ⁿ) 只有兩個值,取值為 1 的編號是 2, 4, 6, ⋯,挑出來就是 (1, 1, 1, ⋯)。
Case 2: the sequence takes infinitely many distinct values, so the set S₁ is infinite; it is also bounded. Theorem 10.6 therefore provides a cluster point x* of S₁. Observe first that discarding finitely many points cannot destroy this: if F is finite and V is a neighborhood of x*, then V already holds infinitely many points of S₁, so it still holds one lying outside F and differing from x*. Hence x* remains a cluster point of every set S_r = {xₘ : m > n_{r−1}}.
第二種情形先取得 x*:值集合既是 bounded(數列有界)又含無限多個點,10.6(有界的無限集必有 cluster point)交出至少一個。接著要先辦一件不辦就會卡住的事:確認「刪掉前面有限多項」之後,x* 仍然是剩下那個集合的 cluster point。理由是 §10-2 例 1 順帶得到的事實——cluster point 的每一個 neighborhood 裡都有無限多個該集合的點。既然是無限多個,扣掉有限多個被刪的,還剩無限多個可用,其中當然找得到一個異於 x* 的。若少了這一步,收網進行到第二輪就沒有理由繼續。
Now construct the indices. Pick n₁ with ‖x_{n₁} − x*‖ < 1. Having chosen n_{r−1}, apply the observation to S_r = {xₘ : m > n_{r−1}} and to the ball V_r = {y : ‖y − x*‖ < 1/r}: some member of S_r lies in V_r, that is, ‖x_{n_r} − x*‖ < 1/r for some n_r > n_{r−1}. The indices increase strictly, so X′ = (x_{n_r}) is a subsequence, and Theorem 14.9 applied with a_r = 1/r and C = 1 gives lim X′ = x*.
收網的每一輪同時辦兩件事:把半徑減半再減三分之一地縮小(第 r 輪用半徑 1/r),並且只從編號比上一輪更大的項裡挑。第二件事保證了編號嚴格遞增,挑出來的東西才配稱子數列;第一件事保證誤差被 1/r 壓住。最後一步不必再做 ε-K——§14-4 的 14.9(誤差被一條已知趨零的數列壓住即收斂)直接收尾,那條趨零的數列就是 (1/r),常數 C 取 1。具體:第 100 輪挑到的那一項,離 x* 不到 0.01。
兩種情形都交出了收斂的子數列。∎
有界數列 (xₙ) 值只有有限多種 鴿籠:某值出現無限多次 值有無限多種 10.6:有 cluster point 常數子數列 半徑 1/r 逐步收網 兩路都交出收斂的子數列

這張圖在說 16.4 為什麼非分兩案不可:10.6 只對無限集有話講,而數列可以重複取值——((−1)ⁿ) 有無限多項卻只有兩個值,值集合連 cluster point 都沒有。左路用鴿籠原理直接造常數子數列,右路才輪得到 10.6。

x* 半徑 1 1/2 1/3 x_{n₁} x_{n₂} x_{n₃} 每輪只從更後面的項裡挑:編號嚴格遞增

這張圖在說收網的兩個約束怎麼同時滿足:半徑一輪比一輪小(1, 1/2, 1/3, ⋯),把誤差壓向零;而每一輪都限定只從編號更大的項裡挑,編號才嚴格遞增、挑出來的東西才算子數列。少了任何一個約束,結論都不成立。

聚點都追得到(16.5)

16.5  COROLLARY
If X = (xₙ) is a sequence in ℝᵖ and x* is a cluster point of the set {xₙ : n ∈ ℕ}, then some subsequence of X converges to x*.
若 x* 是數列值集合 {xₙ : n ∈ ℕ} 的一個 cluster point,則 X 有子數列收斂到 x*。
正例:xₙ = (−1)ⁿ(1 + 1/n) 的值集合以 1 與 −1 為 cluster points,因而各有一條子數列分別收斂到它們(偶數項與奇數項)。反例:不是每個 cluster point 都是極限——同一條數列有兩個 cluster point,而極限至多一個(14.5),可見這條推論給的只是子數列,不是整條數列的收斂。
PROOF

16.4 第二種情形的建構過程,本來就沒有用到「值有無限多種」以外的東西。

Proof.  The construction in Case 2 above used only that x* is a cluster point of the value set: from that fact alone it produced indices n₁ < n₂ < ⋯ with ‖x_{n_r} − x*‖ < 1/r, whence (x_{n_r}) converges to x*. Since a cluster point of a set requires every neighborhood to meet it in infinitely many points, that hypothesis is available here by assumption rather than via Theorem 10.6.
這條推論不需要新的論證——16.4 第二種情形的收網程序,從頭到尾只用到一件事:x* 是值集合的 cluster point。在 16.4 裡這件事是 10.6 幫忙生出來的(先確認值集合又大又有界),在這裡則是直接假設的。把證明拆開來看,10.6 只負責「保證 cluster point 存在」,收網程序負責「把它兌現成子數列」——後半段可以獨立出售。
每個 cluster point 都有一條子數列追得到它。∎
—— 第三階段到此結束 ——

「單調」鬆綁了:有界的數列不一定收斂,但一定挑得出收斂的子數列(16.4),而值集合的每個 cluster point 都追得到(16.5)。證明分兩案的理由值得記住——數列會重複取值,而集合版的 10.6 只對無限集有話講。不過 16.4 交出的仍然只是子數列,離「整條數列收斂」還差一步。下一篇 §16-4 引進本章最後、也最重要的概念:一條數列可以完全不提極限,光看自己的項互相靠攏,就決定自己的命運。起來動一動再繼續。