§10-2  聚點與 closed 判準

一個點的每個 neighborhood 都含有集合中異於它的點——這種點該怎麼正式定義?它與成員資格、與 §9 的 boundary point 是什麼關係?closed 能不能用它一句話判定?

為什麼需要 cluster point

怎麼判斷一個地點熱鬧?看它自己站沒站人並不準——收攤後的廟口正中央空無一人,明天傍晚它照樣是全鎮最熱鬧的位置。準的問法是看周圍:以那個位置為中心畫圈,方圓十公尺、一公尺、十公分——不管把圈縮到多小,圈裡總撈得到別人,這才叫熱鬧。反過來說,荒涼的意思是:存在一個夠小的圈,裡面除了自己再無他人。

「熱鬧」這件事,§9-3 的 neighborhood 已經給了畫圈的工具,本篇把它鑄成正式的詞——cluster point,然後兌現兩張支票:closed 的第二條免補集判準(10.5,與 §9-3 的邊界版 9.10 是同一枚硬幣的兩面),以及本節壓軸 Bolzano-Weierstrass 的全部詞彙。

10.3  DEFINITION
A point x ∈ ℝᵖ is a cluster point (or a point of accumulation) of A ⊆ ℝᵖ when every neighborhood of x, however small, holds some point of A other than x itself.
x ∈ ℝᵖ 為 A ⊆ ℝᵖ 的 cluster point(聚點,又稱 accumulation point),意思是 x 的「每一個」neighborhood(§9-3 定義 9.7)都含有 A 中異於 x 的點。
正例:0 是 {1, 1/2, 1/3, ⋯} 的 cluster point——圈再小,總有夠深的 1/n 掉進來,而且個個不是 0 本人。反例:同一個集合裡的 1/2 不是——半徑 1/10 的圈裡除了自己空無一人。熱鬧的兩道門檻:「每一個」圈都要撈到人,而且撈到的得是「別人」。
cluster point 不必屬於集合:定義從頭到尾只盤問「x 的 neighborhoods 撈不撈得到 A 的點」,沒有一個字要求 x ∈ A——上面的正例 0 就不在籍。熱鬧掛在「位置」上:收攤的廟口自己空著,熱鬧的身分照樣在。這件事與 §9-3 例 3 的邊界點如出一轍——身分與名冊是兩本帳。

六個檢驗(10.4)

六個檢驗分兩批。前兩個是翻譯練習:把「每一個 neighborhood」換成逐 n 交件的版本、再接上 §9-3 的邊界點;後四個拿具體集合開驗——區間、剃掉端點的區間、有理數點集、有限集與 ℤ。

例 1重寫 cluster point:x 是 A 的 cluster point ⟺ 對每個 n ∈ ℕ,都有 xₙ ∈ A 使 0 < |x − xₙ| < 1/n
「每一個 neighborhood」聽起來要驗無限多種形狀——這個檢驗說:驗半徑 1/n 的球就夠了。
兩個方向:每個 neighborhood 都撈到人 ⟺ 每個 1/n 都交得出 xₙ。
  1. (⟹)半徑 1/n 的球是 open set,按 §9-3 例 1 它是 x 的 neighborhood。因為 x 是 cluster point,這顆球撈得到 A 中異於 x 的點——命名為 xₙ;「異於 x」化成算式正是 0 < |x − xₙ|,「在球內」正是 |x − xₙ| < 1/n。
  2. (⟸)任給 neighborhood N。§9-3 例 1 交出一顆以 x 為心、半徑 r 的球 ⊆ N;取 n 大到 1/n < r,於是 xₙ 落在球內、也就落在 N 內——N 撈到人了。r = 0.003 就取 n = 334;r = 0.5 取 n = 3 已綽綽有餘。
  3. 換個讀法:cluster point 等於「有一串永不等於 x、卻越靠越近的 A 的成員」——這個序列觀點,本節第三篇的 Bolzano-Weierstrass 會正面用上。
r=1r=1/2r=1/3r=1/6 x 每一層都交出一個新成員,越靠越近,卻永遠不是 x 本人

這張圖在證重寫的方向:半徑 1、1/2、1/3、⋯ 的球(藍)一層層縮小,cluster point 的身分要求每一層都交得出一個異於 x 的成員 xₙ(黑點)——一串向 x(紅點)靠近、永不等於 x 的點,就是熱鬧的完整證詞。

