§27-4  柯西均值定理與 Darboux 定理

兩個函數在同一段區間上各自變化,能不能一次找到一個點,讓兩邊的導數以同一個比例對應?而導數自己不必連續,它會不會因此漏掉某些中間的值?

兩個函數一起走,以及導數漏不掉中間的值

一趟公路旅行結束,儀表板上留下兩個數字:里程表多走了 300 公里,油箱少了 20 公升。相除得到每公升 15 公里,這是整趟路的成績單。可是這一路上山下坡、時快時慢,沒有哪一段真的照著這個數字在跑。有沒有哪一個瞬間,車子當下的表現恰好就是 15?

§27-3 的 27.6 均值定理回答的是另一種問法:一個量相對於它自己的自變數變得多快。里程與油量卻是兩個量,各自隨著時間在動,而我們想比的是它們彼此之間的比例——分母換了人,定理得重寫一次。這一篇的第一件事就是把它重寫出來。

同一張儀表板上還有第二個問題。時速從 0 爬到 60 的過程裡,指針有沒有可能略過 30 不出現?換成函數的語言:一個函數的導數在各點取到的值,能不能從 0 直接跳到 1 而中間的數一個都不取?§22-2 的 22.4 中間值定理談的是連續函數,而導數自己並不保證連續,所以那條定理管不到這裡。答案要另外證,而它出乎意料地漂亮。

27.8  CAUCHY MEAN VALUE THEOREM
Assume a < b and let both f and g be continuous on J = [a, b] and differentiable at every point of (a, b). Then some c in (a, b) satisfies
  f′(c)[g(b) − g(a)] = g′(c)[f(b) − f(a)].
兩個函數共用同一段區間,定理交出同一個 c 同時服務兩邊。取 g(x) = x 就退回 27.6:那時 g(b) − g(a) = b − a、g′(c) = 1,等式成了 f(b) − f(a) = f′(c)(b − a)。敘述寫成乘積而不是兩個商相等,是刻意的——商的寫法得先假設分母不為零,乘積的寫法對任何合乎前提的 f 與 g 都成立。g 在兩端的值相等時等式照樣為真,只是它此時保證的那一點滿足 g′(c) = 0。
正例:f(x) = x²、g(x) = x³ 於 [0, 1]。兩邊的差都是 1,等式化簡成 2c = 3c²,解得 c = ⅔,確實落在 (0, 1) 內。反例:把敘述改寫成商的形式就會失效——取 g(x) = x² 於 [−1, 1],g(1) − g(−1) = 0,那個分母是零,商根本寫不出來。乘積的版本照樣成立,它給的點是 c = 0,兩邊同時為零。
起點 終點 兩端連線 這裡的切線與它平行 g 的值 f 的值

這張圖在說 27.8 保證什麼:把同一個時刻的 g(x) 當橫座標、f(x) 當縱座標,整段區間就描出一條曲線。虛線把兩端直接連起來,它的斜率是全程的平均比例;定理說曲線上一定有某一點,那裡的切線與虛線平行——也就是當下的比例恰好等於全程的平均。這個幾何讀法帶著但書:它要求那一點的兩個導數不同時為零。乘積的寫法之所以必要,正是為了涵蓋讀不出比例的情形——曲線可能有垂直的切線(g′(c) = 0 而 f′(c) ≠ 0),也可能兩個導數同時為零而根本沒有切線方向可言:取 f(x) = x³ + x²、g(x) = x³ 於 [−1, 1],唯一滿足等式的 c 就是 0,那裡 f′ 與 g′ 一起消失,而端點的比例是 1。這些情形下乘積等式照樣成立,商與切線的說法卻失效。

PROOF

前提與 27.6 相同,只是同一組要求對 f 與 g 各驗一次:兩者都在 J = [a, b] 上連續,都在 (a, b) 內有導數。分水嶺是 g(b) − g(a) 這個量是不是零——它為零時不能拿來當分母,改造的手法得換一種。

