§29-1  分割與 Riemann–Stieltjes 和

要把一段區間「切成許多小段」寫成數學語言,需要哪些資料?切得更細這件事又該怎麼比較?而在每一小段上取代表值時,取哪一點會不會影響答案?

先把「切法」講清楚

家裡的電表只會往前走,數字從不倒退。抄表員來的時候,他不看電表現在停在幾度,他看的是「這一次的讀數減掉上一次的讀數」。

如果電價分時段——白天一個價、深夜另一個價——帳單就不能拿單一價格乘上整個月的總度數。得把一個月切成幾段,每一段算「那一段的電價乘上那一段走掉的度數」,最後全部加起來。這裡有一件事值得停下來看:每一段的份量不是它有幾天,而是電表在那一段走了多少格。兩段一樣長的日子,一段整天開著冷氣、一段全家出門,算出來的份量差得很遠。

帳單的算法裡其實藏著兩個可以分開處理的問題:一個月要怎麼切,以及每一段該算多重。本篇先把「怎麼切」寫成一個可以逐條檢驗的東西,再把「每一段算多重」交給一個可以自由挑選的函數——挑不同的函數,同一段時間就會被算出不同的份量。

一個子區間 a = x₀ x₁ x₂ x₃ x₄ b = xₙ 兩端釘死,中間只有有限多個點

這張圖在說「一個切法」需要哪些資料:一串由左到右的點,最左邊那個必須是區間的左端點、最右邊那個必須是右端點,而且總共只有有限多個。點一旦定下來,子區間也就跟著定下來了——相鄰兩點之間夾出來的那一段(藍色加粗的就是其中一段),不必另外指定。

先把場地講定。以下 f 與 g 都是定義在同一個閉區間 J = [a, b] 上的實值函數(§2-1 的 2.1:函數把定義域裡的每個點配上恰好一個值),而且 a < b、兩者都在 J 上有界。這三件事是整節的通用前提,後面不再逐條重述。a < b 保證本節談的主區間不是縮成一點的退化情形。(定義卡本身寫的是 a ≤ b,比這個前提寬一格——把區間從端點切開時會冒出退化的子區間,定義得涵蓋得到它,那時每一段的增量都是零、和也是零。)有界在本篇還派不上用場——本篇只把和寫出來,還不做任何估計——可是之後要把每一項壓住時,靠的就是它。
DEFINITION  ·  PARTITION AND REFINEMENT
Let a ≤ b and J = [a, b]. A partition of J is a finite list P = (x₀, x₁, …, xₙ) of reals with a = x₀ ≤ x₁ ≤ ⋯ ≤ xₙ = b; its subintervals are the [xₖ₋₁, xₖ].
Call Q a refinement of P, written P ≤ Q, when every partition point of P is also a partition point of Q.
一個分割就是一串把 J 從左端走到右端的點:第一個釘在 a、最後一個釘在 b,中間由左到右不往回走,而且總共只有有限多個。第 k 個子區間是相鄰兩點夾出來的 [xₖ₋₁, xₖ],不必另行宣告。這裡用的關係符號是 ≤ 而不是 <(§5-1 的 5.3:a ≤ b 的意思是差額 b − a 非負,允許它恰好是零),所以相鄰兩個分割點可以重合;那樣的子區間縮成一個點,等一下寫出來的和裡它那一項也是零,一切照常。加細的意思只有一句話:Q 把 P 的分割點一個不漏地留著,另外可以再插進任意多個新點——只准加點,不准挪點。由這一句立刻得到兩件之後會反覆用到的事。其一,任給兩個分割,把它們的分割點併成一組,得到的就是一個同時加細兩者的分割,因此任兩個分割都有共同的加細。其二,加細之後每個舊的子區間要嘛原封不動、要嘛被新點切開,於是子區間只會變短、不會變長。最後留意 P ≤ Q 這個記號談的是分割之間的關係,不是數的大小:§5-2 的 5.4 說任兩個實數必定恰好落在大於、等於、小於三者之一,可是兩個分割完全可能互不加細,誰也管不到誰。
正例:取 J = [0, 2]、P = (0, 1, 2)。Q = (0, 0.5, 1, 2) 是 P 的加細——P 的三個點 0、1、2 在 Q 裡一個不少,Q 只是多插了 0.5。反例:R = (0, 1.5, 2) 不是 P 的加細,因為 P 的分割點 1 不在 R 裡;倒過來 P 也不是 R 的加細,因為 R 的 1.5 不在 P 裡。這一對就是「兩個分割不見得比得出高下」的現成樣本,可是它們仍然有共同的加細 (0, 1, 1.5, 2)——把兩邊的點併起來就是。
P Q 舊的點原位不動 藍色是新插進去的三個點

這張圖在說加細到底做了什麼動作:虛線把上下兩排的舊分割點對齊,每一個都落在原來的位置上,下面那排只是額外多了三根藍線。所以加細永遠不會把某一段變長——新點只會把舊的子區間再切開,切不到的那幾段原樣保留。「挪動一個分割點」不在允許的動作之內。