驗 cluster point 不必面對所有 neighborhood——對每個 n 交出一個 xₙ 即可。這也順便說明:cluster point 附近有「無限多」個 A 的點(每縮一層都得換新人)。
例 2不在籍的 boundary point 必是 cluster point
§9-3 的邊界點與本篇的聚點都靠「畫圈撈人」發話——第一條正式通道在這裡打通。
設 x 是 A 的 boundary point 且 x ∉ A,證 x 是 A 的 cluster point。
  1. 任取 x 的 neighborhood N。因為 x 是 boundary point(§9-3 定義 9.7),N 必含 A 的點。
  2. 又因為 x ∉ A,撈到的那個點自動「異於 x」——cluster 的兩道門檻一次通過。
  3. 在籍的邊界點則不保證:A = {0} ∪ [1, 2] 的邊界點 0 在籍,它的小圈裡除了自己撈不到 A 的別人——不是 cluster point。「不在籍」這個前提少不得。
邊界上的「外人」必是聚點。§9-3 例 3 裡 (0, 1) 的兩個邊界點 0、1 正是現成的例子——下面例 4 會正面驗證。
例 3檢驗單位區間 I = [0, 1]:每一點都是 I 的 cluster point;interior points 恰好是 (0, 1)
第一個具體現場。這一例不另附圖——圖與例 4 合畫:同一條線段,差別全在端點的籍貫。
先驗全體成員的 cluster 身分,再清點 interior 名單。
  1. cluster:任取 x ∈ I 與任意 n。由於 x 至少有一側還連著整段區間,往那一側挪 1/(2n) 以內就撈得到別的成員——x = 1 時取 xₙ = 1 − 1/(2n)(n = 100 交出 0.995);x = 0.3 時取 0.3 + 1/(2n)。例 1 的判準逐項通過。
  2. interior:x ∈ (0, 1) 的配球 §9-1 例 2 早做過——r = min(x, 1 − x),球整顆留在 I 內。
  3. 端點落選:0 的任何球都伸進負數,因此 I 當不成 0 的 neighborhood;1 對稱。I 外面的點則一律荒涼——x = 1.5 用半徑 0.5 的球就撈不到 I(§9-2 例 3 給補集配圈時算的同一筆帳)。
I 的 cluster points 恰好是 [0, 1] 自己,一個不多、一個不少——10.5 會告訴你這正是 closed 的長相。interior points 恰是 (0, 1):兩個端點是成員、是 cluster point,卻不是 interior point。
例 4檢驗 A = (0, 1):0 與 1 不屬於 A,卻是 A 的 cluster points
例 3 的雙胞胎——剃掉兩個端點再驗一次,第一顆地雷就埋在這裡。
先確認 A 內部一切如常,再檢驗兩個被剃掉的端點。
  1. A 的每一點都是 interior point:§9-1 例 2 的配圈原封可用。又因為球 (x − r, x + r) 裡有 A 的別的點(x + r/2 就是一個),每一點同時也是 cluster point。
  2. 輪到 0——它不屬於 A。可是任給 n,點 1/(2n) 屬於 A,而 0 < |0 − 1/(2n)| = 1/(2n) < 1/n——例 1 的判準逐項打勾。n = 10 交出 0.05,n = 1000 交出 0.0005——供貨從不中斷。
  3. 1 對稱:xₙ = 1 − 1/(2n)。於是 A 的 cluster points 是整段 [0, 1]——比 A 自己多出兩個點。
01 0 的球:右半伸進 A 的地界 0 ∉ A(空心圈),可是怎麼縮圈都撈得到 A 的成員(藍點)

這張圖在證第一顆地雷:0 被 A = (0, 1) 拒於名單之外(空心圈),可是 0 的每顆球(紅虛線)右半都伸進 A 的地界,1/(2n) 這樣的成員(藍點)源源不絕——熱鬧看的是撈不撈得到人,名單上有沒有名字定義管不著。