證明計畫 · 由所求想起
所求是一個點,讓兩邊的導數以指定的比例對應。能生出這種點的工具只有 27.5 洛爾定理,而它只吃「兩端的值都是零」的函數,所以每一種情形都得先把手上的函數改造成那個樣子。
情形一,g 在兩端取同一個值:等式左邊整條是零,只要右邊也是零就交差,所求於是降級成「找一點讓 g′ 為零」。把 g 整條往下移到兩端恰好落在零,再送進洛爾定理。
情形二,g 在兩端的值不同:造一個輔助函數——從 f 出發,先扣掉它在左端的值,再扣掉一個跟著 g 走、倍率挑得剛好的量,讓右端也被壓成零。洛爾定理交出一點,把那裡的導數等式移項就是所求。

Proof.  Suppose first that g(a) = g(b), and let h(x) = g(x) − g(a) for x ∈ J. Because subtracting a constant leaves every difference quotient unchanged, h is continuous on J, has a derivative in (a, b), and satisfies h′ = g′ there. Moreover h(a) = 0 and h(b) = g(b) − g(a) = 0. Rolle's Theorem 27.5 therefore applies to h and yields a point c in (a, b) with g′(c) = h′(c) = 0. Both sides of the asserted equation vanish at this c.
這一步的所求:在 g 兩端取同一個值時,找出一點使 g′ 為零。那時 g(b) − g(a) = 0,等式左邊整條是零,所以只要右邊的 g′(c) 也是零,等式就成立,f 那一側完全不必過問。可是 27.5 洛爾定理(兩端的值都是零、閉區間上連續、開區間內可微,則內部有一點的導數為零)要求的是兩端的值都等於零,不只是彼此相等,所以不能把 g 直接送進去。補救只需要一個動作:整條往下移 g(a)。移完之後左端的值是 0、右端的值是 g(b) − g(a),而這正好也是 0,兩端都合格了。移動的量是常數,不影響導數——由 §27-1 的 27.1(導數是差商在該點趨近的那個實數)直接看得出來:差商的分子上兩個 −g(a) 互相消掉,整個差商一字不改。拿具體的數字走一次:g(x) = x² 於 [−1, 1],兩端的值都是 1,往下移 1 之後成了 x² − 1,兩端確實都是 0;它的導數仍是 2x,洛爾定理交出的 c = 0 也確實讓 g′(0) = 0。
兩端同高 g 往下移 g(a) 兩端都是零 g − g(a)

這張圖在說第一種情形為什麼要多走一步:上排的曲線兩端一樣高,可是那個高度不是零,洛爾定理不收。往下移一個常數之後(下排),兩端剛好坐在零線上,前提湊齊。下移只是換一個高度看同一條曲線,形狀一模一樣,所以導數為零的位置也在原處——這正是「常數不影響導數」在圖上的樣子。

Now suppose that g(a) ≠ g(b) and put
  K = [f(b) − f(a)]/[g(b) − g(a)],  φ(x) = f(x) − f(a) − K[g(x) − g(a)].
Since f and g are continuous on J, so is φ. The difference quotient of φ at a point of (a, b) equals that of f minus K times that of g; hence φ has a derivative there and φ′(x) = f′(x) − K g′(x).
這一步的所求:一個兩端的值都是零、而且導數裡同時裝著 f′ 與 g′ 的函數。兩個扣除各有分工。扣掉 f(a) 是為了讓左端歸零;第二項在左端也是零,所以它不會把剛歸好的左端弄壞,而它在右端的值是 K[g(b) − g(a)] = f(b) − f(a),恰好抵掉右端剩下的量。倍率 K 之所以挑成那個商,唯一的理由就是要讓右端剛好抵銷——分母不為零正是這一種情形的假設,所以 K 寫得出來。連續由 §20-5 的 20.6(連續函數的和、差、常數倍仍然連續)給出;導數那一句則是把差商相減:分子上的常數 f(a) 與 K g(a) 都消掉,剩下 f 的差商減去 K 倍 g 的差商,由 §25-3 的極限四則知道它有極限,值是 f′(x) − K g′(x)。拿數字走一次:f(x) = x²、g(x) = x³ 於 [0, 1],兩邊的差都是 1 所以 K = 1,輔助函數是 x² − x³,在 0 與 1 的值確實都是零。
兩端相同 f 被扣掉的那一項 兩端都是零 φ