P R 共同加細 把兩邊的點併起來,兩者就都被加細了

這張圖在說為什麼「任兩個分割都有共同的加細」這件事不必費力去證:P 與 R 誰也不是誰的加細(各自那個中間點對方都沒有),可是把兩邊的分割點倒進同一個集合,得到的第三條線同時含住了上面兩條的每一個點。這個動作對任何兩個分割都做得出來,用到的只有「分割點只有有限多個」。

29.1  DEFINITION  ·  RIEMANN-STIELTJES SUM
Let P = (x₀, …, xₙ) be a partition of J and pick an intermediate point ξₖ ∈ [xₖ₋₁, xₖ] in each subinterval. The associated Riemann-Stieltjes sum is
  S(P; f, g) = Σ f(ξₖ)·[g(xₖ) − g(xₖ₋₁)],
the sum running from k = 1 to n.
Taking g(x) = x reduces it to the Riemann sum Σ f(ξₖ)(xₖ − xₖ₋₁).
每一項都是同一個形狀:一個代表值乘上一段的權重。代表值是 f 在中間點 ξₖ 的值,而 ξₖ 由我們在子區間 [xₖ₋₁, xₖ] 裡自由挑,兩個端點也在可挑的範圍內;權重則是 g 在該段兩端的增量 g(xₖ) − g(xₖ₋₁)。g 取成 g(x) = x 時,增量恰好等於子區間的長度,於是每一項成了「高乘寬」,整個和就是一排長條的面積總和,這正是微積分課上那個 Riemann 和。換一個 g,同一段區間可以被算得重、也可以被算得輕,甚至可以完全不計(增量為零)——把權重從長度鬆綁,就是這一整節存在的理由。還有一件事必須當心:S(P; f, g) 這個記號裡只寫了分割與兩個函數,中間點的挑法一個字都沒出現,因此它不是一個由 P 唯一決定的數。同一個 P 配上不同的中間點,一般會給出不同的和。這不是記號偷懶,而是必須正面處理的事實:下一篇把積分寫成定義時,§29-2 的 29.2(g-可積:越切越細時所有的和都逼近同一個數)之所以要求「對應該分割的任何一個和」都靠近同一個數,理由就在這裡。
正例:取 J = [0, 2]、f(x) = x²、g(x) = x、P = (0, 1, 2)。兩段的增量都是 1;中間點挑 ξ₁ = 0.5、ξ₂ = 1.5,得
  S(P; f, g) = 0.25 × 1 + 2.25 × 1 = 2.5。
反例(針對「S(P; f, g) 是由 P 決定的一個數」這個誤讀):同一個 P、同樣兩個函數,改挑 ξ₁ = 1、ξ₂ = 2,得
  S(P; f, g) = 1 × 1 + 4 × 1 = 5。
兩個數都有資格叫做「對應 P 的 Riemann–Stieltjes 和」,而 2.5 ≠ 5。
權重是長度 權重是增量 四段等寬 四段不等寬 高一模一樣,換掉的只有每一段的份量

這張圖在說 29.1 把什麼東西鬆綁了:兩排長條的高完全一樣(同一個 f、同一個分割、同一組中間點),差別只在寬。右邊那排的寬畫的是 g 在該段的增量,不是子區間在數線上的長度——第二段被算得特別重,第一段與第三段幾乎不計。左邊是 g(x) = x 的情形,權重退化成長度,於是每一條的面積就是熟悉的「高乘寬」。

例 1權重換成別的量:同一個 f、不同的 g
把被積的那個函數固定成最簡單的常數 1,只換 g,算出來的和會差多少?而它會不會隨著切法一起變?
  1. 場地:J = [0, 2]、f(x) = 1 對每個 x 都成立。任取一個分割 P = (x₀, ⋯, xₙ)、任取一組中間點。因為 f 恆等於 1,每一項的代表值都是 1,中間點根本沒進到式子裡。
  2. 於是和只剩下一串增量相加:
      S(P; f, g) = Σ [g(xₖ) − g(xₖ₋₁)]。
    相鄰兩項裡的 g(xₖ) 一個帶正號、一個帶負號,逐項對消,最後只剩兩端:
      S(P; f, g) = g(b) − g(a)。
    由於中間所有的分割點都消掉了,這個值與切法無關、也與中間點無關——三個 g 的答案因此各自是一個固定的數。
  3. 第一個 g:g(x) = x。每一項的增量是子區間的長度,和就是全部長度相加,也就是 g(2) − g(0) = 2。拿 P = (0, 0.5, 1.7, 2) 實算:0.5 + 1.2 + 0.3 = 2,對上了。
  4. 第二個 g:g(x) = 5 對每個 x 都成立。任何一段的增量都是 5 − 5 = 0,所以和恆為 0;用第 2 步的式子看也一樣,g(2) − g(0) = 0。權重全部歸零,被積的是什麼都量不到。
  5. 第三個 g:g 在 [0, 1) 上取 0、在 [1, 2] 上取 7。第 2 步給 g(2) − g(0) = 7 − 0 = 7。細看是哪一段扛下這個 7:拿 P = (0, 0.5, 1.7, 2),三段的增量依序是 0、7、0,只有跨過 1 的中間那段不為零。換 P = (0, 1, 2) 再算一次:g(1) − g(0) = 7、g(2) − g(1) = 0,和還是 7,只是扛它的換成了第一段。
  6. 三個答案並排:2、0、7。f 從頭到尾都是同一個常數函數,一次也沒換過。