cluster point 不必屬於集合:定義 10.3 從頭到尾只盤問「x 的 neighborhoods 撈不撈得到 A 的點」,沒有一個字要求 x ∈ A。集合邊上完全可以站著「不在籍的熱鬧點」——而 10.5 將把這件事變成 closed 的檢驗棒:漏收一個這種點,closed 就沒了。§9-2 篇末的 (0, 1] 正是現行犯:0 熱鬧、卻不在籍。
(0, 1) 的 cluster points 是 [0, 1],比集合本身大——cluster 身分與成員資格是兩本帳,得分開記。
例 5檢驗有理數點集 B = [0, 1] ∩ ℚ:cluster points 鋪滿整段 [0, 1],interior point 卻一個也沒有
前幾例的集合都是一整塊;這一例改用篩過的點集——處處都有點、卻處處是縫隙。
證 [0, 1] 的每一點都是 B 的 cluster point;再證 B 沒有任何 interior point。
  1. cluster 鋪滿:任取 x ∈ [0, 1] 與 n。因為任兩個相異實數之間都塞得進有理數(有理數的稠密性),區間 (x, x + 1/n)(x 太靠右緣就改看左側)裡挑得出落在 [0, 1] 內的有理數 q——於是 q ∈ B 且 0 < |x − q| < 1/n。x = √2/2 ≈ 0.7071⋯、n = 1000:q = 0.7075 交差。
  2. 注意 √2/2 自己是無理數、不屬於 B——例 4 的地雷在稠密集上加倍上演:不在籍的熱鬧點不只兩個端點,而是一整片無理數。
  3. interior 掛零:任給 q ∈ B 與任何半徑 r,球 (q − r, q + r) 裡必有無理數——無理數同樣稠密(§6-4 的 6.10(b)),q + √2/10ᵏ 取 k 夠大就掉進球裡——而無理數不屬於 B。由於每顆球都出界,B 連一個 interior point 都沒有。
01 球再小,藍點(B 的成員)都撈得到——cluster 處處 但球裡也永遠混著不在籍的點(紅圈)——interior 全無

這張圖在證兩件事怎麼同時成立:藍點(B 的成員)密到任何球都撈得到,所以 cluster points 鋪滿 [0, 1];可是點與點之間全是縫隙,任何球也都裝著無理數(紅圈示意)——球永遠出界,interior point 一個也生不出來。

B 的 cluster points 是整段 [0, 1],interior points 是空的——「處處熱鬧」與「擁有地盤」是兩回事,兩個新概念在這裡徹底脫鉤。
例 6檢驗有限集:cluster point 與 interior point 雙雙掛零
這一例有兩個值得自問的「Why?」——把答案補上,順便請回 §9-1 的老朋友 min。第二顆地雷在此拆除。
設 F = {p₁, ⋯, p_m} 為 ℝᵖ 的有限子集,證它既無 cluster point 也無 interior point。
  1. 任取 x ∈ ℝᵖ。先清掉一個邊角:若 F 中根本沒有異於 x 的成員(F 是空集、或恰好只有 x 一人),任取正半徑的球都撈不到「別人」,x 直接落選。否則把 F 中異於 x 的成員到 x 的距離列成清單:至少一個、至多 m 個正數。由於有限多個正數必有正的最小值 d——§9-1 證明 9.3(b) 兩個半徑取 min,這裡至多 m 個距離取 min,同一招——半徑 d/2 的球撈不到 F 中任何異於 x 的點:x 不是 cluster point。
  2. 具體:F = {0.2, 0.5, 0.9}、x = 0.5——清單 {0.3, 0.4},d = 0.3,半徑 0.15 的球裡只有 x 本人,F 的「其他」點一個也沒有;x = 0.35(不在 F 裡)——清單 {0.15, 0.15, 0.55},半徑 0.075 的球連一個 F 的點都撈不到。空間裡每一點都配得到一顆撈不到「別人」的球。
  3. interior 同樣掛零:成員 pᵢ 的任何球都裝著無限多個點,而 F 攏共 m 個成員——球裡絕大多數點不屬於 F,球永遠出界。
0.20.50.9 半徑 0.15 的球——除了自己,一個也撈不到 有限個距離取 min:每一點都配得到撈不到人的球

這張圖在證有限集為什麼處處荒涼:成員之間留著固定的空隙,取距離清單的最小值 d = 0.3,半徑 0.15 的球(藍)裡除了 0.5 自己一個人也沒有——縮圈撈人的遊戲,一開局就結束。

