§26-2  Stone-Weierstrass 定理

抽象的條件不好檢查。能不能換成幾個一眼可驗的代數要求——含常數、對線性組合與乘積封閉、能分開任意兩點?換條件要付出什麼代價?

換成三個代數條件

要調出任何一種顏色,需要的不是很多罐顏料,而是三件事:手上有白色(可以調亮)、可以任意比例混合、以及不同的顏料真的不同——若兩罐其實是同一色,混來混去也分不出新東西。

上一篇的條件 (a)「逐點取大取小之後還在族內」在實務上不好檢查:多項式取較大者根本不是多項式。本篇把它換成三個代數條件——含常數、對線性組合封閉、對乘法封閉——再加上一個「分得開任意兩點」。這四條每一條都是一眼可驗的。

換條件是要付代價的:這一次的證明必須引用 §24 的一個結果——絕對值函數可以被多項式均勻逼近。多項式在這裡不是主角,是把「取絕對值」這個非代數的動作翻譯成代數動作的工具。

26.2  STONE-WEIERSTRASS THEOREM
Let K be a compact subset of ℝᵖ and let 𝒜 be a collection of continuous real-valued functions on K such that
(a)  the constant function e(x) = 1 belongs to 𝒜;
(b)  f, g ∈ 𝒜 implies αf + βg ∈ 𝒜 for all α, β ∈ ℝ;
(c)  f, g ∈ 𝒜 implies fg ∈ 𝒜;
(d)  for any two distinct x, y ∈ K there is f ∈ 𝒜 with f(x) ≠ f(y).
Then every continuous real-valued function on K can be uniformly approximated on K by members of 𝒜.
(d) 只要求「分得開」——存在某個成員在兩點取不同的值,不必指定取什麼值。(a) 與 (b) 合起來就把「不同」放大成「任意指定」,這是證明的第一步。四條裡最容易漏掉的是 (a):少了常數函數,整族可能在某一點恆為零,那就逼不近任何在該點不為零的函數。
正例:K = [a, b] 上所有多項式。常數在籍、線性組合與乘積仍是多項式、而 f(x) = x 分得開任意兩點,四條全過——於是 26.2 重新證出 24.8,而且定義域可以換成 ℝᵖ 的任意 compact 子集。反例:[−1, 1] 上的偶多項式滿足 (a)(b)(c) 卻不滿足 (d)——它們在 x 與 −x 永遠取同一個值,於是逼不近 f(x) = x。
PROOF

K 至多一個點時 (a)(b) 已交出全部的常數函數,而單點上的連續函數就是常數,結論自明;以下設 K 至少有兩點,好讓 26.1 用得上。令 ℒ 為所有可以被 𝒜 均勻逼近的連續函數所成的集合。顯然 𝒜 ⊆ ℒ,而且 ℒ 對線性組合封閉(把兩個逼近各縮小一半誤差再組合)。目標是證明 ℒ 滿足 26.1 的兩個條件。

證明計畫 · 由所求想起
所求是湊齊 26.1 的兩個條件。條件 (b) 那一半便宜:(d) 給的「值不同」加上 (a)(b) 給的線性組合,解一個兩式兩未知數的方程組就能指定任意兩個值。
條件 (a) 那一半是全部的難處:要證 ℒ 對取大取小封閉,而由上一篇的恆等式,這等於要證 h ∈ ℒ 時 |h| ∈ ℒ。取絕對值不是代數動作,(a)(b)(c) 直接做不到——這時把絕對值函數換成一個多項式,代數動作就接得上了,而換得起的理由正是§24 的推論。

Proof.  Given a, b ∈ ℝ and x ≠ y in K, take f ∈ 𝒜 with f(x) ≠ f(y) by (d). Since e(x) = e(y) = 1, the two equations
  αf(x) + β = a,  αf(y) + β = b
