§24-3  Bernstein 多項式

有沒有一組不必分段的逼近工具——一條公式管一整條區間?如果只讀取函數在有限多個等距點上的值,再配上隨位置移動的權重,會得到什麼?

一組寫得出公式的多項式

要估計某個路口此刻的車流量,手上只有幾個測站的讀數。合理的作法是取加權平均:離這個路口越近的測站權重越高,越遠的越低,而所有權重加起來是一。測站夠密時,這個加權平均就相當接近實際值。

下面這組多項式做的正是這件事。它只讀取 f 在 n + 1 個等距點上的值,配上一組隨 x 移動的權重加起來。權重本身是 x 的多項式,所以加權平均也是多項式——而神奇的是,n 一大,這個加權平均就均勻收斂到 f。

上一篇的兩件工具都得先把定義域切段。這一次不必:一個公式、一整條區間。

24.6  DEFINITION
Let f have domain I = [0, 1] and values in ℝ. The n-th Bernstein polynomial for f is
  Bₙ(x) = Σ_{k=0}^{n} f(k/n) φ_k(x),  where
  φ_k(x) = C(n, k) xᵏ (1 − x)^{n−k}.
Bₙ(x) 是 f 在 0, 1/n, 2/n, ⋯, 1 這 n + 1 個點上的值的加權平均,權重 φ_k 隨著 x 移動。每個 φ_k 在 I 上非負、在 x = k/n 處達到最大,而 k/n 離 x 遠時它很小——所以離 x 近的取樣點說話比較大聲。
正例:n = 1 時 φ₀ = 1 − x、φ₁ = x,於是 B₁(x) = f(0)(1 − x) + f(1)x——恰好是連接兩端點的那條直線。反例:Bₙ 不是插值多項式,除了兩個端點以外一般不通過曲線上任何一點——取 f(x) = x²、n = 2、x = ½,則 B₂(½) = 0.375 而 f(½) = 0.25。
LEMMA · 權重的四條帳
For every x ∈ I and every n ∈ ℕ:
(a)  Σ_k φ_k(x) = 1;
(b)  Σ_k (k/n) φ_k(x) = x;
(c)  Σ_k (k/n)² φ_k(x) = (1 − 1/n)x² + x/n;
(d)  Σ_k (x − k/n)² φ_k(x) = x(1 − x)/n ≤ 1/(4n).
(a) 說權重加起來是一——所以 Bₙ 真的是加權「平均」。(b) 說取樣點的加權位置恰好落在 x 上。(d) 是全篇的關鍵:它量出取樣點對 x 的離散程度,而右邊隨 n 一起趨向零——這正是「權重集中到 x 附近」的精確意思。
正例:n = 2、x = ½ 時三個權重是 ¼, ½, ¼,(a) 給 ¼ + ½ + ¼ = 1,(b) 給 0 · ¼ + ½ · ½ + 1 · ¼ = ½,(d) 給 ¼ · ¼ + 0 + ¼ · ¼ = ⅛ = ½ · ½ / 2,全部吻合。反例:(c) 的右邊不等於 x²——差了 x(1 − x)/n,而這個差正是 (d) 的來源,它不能被忽略。
PROOF

四條全部從二項式定理 (s + t)ⁿ = Σ_k C(n, k) sᵏ t^{n−k} 出發,代入 s = x、t = 1 − x。用到的另外兩個工具是階乘的兩條約分。

證明計畫 · 由所求想起
(a) 是二項式定理直接代入。(b) 與 (c) 的困難在於左邊多了一個 k 或 k² 的因子,而那個因子恰好可以被約進二項式係數裡:k · C(n, k) 化成 n · C(n−1, k−1),於是整條和又變回一次二項式定理,只是階數少一。(d) 完全不必再碰二項式定理——把平方展開,三項各自引用 (a)(b)(c) 即可。

Proof.  (a) Put s = x and t = 1 − x in the binomial theorem; the left side is 1ⁿ = 1.
(b) From k · C(n, k) = n · C(n−1, k−1) for k ≥ 1,
  Σ_k (k/n) φ_k(x) = x Σ_{j=0}^{n−1} C(n−1, j) xʲ (1 − x)^{n−1−j} = x,
using (a) with n − 1 in place of n.
這一步的所求:把礙事的 k 消掉。那條約分寫開就是 k · n!/(k!(n−k)!) = n · (n−1)!/((k−1)!(n−k)!)——分子的 k 與分母 k! 的最後一個因子對消,剩下的形狀恰好是階數少一的二項式係數。之後把一個 x 提出來(因為指標從 k 換成 j = k − 1 時 xᵏ 少了一次),剩下的和就是 (a)。k = 0 那一項本來就是零,加不加都一樣,這一格是邊界簿記。
(c) Similarly k(k−1) · C(n, k) = n(n−1) · C(n−2, k−2) gives Σ_k k(k−1) φ_k(x) = n(n−1)x². Adding Σ_k k φ_k(x) = nx from (b) yields Σ_k k² φ_k(x) = n(n−1)x² + nx, and dividing by n² gives (c).
這一步的手法與上一步相同,只是約掉兩個因子而不是一個。為什麼先算 k(k−1) 而不是直接算 k²?因為只有連續兩個整數的乘積約得進階乘——k² 本身約不掉,所以先取 k(k−1),再把差額 k 用 (b) 補回來。這是處理這類求和的標準手法。
(d) Expanding the square and using (a), (b), (c) in turn,
  Σ_k (x − k/n)² φ_k = x² − 2x · x + (1 − 1/n)x² + x/n,