f 恆為 1 這個選擇,讓每一項只剩下權重,於是和塌縮成 g 在兩端的差——「這一段有多重」完全由 g 說了算。換一個 g,就是換一種計量方式:第一個 g 量的是長度,第二個什麼都不量,第三個把全部份量壓在單獨一個點上。
g(x) = x g(x) = 5 跳一次的 g 和 = 2 和 = 0 和 = 7 和都等於兩端的差

這張圖在說例 1 的三個答案是怎麼來的:和等於 g 右端點的值減左端點的值,所以只要看每張小圖的兩端差多少就夠了。左圖從 0 爬到 2,中圖從頭到尾停在 5(差為零),右圖在 x = 1 一口氣從 0 跳到 7(實心點是跳完之後的值)。三張圖的差異全在 g,被積的那個常數函數一次都沒換。

例 2中間點怎麼挑,和就差多少
同一個分割,換一組中間點,算出來的數會不會其實一樣?如果不一樣,差距有多大、能不能靠切得更細抹掉?
  1. 場地:J = [0, 1]、f(x) = x、g(x) = x。把 J 分成 n 等分,分割點是 xₖ = k/n,每一段的增量都是 1/n。
  2. 中間點全取左端,也就是 ξₖ = xₖ₋₁ = (k − 1)/n:
      S = Σ ((k − 1)/n)·(1/n)
      = (1/n²)·[0 + 1 + ⋯ + (n − 1)]
      = (1/n²)·n(n − 1)/2 = (n − 1)/(2n)。
  3. 中間點全取右端,也就是 ξₖ = xₖ = k/n:
      S = (1/n²)·[1 + 2 + ⋯ + n]
      = (1/n²)·n(n + 1)/2 = (n + 1)/(2n)。
  4. 兩者相減:(n + 1)/(2n) − (n − 1)/(2n) = 2/(2n) = 1/n。這兩個和用的是同一個分割,差別只在中間點怎麼挑。
  5. 代數字看:n = 8 時左端給 7/16 = 0.4375、右端給 9/16 = 0.5625,相差 1/8。n = 100 時是 0.495 與 0.505,相差 0.01。
  6. 切得更細確實有幫助:由 §6-3 的 6.6 Archimedean 性質(任給一個實數,都有自然數比它大),把 1/ε 送進去就得到一個 n 使 1/n < ε。所以差距要多小有多小。可是「要多小有多小」不等於「是零」:n 一旦固定下來,這兩個和就實實在在相差 1/n。
  7. 中間點還可以挑得更任性——每一段各挑各的,左一段取左端、右一段取右端。這樣得到的和落在剛才那兩個數之間,而且有無限多種。S(P; f, g) 這個寫法指的不是一個數,是一整批數。
同一個分割配上不同的中間點,會給出不同的和,這件事對固定的 n 永遠成立。所以要求「某一個和靠近 I」是沒有用的保證——挑中間點的人只要換一種挑法,就能把和推到別的地方去。下一篇的 §29-2 的 29.2 因此要求對應同一個分割的任何一個和都靠近同一個數,這個「任何」正是本例逼出來的。
中間點取左端 中間點取右端 和 = 7/16 和 = 9/16 同一個分割,兩排長條差一階

這張圖在說例 2 的 1/8 是怎麼跑出來的:兩邊切的是同一個八等分,斜線也是同一條 f(x) = x,差別只在每一條長條的高是取自該段的左端還是右端。左邊第一段的高是零(整條不見了),右邊最後一段的高是 1——兩排長條其實只差在頭尾各一階,那一階的面積正是 1 × (1/8)。段數加倍,那一階就減半,可是它從來不會變成零。

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

本篇把「切法」寫成了分割:有限多個點、兩端釘死,而加細只准加點不准挪點,於是任兩個分割都有共同的加細,加細後的子區間只會變短。Riemann–Stieltjes 和則把每一項寫成「代表值乘上該段的權重」,權重由 g 的增量給出——例 1 的三個 g 分別給出 2、0、7,例 2 則讓同一個分割給出了兩個不同的和。下一篇要把「越切越細會逼近同一個數」寫成一個禁得起檢驗的定義。先起來走一走、倒杯水,伸個懶腰再回來。

順帶一提:每個分割都是自己的加細——嚴格說起來,什麼都不做也算「切得更細」,只是切了零刀。