這張圖在說第二種情形的構造要點:被扣掉的那一項(上排虛線)被調成與 f 在兩個端點都取相同的值,中間則各走各的。兩者相減之後(下排),端點的差變成零、中間的差不必是零,洛爾定理要的前提就齊了。倍率 K 管的正是右端那一次相交——挑錯倍率,虛線在右端就對不上,差也就不是零。

Then φ(a) = 0, and
  φ(b) = f(b) − f(a) − K[g(b) − g(a)] = 0.
Since Rolle's Theorem applies to φ, there is a point c in (a, b) with φ′(c) = 0, that is, f′(c) = K g′(c).
這一步的所求:把構造好的函數送進洛爾定理,換出一點。兩個端點都要當場核對。左端把 x = a 代進去,三項分別是 f(a)、−f(a) 與 −K · 0,加起來是零。右端把 K 的定義代回去,第三項就等於 f(b) − f(a),與前兩項相消,也是零。連續與可微在前一步已經備妥,於是洛爾定理的三個前提到齊。接續前面的數字:輔助函數 x² − x³ 的導數是 2x − 3x²,它在 (0, 1) 內的零點是 x = ⅔,這就是洛爾定理交出來的那個 c。
Multiplying the last equality by g(b) − g(a), which is not zero, we obtain
  f′(c)[g(b) − g(a)] = g′(c)[f(b) − f(a)].
這一步的所求:把 K 消掉,還原成定理敘述的形狀。等式 f′(c) = K g′(c) 兩邊同乘 g(b) − g(a),右邊的 K 與這個因子相乘就變回 f(b) − f(a),K 從此不再出現。這一格是例行核對,不過它說明了敘述為什麼寫成乘積:乘積的版本裡沒有分母,所以兩種情形的結論長得一模一樣,可以合併成一句話。用剛才的數字驗收:c = ⅔ 時 f′(c) = 4/3、g′(c) = 3 · (4/9) = 4/3,而兩個差都是 1,等式兩邊都是 4/3。
無論 g 在兩端的值相不相等,(a, b) 內都找得到一點讓那個乘積等式成立。∎

接下來換一個看起來毫不相干的問題——它問的不是「某一點的導數是多少」,而是「導數這個函數,整體上取得到哪些值」。

THEOREM · DARBOUX
Assume a < b and let f be differentiable at every point of [a, b]. Write A = f′(a) and B = f′(b), and let C be strictly between A and B. Then f′(c) = C holds for some c in (a, b).
導數自己不必連續,卻仍然漏不掉中間的值:只要兩個端點的導數一個在 C 之下、一個在 C 之上,中間就一定有一點的導數正好是 C。這使 22.4 中間值定理多了一個不要求連續的親戚——22.4 靠的是連通性一路傳遞,這裡靠的完全是另一套機制:把目標值化成零,再讓最小值點被兩端擠進區間內部。敘述沒有指定 A 與 B 誰大誰小,而證明的那套機制只對其中一種次序管用,所以第一步得先把次序轉正。
正例:f(x) = x² 於 [0, 2],A = 0、B = 4。取 C = 3,定理保證的那一點是 c = 1.5,確實有 f′(1.5) = 3。反例:「嚴格落在中間」不能鬆綁——同一個 f 取 C = 0,滿足 f′(c) = 0 的點只有 c = 0,而它是端點,不在開區間 (0, 2) 內。
兩種退化情形先擋掉:其一,C 必須嚴格落在 A 與 B 之間。取到端點的值時,見證的點可能只在端點上找得到,而結論指定的範圍是開區間 (a, b),端點不在裡面——上面的反例就是現場。其二,A = B 時「嚴格落在兩者之間」的數一個也沒有,定理的前提永遠不成立,敘述空洞成立、什麼也沒保證。這種時候它不是錯的,是沒有內容的。
「導數不必連續」值得一個見證:確實存在一個函數,它在每一點都有導數,而導數在某一點不連續。寫出這樣一個例子要用到乘積與合成的求導規則,那些規則此刻還沒建立,所以這裡先記一筆——重點是,Darboux 定理的價值正建立在這件事上:如果導數一律連續,這條定理就只是 22.4 的一個特例,不值得單獨證。
斜率 A 斜率 B 指定的斜率 C a b f