which simplifies to (x − x²)/n = x(1 − x)/n. On I the product x(1 − x) is at most ¼, giving the stated bound.
這一步是全篇最重要的一格。展開之後三項各引用一條帳,而 x² 的係數 1 − 2 + (1 − 1/n) 恰好收成 −1/n——若 (c) 的右邊真的等於 x²,這裡就會全部歸零而得到零,那顯然不對。所以 (c) 那個看似礙眼的誤差項正是 (d) 的全部內容。最後 x(1 − x) ≤ ¼ 由 (x − ½)² ≥ 0 展開即得,在 x = ½ 取到等號。
四條帳把權重的分布量清楚了:總和為一、重心落在 x、離散程度不超過 1/(4n)。∎
n 小 n 中 n 大 總和恆為一,離散程度不超過 1/(4n)

這張圖在說引理 (a) 與 (d) 合起來的意思:三組長條各是某個 n 之下的權重分布,每一組的面積總和都是一((a)),可是 n 越大就越集中在中央((d))。中央的位置永遠對準當下的 x((b))。所以 Bₙ(x) 讀到的主要是 f 在 x 附近的值,而遠處的取樣點雖然在名單上,發言權隨 n 一起消失。

24.7  BERNSTEIN APPROXIMATION THEOREM
Take f continuous on I = [0, 1] with real values. Then the sequence (Bₙ) of Bernstein polynomials for f converges uniformly on I to f.
一條公式,一列多項式,均勻收斂到任何一個連續函數。這是建構式的結果——不只說「存在多項式逼得夠近」,還把那些多項式直接寫給你,而且只用到 f 在有限多個等距點上的值。
正例:f(x) = x² 時 Bₙ(x) = (1 − 1/n)x² + x/n,誤差恰為 x(1 − x)/n ≤ 1/(4n),確實均勻趨零(例 4 逐步算)。反例:定理只管 [0, 1]——換成無界的定義域就不成立,下一篇會給出反例。Bₙ 的取樣點固定在等距的格子上,離開有界區間就無從取樣。
PROOF

定義域 I compact,所以 f 有界(記 |f(x)| ≤ M,由 22.6)且均勻連續(23.3,記 δ(ε))。兩個性質等一下各管一半的取樣點。

證明計畫 · 由所求想起
所求是把 |f(x) − Bₙ(x)| 壓到與 x 無關的一個小數。由引理 (a),f(x) 自己可以寫成同一組權重的加權平均,於是差就整齊地變成一整條加權的誤差和。
接著把取樣點分成兩堆:離 x 近的用均勻連續壓誤差,離 x 遠的用權重很小這件事壓權重。分界線取在 n^{−1/4}——它比 δ(ε) 小(n 夠大時),又比引理 (d) 的尺度 n^{−1/2} 大,剛好讓兩邊都吃得下。

Proof.  By (a) we may write f(x) = Σ_k f(x) φ_k(x), so
  |f(x) − Bₙ(x)| ≤ Σ_k |f(x) − f(k/n)| φ_k(x),
using that every φ_k(x) is non-negative on I.
這一步的所求:把兩個看起來不相干的東西寫成同一個形狀。訣竅是把常數 f(x) 乘上「總和為一」的那組權重——它的值一點都沒變,可是形式上變成了與 Bₙ 同構的加權和,兩者相減時權重就提得出來。這是引理 (a) 唯一但不可替代的用途。非負這件事讓絕對值進得了求和號。
Given ε > 0, take n ≥ sup {δ(ε)^{−4}, M²/ε²} and split the sum. For those k with |x − k/n| < n^{−1/4} we have n^{−1/4} ≤ δ(ε), so each factor |f(x) − f(k/n)| is less than ε; hence this part is at most ε Σ_k φ_k(x) = ε.
這一步處理近處的取樣點。均勻連續在這裡是必要的:δ 得對所有 x 通用,因為分界線 n^{−1/4} 是一個與 x 無關的數——若 δ 跟著位置變,就沒有一個 n 對整條區間都夠大。放大時再用一次 (a):把近處那部分的權重放寬成全部的權重,總和是一,於是這一整堆的貢獻不超過 ε。
For those k with |x − k/n| ≥ n^{−1/4} we have 1 ≤ √n (x − k/n)², and |f(x) − f(k/n)| ≤ 2M. Hence by (d) this part is at most
  2M √n Σ_k (x − k/n)² φ_k(x) ≤ 2M √n · 1/(4n) = M/(2√n),