有限集養不出 cluster point:熱鬧靠的是無限供應——按例 1 的判準,x 得對「每一個」n 交出異於自己的新點,距離一路壓向 0;可是有限個成員各自與 x 保持著正距離,最小距離 d 以下就再也交不出貨。對照:無限集 {1, 1/2, 1/3, ⋯} 就養得出——對每個 n,成員 1/(n+1) 滿足 0 < 1/(n+1) < 1/n,所以 0 是它的 cluster point;而 0 又不屬於這個集合——本篇兩顆地雷在同一個集合上會齊。這個集合本節第三篇還會再登場。
有限集的 cluster point 與 interior point 雙雙掛零。無限也未必熱鬧:ℤ 有無限多個成員,但相鄰成員距離固定是 1,任何點的半徑 1/2 小球至多撈到一個成員;而例 1 結案時記過一筆——聚點的「每一圈」都得裝著無限多個成員(每縮一層都得換新人)——一個對不上無限多,ℤ 一個 cluster point 也養不出。「有限 ⟹ 不熱鬧」與「無限未必熱鬧」合起來讀,正是第三篇 Bolzano-Weierstrass 的伏筆:還得加上 bounded 才擠得出聚點。
三種身分互相獨立:成員、interior point、cluster point 是三本分開記的帳。下表五個現場,把常見的組合排開:
點 x / 集合 A成員?interior?cluster?
0.5 / (0, 1)是是是
0 / [0, 1]是否是
0 / (0, 1)否否是
0.5 / {0.2, 0.5, 0.9}是否否
5 / (0, 1)否否否
唯一被禁止的搭配只有一種:interior point 必然既是成員、也是 cluster point(球整顆在 A 裡,球心當然在籍,球裡的無數點也全是自家人)。其餘兩種身分互不牽制——記帳時別互相代扣。

closed 的第二判準(10.5)

closed 這邊的翻譯更痛快。§9-2 定義 9.4 得繞到補集發身分證;10.5 的判準一眼盯著集合自己:cluster points 收齊了沒。它與 §9-3 的 9.10(closed ⟺ 邊界全收)是同一枚硬幣的兩面——那裡用「邊界」發話,這裡用「熱鬧」發話。

10.5  THEOREM
A set F ⊆ ℝᵖ is closed if and only if F contains every one of its cluster points.
F ⊆ ℝᵖ 為 closed 的充要條件:F 的每一個 cluster point 都屬於 F。
正例:[0, 1] 的 cluster points 恰是 [0, 1](例 3),一個不漏——closed,與 §9-2 例 3 驗補集的結論相同,這次不碰補集。反例:(0, 1] 漏收了 cluster point 0——單這一個漏網,closed 就判定失敗(§9-2 篇末反例的正身)。

第一份小紅利立刻入袋:有限集沒有任何 cluster point(例 6),「全部收齊」對零個對象自動成立——空泛成立的老朋友(§9-1 例 6)。所以每個有限集都是 closed,一行字結案。

PROOF

兩個方向分開證:先證 closed 的 F 收齊自己的 cluster points(反證),再證收齊 cluster points 的 F 必是 closed(正面,靠 9.9 收尾)。

證明計畫 · 由所求想起
(⟹)要證:closed 的 F 收齊 cluster points。
⇢ 反證——假設某個 cluster point x 逃在外面,open 的補集就升格成 x 的 neighborhood。
⇢ 矛盾出口:這個 neighborhood 按 cluster point 的定義得撈到 F 的點,偏偏它整個避開 F。
(⟸)要證:收齊 cluster points 的 F 是 closed。
⇢ 等於:補集是 open——9.9(c) 剛好把 open 換成「是每個點的 neighborhood」。
⇢ 補集裡的點不是 cluster point,於是有一個撈不到 F 的 neighborhood——它整個塞進補集。
F x ? 假設 x ∉ F:球整顆泡在補集裡 可是 cluster point 要求球裡有 F 的點——兩句話撞在一起

這張圖在畫反證的矛盾機制本身:假設 cluster point x 逃在 F 外,closed 保證 x 配得到一顆整顆泡在補集裡的球(藍)——乾乾淨淨;可是 cluster point 的身分要求同一顆球裡必須撈得到 F 的點(紅圈打問號)。同一顆球不能既空又不空,假設崩塌。