這張圖在說定理要求什麼、承諾什麼:左端的切線斜率是 A、右端是 B,紅色那一小段的斜率 C 夾在兩者之間。定理承諾曲線上一定有某一點,那裡的切線與紅段平行。要留意這裡完全沒有假設斜率在區間內連續地由 A 變到 B——它可以跳來跳去,結論仍然成立。

PROOF

記 A = f′(a)、B = f′(b)。C 夾在兩者之間有兩種次序(A < C < B 或 B < C < A),而底下的論證只對前一種管用——這不是措辭上的方便,是後面「最小值不在端點」那一步真的會垮:取 f(x) = x − x² 於 [0, 1]、C = 0,這時 A = 1、B = −1,減掉的一次函數是零函數,而 f 的最小值 0 在兩個端點同時取到。所以證明的第一件事是把次序轉正,手法是把 f 換成 −f。

證明計畫 · 由所求想起
所求是一點,它的導數等於指定的值 C。
第一步把次序轉正:兩種次序只有一種走得通,整條函數變號可以把另一種搬到那一種上,而變號前後「導數等於指定值」的那個點是同一個。
第二步把目標平移到零,因為手上能製造「導數為零」的工具是內部極小值版:從 f 減掉一個斜率恰為 C 的一次函數,新函數在某點導數為零,就等於 f 在該點的導數為 C。
第三步觀察新函數在兩個端點的導數:左端為負、右端為正。
第四步請 22.6 最大最小值定理交出最小值點——新函數可微因而連續,閉區間又是 compact。
第五步用 27.3 把端點逐一排除:左端右鄰有更低的值、右端左鄰也有更低的值,最小值點於是只能在內部。
最後對這個內點套內部極小值版,導數為零到手。

Proof.  Suppose first that B < C < A. Every difference quotient of −f is the negative of the corresponding quotient of f, so −f is differentiable on [a, b] with (−f)′(a) = −A and (−f)′(b) = −B; multiplying the assumed inequalities by −1 reverses them and gives −A < −C < −B. Since a point c with (−f)′(c) = −C is exactly a point with f′(c) = C, it suffices to treat the case A < C < B, which we assume from now on.
這一步的所求:把兩種次序併成一種,而且要說清楚憑什麼可以併。不能只寫一句「不失一般性」就跳過——後面的論證真的只對 A < C < B 成立。反過來的次序有現成的反例:f(x) = x − x² 於 [0, 1],導數是 1 − 2x,於是 A = 1、B = −1;取 C = 0,它嚴格夾在中間,而減掉的一次函數是零函數,所以新函數就是 f 自己。f 在 [0, 1] 上的最小值是 0,而它在 x = 0 與 x = 1 兩個端點都取得到——「最小值被擠進內部」整段就此失效(這個例子仍然有 f′(½) = 0,只是那一點是最大值點,不是最小值點)。換號之所以合法,是因為 −f 的差商是 f 的差商整條變號,所以導數也整條變號,這件事在 §27-2 的內部極小值版(把 f 換成 −f 就把極小翻成極大)已經核對過。變號之後三個數 A、B、C 同時乘上 −1,不等號整組翻面:B < C < A 成了 −A < −C < −B,正是走得通的那種次序。拿數字對照:A = 1、B = −1、C = 0 變號後是 −1 < 0 < 1。而找到的點不必再翻譯——導數是 −C 與導數是 C 說的是同一個 c。
Define g on [a, b] by g(x) = f(x) − C(x − a). The difference quotient of x ↦ C(x − a) is constantly C, so g has a derivative at every point of [a, b] and g′(x) = f′(x) − C. In particular g′(a) = A − C < 0 and g′(b) = B − C > 0.
這一步的所求:把「導數等於 C」改寫成「導數等於零」,因為手上的工具只認得零。作法是從 f 減掉一個斜率恆為 C 的一次函數,減完之後每一點的導數都少了 C,原本等於 C 的那些點就落到零上。減掉的那一項寫成 C(x − a) 而不是 Cx,只是為了讓它在左端的值是零、圖上兩條曲線從同一點出發,對結論沒有任何影響。兩個端點的導數因此各自平移:左端由正負未知變成確定為負(因為 A 比 C 小),右端變成確定為正(因為 B 比 C 大)——一負一正正是後面要用的全部資訊。拿數字走一次:f(x) = x² 於 [0, 2],A = 0、B = 4,取 C = 3,則新函數是 x² − 3x,導數 2x − 3 在 0 是 −3(負)、在 2 是 1(正),與這一步說的吻合。
原來的 f 左端 g′ < 0 右端 g′ > 0 g = f − C(x − a) a b