which is at most ε/2 because √n ≥ M/ε.
這一步處理遠處的取樣點,而手法完全相反。遠處的誤差沒有任何辦法壓小(只能用最粗的界 2M),所以改壓權重——把「1」偷換成 √n(x − k/n)²,這個替換在遠處成立而且只會放大,於是整堆權重被引理 (d) 一次收走。分界線的指數在這裡顯出用意:取 n^{−1/4} 使得 (x − k/n)² ≥ n^{−1/2},倒數恰好是 √n,與 (d) 的 1/n 相乘之後剩下 1/√n ——仍然趨向零。
Adding the two parts gives |f(x) − Bₙ(x)| < 2ε for every x ∈ I and every such n. Hence ‖Bₙ − f‖_I → 0, that is, (Bₙ) converges uniformly on I to f.
這一步結案。「與 x 無關」這五個字是均勻收斂的全部要求,而回頭檢查會發現整段論證裡沒有任何一個量偷偷依賴 x:M 是全域的界,δ(ε) 是均勻連續給的,分界線 n^{−1/4} 是純數字,引理 (d) 的上界 1/(4n) 也已經把 x 消掉。最後的 2ε 不影響結論——想要 ε 就一開始送 ε/2 進去。
一條寫得出來的公式,把任何連續函數逼到任意精度。∎
x 近處:誤差小 遠處:權重小 遠處:權重小 分界線取在 n 的負四分之一次方

這張圖在說 24.7 的拆分策略:以當下的 x 為中心畫兩條虛線,把 n + 1 個取樣點分成兩堆。近處那一堆,每一項的誤差被均勻連續壓住,權重則放寬成全部(總和是一);遠處那一堆,誤差只能粗估成 2M,改由權重被引理 (d) 一次收走。兩邊各自的弱點恰好被對方的強項補上,這正是分界線位置要精心挑選的原因。

例 4三個算得出來的 Bernstein 多項式
定理保證收斂,可是收斂得多快?拿三個最簡單的函數實際算一次。
  1. 常數函數 f(x) = 1:引理 (a) 直接給 Bₙ(x) = 1,對每個 n 都完全正確,誤差恆為零。
  2. 一次函數 f(x) = x:引理 (b) 給 Bₙ(x) = x,同樣完全正確。所以 Bernstein 多項式把一次以下的函數原樣還原。
  3. 平方函數 f(x) = x²:引理 (c) 給
      Bₙ(x) = (1 − 1/n)x² + x/n。
    這次不正確,誤差是 Bₙ(x) − x² = x(1 − x)/n,在 x = ½ 最大,等於 1/(4n)。
  4. 代數字:n = 2 時 B₂(x) = x²/2 + x/2,在 x = ½ 得 0.375,而 f(½) = 0.25,誤差 0.125 = 1/8,與公式吻合。
  5. 要讓誤差全程小於 1/1000:需要 1/(4n) < 0.001,也就是 n > 250,取 n = 251。收斂速度只有 1/n 這個量級,比上一篇的折線(誤差與段寬平方成正比)慢得多。
  6. 兩個端點永遠準確:Bₙ(0) = f(0)、Bₙ(1) = f(1),因為 x = 0 時只有 φ₀ 不為零,x = 1 時只有 φₙ 不為零。中間的點則一律是加權平均,通常不通過曲線。
Bernstein 多項式的價值不在速度,在普適與建構:同一條公式對每個連續函數都成立,而且明明白白寫得出來,不必分段、不必挑點。第 5 步的 1/n 說明它不是實務上最有效率的逼近工具——可是下一篇會看到,它足以推出一個關於所有連續函數與所有多項式的一般性結論。
1/(4n) y = x² 兩個端點永遠準確

這張圖在說例 4 的收斂樣貌:三條淺色曲線是 f(x) = x² 的 Bernstein 多項式,n 越大越貼近深色的拋物線。兩個端點永遠準確(那裡只剩一個權重不為零),而最大的落差固定發生在 x = ½,大小恰是 1/(4n)。落差全部朝同一個方向——Bernstein 多項式在這裡一律偏高,因為它把曲線兩側的值平均了進來。

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

本篇造出 Bernstein 多項式:f 在 n + 1 個等距點上的值,配一組隨 x 移動的多項式權重。引理的四條帳把權重量清楚——總和為一、重心對準 x、離 x 的離散程度不超過 1/(4n)。24.7 的證明把取樣點分成兩堆:近處壓誤差、遠處壓權重,兩邊各自的弱點被對方補上,而分界線 n^{−1/4} 的位置就是為此挑的。例 4 算出常數與一次函數被原樣還原、平方函數的誤差恰是 1/(4n)。起身走走,下一篇把這個結果推到任意的閉區間,並看看它在哪些地方會失效。