Proof (⟹).  Let F be closed, and let x be a cluster point of F. Suppose x sat outside F. Then x ∈ 𝒞(F); since F is closed, 𝒞(F) is an open set containing x — hence a neighborhood of x.
(⟹) 走反證:設 x 是 closed 的 F 的 cluster point,假設它逃在 F 外面,也就是 x ∈ 𝒞(F)。因為 F 是 closed,按定義補集 𝒞(F) 是 open;而一個含著 x 的 open set 自動是 x 的 neighborhood——補集就此升格成 x 的 neighborhood,下一步的矛盾全靠這個身分。先看一眼對照組:F = (0, 1]、x = 0——0 真的逃在外面,但這個 F 的補集不是 open(§9-2 篇末反例驗過),升格失敗、矛盾根本點不著——不 closed 的集合正是從這一步漏走的。
Being a neighborhood of the cluster point x, the set 𝒞(F) would have to catch some point of F. Yet by its very construction 𝒞(F) holds no point of F at all. The two demands cannot coexist, so the supposition fails: x belongs to F.
矛盾的兩面在這裡撞上:因為 x 是 F 的 cluster point,它的每一個 neighborhood——包括剛升格的 𝒞(F)——都得撈到 F 的點;可是 𝒞(F) 按構造一個 F 的點也沒有。同一個集合不能既撈得到又一個都沒有,而全段唯一的假設是「x ∉ F」,錯的只能是它——因此 x ∈ F。正面實例對照:F = [0, 1] 的 cluster points 全落在 [0, 1] 內,這個方向帳面乾淨。
Proof (⟸).  Suppose instead that F holds every one of its cluster points; we verify that 𝒞(F) is open. Take any y ∈ 𝒞(F). Because y lies outside F while F contains all of its cluster points, y cannot be a cluster point of F.
(⟸) 換方向:假設 F 收齊了自己的全部 cluster points,要證的是補集 𝒞(F) 是 open。任取 y ∈ 𝒞(F)。因為 y 站在 F 外面,而 cluster points 按假設全在 F 裡面,所以 y 不是 F 的 cluster point——這裡還沒動手,只是把假設倒過來讀。
Unfolding "not a cluster point" produces a neighborhood V of y that meets no point of F other than y — and since y ∉ F, the set V meets no point of F at all. Consequently V ⊆ 𝒞(F).
這一步把「不是 cluster point」攤開:cluster point 要求「每一個 neighborhood 都撈得到 F 中異於 y 的點」,否定它就得到「有一個 neighborhood V 撈不到」——量詞翻面的標準動作(§9-1 例 2 證 [0, 1] 不 open 時,步驟 3 練過同一式)。定義原話只排除「異於 y 的點」;但上一步剛確認 y 自己不在 F 裡,所以 V 乾脆一個 F 的點都沒有——整個 V 落在補集 𝒞(F) 內。具體數字:F = [0, 1]、y = 1.01——V 取半徑 0.01 的球,整顆浸在補集裡;y = 1.5 寬裕得多,半徑 0.5 都行。
Inside V hides an open set containing y, and that open set lies inside 𝒞(F) as well — so 𝒞(F), too, is a neighborhood of y. As y ranged over all of 𝒞(F), Theorem 9.9 now certifies 𝒞(F) as open, and F is closed.
最後把「V 撈不到人」升級成「補集是 y 的 neighborhood」:V 是 neighborhood,裡面本來就藏著一個含 y 的 open set;而上一步證了 V ⊆ 𝒞(F),這個 open set 便也躺在更大的 𝒞(F) 裡,於是 𝒞(F) 照樣是 y 的 neighborhood。由於 y 是補集裡任取的,補集的每一點都領到這個身分,§9-3 的 9.9(open 的三種說法——其中 (c)⟹(a):集合是自己每一點的 neighborhood 就是 open)隨即判定 𝒞(F) open,F 是 closed。這正是本篇把 §9-3 列為前置的原因:下半場整段站在 9.9 的肩膀上。
兩個方向合攏:closed ⟺ 自家的 cluster points 一個不漏。驗 closed 從此多了一條不經補集的路——盤點有沒有漏網的熱鬧點即可。∎
—— 第二階段到此結束 ——

cluster point 立案完畢:熱鬧看位置不看名冊,有限集養不出熱鬧、無限而不 bounded 的 ℤ 也養不出。closed 從此有了第二條免補集判準——聚點全收(10.5),與 §9-3 的邊界版本互為表裡。下一篇 §10-3 把本節兩位主角接上線:bounded 且無限的集合,聚點必然存在——Bolzano-Weierstrass。先離開螢幕伸展一下背,回來看壓軸。