這張圖在說平移那一步改了什麼:虛線是原本的 f,實線是減掉斜率 C 的那條直線之後剩下的部分。減法把每一點的斜率都往下推了 C,於是左端從「比 C 緩」變成「向下」、右端從「比 C 陡」變成「向上」。原本要找的「斜率等於 C 的位置」,現在成了「斜率等於零的位置」。

Because g is differentiable on [a, b], Lemma 27.2 shows that g is continuous there. Since [a, b] is compact, the Maximum and Minimum Value Theorem 22.6 provides a point c in [a, b] at which g attains its minimum value on [a, b].
這一步的所求:先確保有一個最小值點可談,位置留到下一步再說。用到兩條既有結論。§27-1 的 27.2(在某點有導數的函數在該點連續)把可微換成連續——前提裡給的是「每一點都可微」,包含兩個端點,所以連續在整個閉區間上成立,這是能請出下一條定理的關鍵。接著 §22-3 的 22.6 最大最小值定理(compact 集合上的連續實值函數取得到它的最大值與最小值)把最小值釘在某一個實際存在的點上。要留意這裡拿的是最小值而不是最大值:這個選擇不是隨意的,下一步兩個端點都要被「附近有更低的值」逐出,而「更低」正是最小值才在意的方向。接續前面的數字:x² − 3x 在 [0, 2] 上的最小值是 −2.25,在 x = 1.5 取到,而兩個端點的值分別是 0 與 −2,都比它高。
By 27.3(b) applied at a, where g′(a) < 0, there is δ > 0 with g(x) < g(a) for a < x < a + δ; hence the minimum is not attained at a. Likewise 27.3(a) applied at b, where g′(b) > 0, gives g(x) < g(b) for b − δ′ < x < b, so the minimum is not attained at b either.
這一步的所求:把兩個端點逐出候選名單。§27-2 的 27.3(導數為正時,右鄰的值比該點大、左鄰的值比該點小;導數為負時兩個結論互換)是兩側的敘述,而這裡對兩個端點各只用得上其中一側。在 a 用的是右側那一半:導數為負,於是緊鄰右邊的值比 g(a) 小,既然有人比它低,最小值就不可能在 a。在 b 用的是左側那一半:導數為正,於是緊鄰左邊的值比 g(b) 小,最小值也不可能在 b。另外那一側之所以不夠用,是因為 a 的左邊與 b 的右邊都沒有定義域的點——那一半的結論在這裡空洞成立,一句話也沒保證。換句話說,27.3 若只寫單側,這個證明就得看它剛好寫的是哪一側才知道能不能用。數字對照:x² − 3x 在 x = 0.1 的值是 −0.29,比端點的 0 低;在 x = 1.9 的值是 −2.09,比另一個端點的 −2 低。
最小值不在兩端 這裡更低 這裡也更低 a b

這張圖在說端點怎麼被逐出:兩條虛線是端點的高度。左端往右一小步就掉到虛線之下(紅點),右端往左一小步同樣掉到虛線之下。兩個端點都有人比它低,最小值只好另尋他處——而區間上除了端點就只剩內部的點。這一步用掉的正是導數在兩端一負一正這個資訊。