have a solution, and g = αf + βe lies in 𝒜 by (a) and (b) and satisfies g(x) = a, g(y) = b. Hence ℒ has property 26.1(b).
這一步的所求:把「分得開」升級成「調得動」。兩式相減得 α(f(x) − f(y)) = a − b,而 (d) 保證括號裡不為零,所以 α 解得出來,β 隨之而定。這裡看得出 (a) 為什麼不可省:β 那一項要靠常數函數才進得了族內。也看得出 (d) 為什麼只要求「不同」——差多少無所謂,α 會自動縮放。
Now let h ∈ ℒ. Since K is compact, h is bounded, say ‖h‖_K ≤ M. Choose (hₙ) in 𝒜 converging uniformly to h, with ‖hₙ‖_K ≤ M + 1 for every n. Given ε > 0, apply 24.8 to the absolute value function on [−(M + 1), M + 1] to obtain a polynomial p with
  | |t| − p(t) | < ε/3  for |t| ≤ M + 1.
這一步的所求:找一個可以代進代數運算的替身。絕對值本身不是多項式,可是在一個有界區間上它逼得近多項式(§24 的推論),而有界正是 compact 送的(22.6)。區間取 M + 1 而非 M,是為了容納 hₙ 的值——它們只是逼近 h,可能稍微超出 M;捨去前面有限多項即可讓這個界成立,這一格是邊界簿記。
Then | |hₙ(x)| − p(hₙ(x)) | < ε/3 for every x ∈ K, and p ∘ hₙ ∈ 𝒜 by (a), (b), (c). Since | |h(x)| − |hₙ(x)| | ≤ ‖h − hₙ‖_K, taking n large gives
  | |h(x)| − p(hₙ(x)) | < ε  for x ∈ K.
Hence |h| ∈ ℒ.
這一步把替身接上。p ∘ hₙ 之所以留在 𝒜 內,是因為多項式無非是「常數、乘冪、線性組合」三件事的組合——(c) 生出 hₙ 的各次乘冪,(b) 把它們線性組合起來,(a) 補上常數項。這三條各司其職,缺一項就接不上。中間那個 | |h| − |hₙ| | ≤ ‖h − hₙ‖ 是反向三角不等式,與 22.7 的證明用的是同一句話。
By the identities of the preceding part, sup {f, g} and inf {f, g} are linear combinations of f, g and |f − g|, so ℒ also has property 26.1(a). Applying 26.1 to ℒ, every continuous function on K can be uniformly approximated by members of ℒ, hence by members of 𝒜.
這一步結案。最後那句「因而也被 𝒜 逼近」是一次三角不等式:ℒ 的成員與目標差 ε/2,𝒜 的成員與那個 ℒ 成員又差 ε/2——「逼近的逼近仍是逼近」,這也是 ℒ 這個中介集合值得引進的理由:它把「取絕對值」的困難與「兩輪 compact」的困難分開處理。
四個代數條件換到了上一篇要的那兩個條件。∎
常數 · 線性 組合 · 乘積 取絕對值封閉 取大取小封閉 靠多項式逼近絕對值 靠上一篇的恆等式 接上之後 26.1 直接適用

這張圖在說 26.2 的證明鏈:從純代數的四個條件出發,經過兩次翻譯抵達 26.1 需要的「取大取小封閉」。第一次翻譯是全篇唯一的難處——取絕對值不是代數動作,得先在一個有界區間上把它換成多項式,而多項式恰好是代數動作拼得出來的。第二次翻譯是上一篇那條恆等式,白送。

26.3  POLYNOMIAL APPROXIMATION THEOREM
Let f be continuous with domain a compact set K ⊆ ℝᵖ and values in ℝ^q, and let ε > 0. Then there is a polynomial function p on ℝᵖ to ℝ^q with ‖f(x) − p(x)‖ < ε for all x ∈ K.
§24 的 24.8 在兩個方向上被加強:定義域從 ℝ 的閉區間放寬成 ℝᵖ 的任意 compact 集合,值域從 ℝ 放寬成 ℝ^q。這裡「多項式函數」的意思是每個座標分量都是 p 個變數的多項式。
正例:單位圓 K = {(x, y) : x² + y² = 1} 是 compact,所以它上面任何連續函數都逼得近二元多項式——即使 K 本身不是方格也不是區間。反例:compact 少不得——§24-4 例 5 的兩個反例原封適用,多項式在無界或不封閉的定義域上追不上。
PROOF

高維的值域先拆成 q 個實值函數處理,最後再併回來——與 14.7 把收斂拆成逐座標的手法同源。