Therefore c lies in the open interval (a, b) and is an interior point of [a, b]. Since g has a relative minimum at this interior point, the interior minimum form of 27.4 gives g′(c) = 0; because g′(c) = f′(c) − C, we conclude that f′(c) = C.
這一步的所求:把「最小值點在內部」兌現成導數為零,再翻譯回 f。整個區間上的最小值當然也是它附近的最小值,所以 c 是一個 relative minimum 點;而前一步已經證明它不是端點,於是它是 [a, b] 的內點,§27-2 的內部極小值版(內點上的相對極小處若導數存在則導數為零)的兩個前提到齊——導數存在是題目一開始就給的。最後一句只是把第一步的改寫倒推回去:g′(c) = f′(c) − C 等於零,也就是 f′(c) = C,正是所求。數字收尾:x² − 3x 的最小值點 c = 1.5 落在 (0, 2) 內,那裡的導數是零,而 f′(1.5) = 3,確實等於當初指定的 C。
內部的最小值點 g′(c) = 0 f′(c) = C c a b

這張圖在說結論怎麼落地:最小值點被兩端擠到區間內部,而內點上的極小處,切線只能是水平的——否則往某一側走還會更低,與最小值矛盾。水平代表新函數的導數為零,換算回去就是原函數在那裡的斜率恰好是 C,也就是整個定理要的那一點。

兩個端點的導數之間,每一個值都被 f′ 在區間內部取得到——即使 f′ 自己並不連續。∎
例 1跳一階的函數當不成任何函數的導數
哪些函數當得成某個函數的導數?有沒有現成的函數,光憑形狀就出局?
  1. 取階梯函數 g(x) = 0(x < 0)、g(x) = 1(x ≥ 0)。它只取兩個值,在 0 這一點跳了一階。
  2. 先把區間的條件說死:要求 0 是區間的內點,也就是它的兩側都有區間裡的點。只說「含 0」不夠——看 [0, 1]:這一段上每個 x 都不小於 0,所以 g 在它上面恆等於 1,而 f(x) = x 在 [0, 1] 上處處可微(27.1 允許在端點上問導數)且導數恆為 1,於是 f′ = g 成立,一點矛盾也沒有。跳躍要真的被看見,區間得跨過 0 的兩側。
  3. 假設有某個 f 在一個以 0 為內點的區間 I 上處處可微,而且 f′(x) = g(x) 對 I 內每個 x 都成立。內點的意思保證 0 兩側都挑得到 I 的點,取 a < 0 < b 都落在 I 內,於是 f 在 [a, b] 上處處可微。
  4. 兩個端點的導數是 f′(a) = g(a) = 0 與 f′(b) = g(b) = 1。取 C = ½,它嚴格落在 0 與 1 之間,Darboux 定理保證 (a, b) 內有一點 c 使 f′(c) = ½。
  5. 可是 f′ 在 I 上就是 g,而 g 的值只有 0 與 1 兩種,½ 從來不在其中。矛盾出現,所以第 3 步的假設不成立。
這樣的 f 不存在:沒有任何函數的導數會是這個階梯函數。可見「當得成某個函數的導數」是一個真的限制——不是每個看起來規矩的函數都排得進去,而 Darboux 定理正是判斷出局的那把尺。順帶一提,同樣的推理對任何「跳過一段值」的函數都適用,跳多高、在哪裡跳都不影響結論。
1 0 ½ 這條高度取不到 g 0

這張圖在說例 1 的矛盾長什麼樣:藍色的兩段就是這個函數取得到的全部高度,紅色虛線那一層永遠空著。假如它是某個函數的導數,Darboux 定理就會派一個點站到紅線上——而圖上根本沒有位置可站。空心圓表示左段在跳躍處取不到值,實心圓表示右段取得到,這個細節不影響結論:無論跳躍點歸給哪一邊,中間那一整層都是空的。

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

本篇把均值定理擴寫成兩個函數的版本(27.8):等式寫成乘積,於是不必先假設任何分母不為零,而取 g(x) = x 就退回原來的樣子。接著證出導數自己的中間值性質——兩端導數之間的每一個值都被取得到,靠的是「減掉一條斜率為 C 的直線,再把最小值點擠進內部」這條路線,全程沒有用到導數連續。下一篇回到單一個函數,看均值定理一次能兌現多少條日常結論:導數恆為零是不是就是常數、導數為正是不是就遞增。先站起來走幾步、把肩膀轉一轉再回來。

階梯函數去應徵導數這份工作,履歷被退了回來:中間漏了一段,人事說什麼都補不上。