Proof.  Write f(x) = (f₁(x), ⋯, f_q(x)); each f_j is continuous on K to ℝ. The polynomial functions on ℝᵖ to ℝ satisfy (a)–(d) of 26.2: constants are polynomials, sums and products of polynomials are polynomials, and the coordinate function x ↦ x_i separates any two points differing in the i-th coordinate. So each f_j is uniformly approximated within ε/√q by a polynomial p_j.
這一步的所求:把 26.2 用在正確的地方。四條裡值得停一下的是 (d):兩個相異的點必定在某一個座標上不同,而那個座標的投影本身就是一個多項式——所以「分得開」這件事由座標函數整組承擔,不必另外構造。要留意誤差取 ε/√q 而非 ε,理由在下一格。
Put p(x) = (p₁(x), ⋯, p_q(x)). Then for x ∈ K
  ‖f(x) − p(x)‖² = Σ_j |f_j(x) − p_j(x)|² < q · (ε²/q) = ε²,
so ‖f(x) − p(x)‖ < ε.
這一格是簿記,可是那個 √q 的來歷值得記住。ℝ^q 的 norm 是各座標平方和開根號(8.7),所以 q 個各差 ε/√q 的座標合起來剛好差 ε——把誤差平均分攤到各座標時,分母是 √q 而不是 q。
高維的定義域與高維的值域一起被多項式追上。∎
例 2四族函數,四種判定
26.2 的四個條件都是一眼可驗的。拿四族具體的函數逐條檢查,看看哪一條最容易失守。
  1. 全部多項式於 [0, 1]:(a) 常數在籍;(b)(c) 多項式的線性組合與乘積仍是多項式;(d) f(x) = x 分得開任意兩點。四條全過,這就是 24.8。
  2. 偶多項式(只含偶次項)於 [−1, 1]:(a)(b)(c) 全過(偶次乘偶次仍是偶次),可是 (d) 失守——每個偶多項式在 x 與 −x 取同一個值。實際上它們逼不近 f(x) = x:任何偶函數 g 都有 |g(1) − 1| + |g(−1) + 1| ≥ 2,所以誤差至少是 1。
  3. 同一族偶多項式,定義域改成 [0, 1]:這次 (d) 過關——x² 在 [0, 1] 上分得開任意兩點(0 ≤ x < y ≤ 1 時 x² < y²)。四條全過,於是 [0, 1] 上的每個連續函數都逼得近只含偶次項的多項式。同一族函數,換個定義域就從失敗變成成功。
  4. 沒有常數項的多項式於 [0, 1]:(b)(c)(d) 全過,可是 (a) 失守。而它們確實逼不近常數函數 F ≡ 1——每個成員在 x = 0 都取 0,那一點的誤差恆為 1。
第 2 步與第 3 步的對照最值得記住:「分得開」是這一族與這個定義域合起來的性質,與 §23-1 說均勻連續時的觀察同源。第 4 步則說明 (a) 不是形式上的補充——它擋的是「整族在某一點被鎖死」這種失敗,而那種失敗與 (d) 擋的是不同的漏洞:(d) 管兩點之間分不分得開,(a) 管單一點上調不調得動。
偶函數左右對稱,追不上斜線 只留右半邊就追得上

這張圖在說例 2 第 2、3 步的分野:左邊的定義域左右對稱,偶函數被迫在對稱的兩點取同一個值,而目標的斜線在那兩點取相反的值,誤差無論如何壓不下去。右邊把定義域縮到只剩右半,對稱的那一對點不再同時在籍,偶函數就恢復了分辨能力。條件 (d) 檢查的正是這件事。

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

本篇把上一篇抽象的條件換成四個一眼可驗的代數條件(26.2)。證明的難處只有一個——取絕對值不是代數動作,得先在一個有界區間上把絕對值換成多項式,而那正是§24推論的用途;接上之後,上一篇的恆等式白送「取大取小封閉」。26.3 把結論推到高維的定義域與高維的值域,靠的是逐座標處理再併回來,誤差各分攤 ε/√q。例 2 的四族函數示範四條各自擋住什麼樣的失敗。喝口水、動一動,下一篇換一個完全不同的問題:一個只定義在部分區域上的連續函數,能不能擴張到整個空間?