微分規則:三角函數、乘積、商、chain rule
上一頁用定義算了 \(1/x\) 和 \(x^n\)。這一頁要拿到「把任何函數都微分」的工具:先用兩個幾何極限算出 \(\sin\) 和 \(\cos\) 的導數,再證明乘積、商、合成(chain rule)三條一般規則,最後是高階導數。有了這些,常見的函數幾乎都能微分。
讀完這頁你應該能夠
- 用 \(\sin\) 的和角公式和兩個極限 \(\lim\frac{\sin\theta}{\theta} = 1\)、\(\lim\frac{1-\cos\theta}{\theta} = 0\),推導 \((\sin x)' = \cos x\)、\((\cos x)' = -\sin x\)。
- 用圖解釋那兩個極限(「短的曲線幾乎是直的」),並說明為什麼角度一定要用弧度。
- 證明乘積規則和商規則,指出證明裡哪一步用到「可微就連續」。
- 用 chain rule 微分合成函數,例如 \(\sin^{10}t\)、\(\sin10t\),並說出它為什麼是「放大倍數相乘」。
- 寫出高階導數的各種記號,算出 \(\sin x\) 的各階導數和 \(D^nx^n = n!\)。
前置知識檢查
1. 寫出 \(\sin(a+b)\) 和 \(\cos(a+b)\) 的和角公式。
2. 180° 是幾弧度?1 弧度大約幾度?
3. 單位圓上角度 \(\theta\) 的點,座標是什麼?
00怎麼讀這一頁、素材對照
Lec 3 由 Jerison 講三角函數的導數,最後只宣布乘積和商規則;Lec 4 由代課的 Haynes Miller 證明它們,再講 chain rule 和高階導數。建議先看 Lec 3、讀第 1–7 節,再看 Lec 4、讀第 8–11 節。
| 素材 | 對應內容 |
|---|---|
| 18.01 錄影 | Lec 3(Jerison)sin、cos 的導數與兩個極限;Lec 4(Haynes Miller 代課)乘積、商、chain rule、高階導數 |
| 18.01 講義(2006) | Lecture 2 最後兩頁(兩個三角極限的圖)、Lecture 3、Lecture 4(離線包 lec2.pdf–lec4.pdf) |
| 18.01SC session 6–12 | worked examples:sin 的導數圖、sinc 函數、分段多項式的平滑接合、商規則練習、不用商規則、sin 的重複微分(自我測驗用到其中幾題) |
| Strang Highlights of Calculus | 短片 Derivative of sin x and cos x、Product Rule and Quotient Rule、Chains f(g(x)) and the Chain Rule、Six Functions, Six Rules, and Six Theorems |
| Strang Calculus | 第 2、4 章 |
01兩種公式:特定的和一般的 Lec 3 0:32
導數公式分兩種:
- 特定的:某一個函數的導數,例如 \((x^n)' = nx^{n-1}\)、\((1/x)' = -1/x^2\),以及這一頁要算的 \(\sin\)、\(\cos\)。
- 一般的:怎麼把函數組合起來再微分,例如和 \((u + v)' = u' + v'\)、常數倍 \((cu)' = cu'\),以及這一頁的乘積、商、合成。
手上有幾個特定的函數,再用一般規則組合,就能生出很多新的可微函數。Jerison 說這一單元的目標是「微分任何你寫得出來的函數」。
只是把分子拆成兩組。\((cu)' = cu'\) 同理:常數 \(c\) 可以提到極限外面。
02sin 和 cos 的導數 2:41
寫出 \(\sin x\) 的差商,唯一能做的事是用和角公式展開 \(\sin(x + \Delta x)\):
$$\frac{\sin(x+\Delta x) - \sin x}{\Delta x} = \frac{\sin x\cos\Delta x + \cos x\sin\Delta x - \sin x}{\Delta x}$$接下來要分組。Jerison 強調一個原則:這種極限代 \(\Delta x = 0\) 都是 \(\frac00\),分組時要讓「是 0 的東西」除以「是 0 的東西」,不能出現非零除以 0。5:43 \(\cos\Delta x\to1\) 不是 0,所以要把它和後面的 \(-\sin x\) 綁在一起,湊出 \(\cos\Delta x - 1\):
$$= \sin x\cdot\underbrace{\frac{\cos\Delta x - 1}{\Delta x}}_{\to\,0\ \text{(A)}} + \cos x\cdot\underbrace{\frac{\sin\Delta x}{\Delta x}}_{\to\,1\ \text{(B)}}$$只要 (A)、(B) 兩個極限成立,\(\Delta x\to0\) 時第一項消失、第二項剩 \(\cos x\):8:25
\(\cos x\) 完全一樣,用 \(\cos(a+b) = \cos a\cos b - \sin a\sin b\):9:31
$$\frac{\cos(x+\Delta x)-\cos x}{\Delta x} = \cos x\cdot\frac{\cos\Delta x - 1}{\Delta x} - \sin x\cdot\frac{\sin\Delta x}{\Delta x}\ \to\ -\sin x$$兩個極限現在還沒證明。Jerison 先把它們標成 (A)、(B),第 4、5 節再證。
小練習(18.01SC session 7 的例題):不看公式,\(\sin x\) 在哪些 \(x\) 斜率是 0?在哪裡斜率最大?畫出它的導數,像什麼?
03結構:只需要 0 那一點的斜率 12:09
(A)、(B) 其實就是 \(\cos\) 和 \(\sin\) 在 \(x = 0\) 的導數:
$$\left.\frac{d}{dx}\cos x\right|_{x=0} = \lim_{\Delta x\to0}\frac{\cos\Delta x - \cos0}{\Delta x} = \lim\frac{\cos\Delta x - 1}{\Delta x}\ \text{(A)},\qquad\left.\frac{d}{dx}\sin x\right|_{x=0} = \lim\frac{\sin\Delta x}{\Delta x}\ \text{(B)}$$所以上一節的推導在說:只要知道 \(\sin\)、\(\cos\) 在 0 的斜率,和角公式就能把它搬到每一點。 13:48 整個問題縮成兩個數:0 和 1。
04證明 (B):sin θ / θ → 1 15:08
\(\sin\) 只有幾何的定義,所以證明一定是幾何的。把 \(\Delta x\) 改名成角度 \(\theta\),在單位圓上畫出來:
- 綠色:\(\sin\theta\) 是點的高度,也就是一段垂直線段。
- 橙色:角 \(\theta\) 所對的弧,用弧度量,長度就是 \(\theta\)。
Jerison 把圖往下對稱複製一份,變成一把弓:弓弦(綠)長 \(2\sin\theta\),弓身(橙)長 \(2\theta\)。17:49
$$\frac{\sin\theta}{\theta} = \frac{2\sin\theta}{2\theta} = \frac{\text{弓弦}}{\text{弓身}}$$\(\theta\) 越小,弓身越接近直線,和弓弦幾乎重疊,長度也越來越接近,比值趨近 1。Jerison 把原理濃縮成一句:short pieces of curves are nearly straight。20:03
Demo 1 · 弓和弓弦
- 把 \(\theta\) 往小拉。左圖是原尺寸,弓越來越小;右圖把弓弦固定放大到同樣大小(相當於 Jerison 說的把頂點推到很遠的地方),看弓身怎麼變直、和弓弦重疊。
- 讀數裡 \(\frac{\sin\theta}{\theta}\) 趨近 1,\(\frac{1-\cos\theta}{\theta}\) 趨近 0。右圖紅色的小縫就是 \(1 - \cos\theta\):它不只變小,而且比弓弦縮得更快。
- 最後一行是「如果用度」:\(\frac{\sin(\theta°)}{\theta}\) 趨近的是 \(\frac{\pi}{180}\approx0.01745\),不是 1(第 6 節)。
05證明 (A):(1 − cos θ) / θ → 0 20:39
(A) 寫成 \(\frac{\cos\theta - 1}{\theta}\to0\),分子是負的。翻個號,改證 \(\frac{1-\cos\theta}{\theta}\to0\),這樣分子是一段長度。
在同一把弓上:頂點到弓弦的距離是 \(\cos\theta\),頂點到弓身最遠處是半徑 1,所以弓弦和弓身之間的縫長 \(1 - \cos\theta\)。22:44 \(\theta\) 越小,弓身越貼近弓弦,縫越來越小。
學生問:分母 \(\theta\) 也趨近 0,這不就只是 \(\frac00\) 嗎?Jerison 回答:兩個都趨近 0,但縫比弓身短得多。(B) 裡兩者一樣長所以比值是 1;這裡縫和弓身比起來小到可以忽略,所以比值是 0。25:50 他也說明圖為什麼要不斷放大:\(\theta\) 很小時圖會縮成一條線,要放大才看得到縫和弓弦的差別。31:21
背景補充:縫到底多小?(課堂沒有講,用的是第 04 頁的二次近似)
Demo 1 的讀數裡有一行 \(\frac{1-\cos\theta}{\theta^2}\),它趨近 \(\frac12\)。也就是說 \(1 - \cos\theta\approx\frac12\theta^2\):縫的大小是 \(\theta^2\) 量級,所以除以 \(\theta\) 之後還剩一個 \(\theta\),趨近 0。這是第 01 頁「垃圾項 \(O(\Delta x^2)\)」的又一個例子,第 04 頁會正式推導 \(\cos\theta\approx1 - \frac{\theta^2}2\)。
06為什麼一定要用弧度 28:03
(B) 的證明比較的是兩段長度:垂直的弓弦和彎的弓身。弓身的長度等於 \(\theta\),只在 \(\theta\) 用弧度時成立。如果用度,\(\theta = 30\) 代表的弧長其實是 \(\frac{30\pi}{180}\),比較就完全錯了。Jerison:「The formulas are just wrong if you use other units.」29:41
令 \(s(d) = \sin(d°)\),\(d\) 是度數。\(d°\) 換成弧度是 \(\frac{\pi d}{180}\),所以 \(s(d) = \sin\frac{\pi d}{180}\)。用下面第 10 節的 chain rule:
$$s'(d) = \frac{\pi}{180}\cos\frac{\pi d}{180}\approx0.01745\cos(d°)$$多了一個 \(\frac{\pi}{180}\) 的常數。只有用弧度,\(\sin\) 的導數才剛好是 \(\cos\)。
07另一個證明:在圓上走一小步 34:26
第 2 節只在 0 用了幾何,其他靠和角公式。Jerison 再給一個每一點直接用幾何的證明,用的是同一個原理。
一個點在單位圓上走,角度 \(\theta\) 時在 \(P\),高度 \(y = \sin\theta\)。讓角度多走 \(\Delta\theta\),點到 \(Q\)。從 \(P\) 往上畫垂直線、從 \(Q\) 往左畫水平線,交於 \(R\),得到直角三角形 \(PRQ\),高度的改變 \(\Delta y\) 就是 \(PR\)。37:26
- 斜邊:弧 \(PQ\) 長 \(\Delta\theta\);短的曲線幾乎是直的,所以直線段 \(PQ\approx\Delta\theta\)。39:59
- 角 \(QPR\):\(PQ\) 幾乎是圓在 \(P\) 的切線,和半徑 \(OP\) 垂直;\(PR\) 是垂直線。把「水平線和 \(OP\) 的夾角 \(\theta\)」整個轉 90°,水平線變成垂直的 \(PR\),\(OP\) 變成 \(PQ\),所以角 \(QPR\approx\theta\)。43:09
- 鄰邊:\(\Delta y = PR\approx PQ\cdot\cos\theta\approx\Delta\theta\cos\theta\),所以 \(\frac{\Delta y}{\Delta\theta}\approx\cos\theta\),極限時等號成立。45:43
Demo 2 · 單位圓上的三角形 PRQ
有學生問以後還要不要做這種幾何證明。Jerison 說 18.02 會常用:弧長的理論就是用這種 \(\Delta x\)、\(\Delta y\) 的推理建立起來的。46:47
08乘積規則 Lec 4 2:43
Lec 3 最後 Jerison 只宣布了規則,並提示記法:一次只變一個。Lec 3 48:22 Lec 4 由 Haynes Miller 代課證明。
微分一個乘積,得到的是一個和:\(u\) 變、\(v\) 不變的部分,加上 \(v\) 變、\(u\) 不變的部分。例如 3:13
$$\frac{d}{dx}\bigl(x^n\sin x\bigr) = nx^{n-1}\sin x + x^n\cos x$$圖解:長方形變大多少
2006 講義用一個長方形說明:寬 \(u\)、高 \(v\),面積 \(uv\)。\(x\) 走一步,寬多了 \(\Delta u\)、高多了 \(\Delta v\)。新增的面積分成三塊:
- 右邊一條:\(v\,\Delta u\)(只有 \(u\) 變)
- 上面一條:\(u\,\Delta v\)(只有 \(v\) 變)
- 右上角一小塊:\(\Delta u\,\Delta v\)
除以 \(\Delta x\):前兩塊變成 \(v\frac{\Delta u}{\Delta x} + u\frac{\Delta v}{\Delta x}\to vu' + uv'\);角落那塊是 \(\frac{\Delta u}{\Delta x}\cdot\Delta v\to u'\cdot0 = 0\)。角落就是第 01 頁說的垃圾項。
Demo 3 · 乘積規則的長方形
代數證明
Miller 的做法:在分子裡減一項再加回同一項,讓 \(\Delta u\) 和 \(\Delta v\) 各自出現。4:20
$$\begin{aligned}\Delta(uv) &= u(x+\Delta x)\,v(x+\Delta x) - u(x)\,v(x)\\ &= \bigl[u(x+\Delta x) - u(x)\bigr]v(x+\Delta x) + u(x)\bigl[v(x+\Delta x) - v(x)\bigr]\\ &= \Delta u\cdot v(x+\Delta x) + u(x)\cdot\Delta v\end{aligned}$$(展開第二行,中間的 \(u(x)v(x+\Delta x)\) 一正一負抵消,就回到第一行。)除以 \(\Delta x\):
$$\frac{\Delta(uv)}{\Delta x} = \frac{\Delta u}{\Delta x}\,v(x+\Delta x) + u(x)\,\frac{\Delta v}{\Delta x}\ \xrightarrow{\Delta x\to0}\ u'v + uv'$$最後一步要 \(v(x+\Delta x)\to v(x)\),也就是 \(v\) 連續。Miller 特別點出這裡用了連續性。9:05 \(v\) 可微,所以由第 01 頁 §14「可微就連續」,它連續。這就是 Jerison 說那個定理下一次要用到的地方。
轉錄的字幕在 5:27 那段寫著「That's the change in x [Correction: change in u]」:Miller 口誤說成 \(x\) 的改變量,應該是 \(u\) 的改變量。2006 講義用的是另一種加減項(加減 \(u(x+\Delta x)v(x)\)),結果一樣。
09商規則與負次方 11:47
Miller 說這大概是整門課裡最奇怪的公式。證明:把新值寫成 \(\frac{u+\Delta u}{v+\Delta v}\),減掉 \(\frac uv\),通分:12:55
$$\frac{u+\Delta u}{v+\Delta v} - \frac uv = \frac{(u+\Delta u)v - u(v+\Delta v)}{(v+\Delta v)\,v} = \frac{\Delta u\cdot v - u\cdot\Delta v}{(v+\Delta v)\,v}$$(\(uv\) 一正一負抵消。)除以 \(\Delta x\),取極限:分子變成 \(u'v - uv'\);分母裡的 \(\Delta v\to0\),又是因為 \(v\) 連續,剩下 \(v^2\)。16:04
例子:\(1/v\) 和負次方
令 \(u = 1\):\(u' = 0\),所以 \(\left(\frac1v\right)' = -\frac{v'}{v^2}\)。16:35 再令 \(v = x^n\):18:12
$$\frac{d}{dx}x^{-n} = \frac{d}{dx}\frac1{x^n} = -\frac{nx^{n-1}}{x^{2n}} = -nx^{-n-1}$$把 \(-n\) 看成一個整體 \(m\),這就是 \(mx^{m-1}\):冪次規則對負整數也成立。21:19 \(n = 1\) 時就是第 01 頁的 \((1/x)' = -1/x^2\)。
小練習:記不住商規則的順序(分子是 \(u'v - uv'\) 還是 \(uv' - u'v\))?用一個簡單的例子檢查。
10Chain rule:合成函數 22:22
\(y = (\sin t)^{10}\) 怎麼微分?它是兩步:先算 \(x = \sin t\),再算 \(y = x^{10}\)。Miller 的建議:替中間的量取個新名字。23:33 習慣上 \((\sin t)^{10}\) 寫成 \(\sin^{10}t\),意思是先取 \(\sin\) 再 10 次方,不是 \(\sin(t^{10})\)。
推導
\(t\) 改變 \(\Delta t\),\(x\) 跟著改變 \(\Delta x\),\(y\) 再跟著改變 \(\Delta y\)。代數上 \(\Delta x\) 可以消掉:24:34
$$\frac{\Delta y}{\Delta t} = \frac{\Delta y}{\Delta x}\cdot\frac{\Delta x}{\Delta t}$$\(\Delta t\to0\) 時 \(\Delta x\to0\)(\(x\) 連續),兩邊都變成導數:
Leibniz 的記號讓它看起來像「\(dx\) 約掉」,Miller 說這樣記並不離譜。25:42 意思是:合成函數的導數是兩個導數的乘積。用第 01 頁「放大倍數」的說法:\(t\) 的小變化先被 \(g\) 放大 \(g'\) 倍,再被 \(f\) 放大 \(f'\) 倍,總共放大 \(f'g'\) 倍。
背景補充:證明裡藏著的小漏洞(課堂沒有講)
上面的推導除以了 \(\Delta x\)。如果某些 \(\Delta t\) 讓 \(\Delta x\) 剛好等於 0(例如 \(g\) 在那附近是常數,或像 \(t^2\sin\frac1t\) 那樣在 0 附近反覆穿過同一個值),這一步就不合法。嚴謹的證明會繞開這個問題,結論不變。這門課的 2006 講義和影片都用這個簡化版本。
- \(\frac{d}{dt}\sin^{10}t\):外層 \(x^{10}\) 的導數 \(10x^9\),內層 \(\sin t\) 的導數 \(\cos t\),再把 \(x = \sin t\) 代回:\(10\sin^9t\cos t\)。26:59
- \(\frac{d}{dt}\sin10t\):外層 \(\sin x\) 的導數 \(\cos x\),內層 \(10t\) 的導數 10:\(10\cos10t\)。熟練之後不用寫出中間變數,心裡記得「外層微分、裡面照抄,再乘內層的導數」。31:47
- \(\frac{d}{dt}\sin(t^2) = 2t\cos(t^2)\);\(\frac{d}{dx}\cos\frac1x = -\sin\frac1x\cdot\left(-\frac1{x^2}\right) = \frac{\sin(1/x)}{x^2}\)(2006 講義的兩個例子)。
數字檢查:\(t = 0.5\) 時 \(\frac{d}{dt}\sin10t = 10\cos5\approx2.837\)。差商 \(\frac{\sin(10(0.5+\Delta t))-\sin5}{\Delta t}\):\(\Delta t = 0.001\) 得 2.884,\(\Delta t = 0.0001\) 得 2.841,越來越接近。注意 \(t\) 只走 0.001,\(x = 10t\) 卻走了 0.01:內層先放大了 10 倍。
Miller 對名字的解釋:chain rule 能讓你「掙脫微分的鎖鏈」(burst the chains),微分多得多的函數。29:02
Demo 4 · 放大倍數相乘
小練習:\(\frac{d}{dx}(x^2+1)^{3}\) 和 \(\frac{d}{dx}\cos^2x\)。
11高階導數 32:50
導數 \(u'\) 本身是一個函數,可以再微分,得到二階導數 \(u''\),再微分得到三階 \(u'''\),以此類推。
\(u = \sin x\):\(u' = \cos x\),\(u'' = -\sin x\),\(u''' = -\cos x\),\(u^{(4)} = \sin x\)。微分四次回到原來的函數。35:41 學生問是不是每個函數都這樣,Miller 說不是,這是 \(\sin\)、\(\cos\) 非常特別的性質。41:34
記號
| 一階 | 二階 | 三階 | n 階 |
|---|---|---|---|
| \(u'\)、\(Du\)、\(\frac{du}{dx}\) | \(u''\)、\(D^2u\)、\(\frac{d^2u}{dx^2}\) | \(u'''\)、\(D^3u\)、\(\frac{d^3u}{dx^3}\) | \(u^{(n)}\)、\(D^nu\)、\(\frac{d^nu}{dx^n}\) |
\(D = \frac{d}{dx}\) 是一個算子:吃進一個函數、吐出它的導數。\(\frac{d^2u}{dx^2}\) 是 \(\left(\frac{d}{dx}\right)^2u\) 的縮寫;分母是 \((dx)^2\),不是 \(d(x^2)\)。Miller 說這是「記號的濫用」,但非常普遍。40:03
例子:\(D^nx^n = n!\)
42:06 每微分一次,次方掉一個下來當係數、次方減 1:
$$Dx^n = nx^{n-1},\quad D^2x^n = n(n-1)x^{n-2},\quad\ldots,\quad D^nx^n = n(n-1)\cdots2\cdot1 = n!$$結果是常數 \(n!\)(\(n\) 階乘),所以 \(D^{n+1}x^n = 0\)。45:47 2006 講義用數學歸納法寫成正式證明:假設 \(D^nx^n = n!\),則 \(D^{n+1}x^{n+1} = D^n\bigl((n+1)x^n\bigr) = (n+1)\,n! = (n+1)!\)。
12在 deep generative models 哪裡用到
| 這一頁 | 在 DGM 的樣子 |
|---|---|
| Chain rule | 神經網路是一層一層的合成函數 \(f_L(\cdots f_2(f_1(x)))\)。backpropagation 就是把 chain rule 從最後一層往前套:每一層算自己的局部導數,再一路相乘。多變數時每層的導數是一個矩陣(Jacobian),相乘變成矩陣乘法,見補充課 A §05 |
| 放大倍數相乘 | 很多層相乘時,倍數會指數地變大或變小。例如 20 層、每層斜率 0.5,總倍數是 \(0.5^{20}\approx10^{-6}\):梯度幾乎傳不回前面(vanishing gradient);每層 1.5 則是 \(1.5^{20}\approx3300\)(exploding) |
| 乘積規則 | likelihood 是很多個機率相乘,直接微分會變成一長串和;第 03 頁會看到取 log 把乘積變成和,微分就簡單多了 |
| \(\sin(\omega t)\) 的導數 \(\omega\cos(\omega t)\) | diffusion model 常把時間 \(t\) 編碼成一組不同頻率的 \(\sin\)、\(\cos\)。chain rule 告訴我們頻率 \(\omega\) 越高,這個特徵隨 \(t\) 變化越快 |
| 二階導數 | 曲率、Hessian;Newton 法(第 05 頁)和 Laplace 近似都用到 |
常見誤解
自我測驗
1. 微分 \(x^3\sin x\)、\(\frac{\sin x}{x}\)、\(\sin^2(3x)\)。
2. (18.01SC 例題)用商規則微分 \(\frac{x^2}{x+1}\) 和 \(\frac{x^4+1}{x^2}\)。第二題能不能不用商規則?
3. (18.01SC 例題)找 \(a, b\) 使 \(f(x) = ax^2 + bx + 6\)(\(x \le 1\))、\(2x^5 + 3x^4 + 4x^2 + 5x + 6\)(\(x > 1\))處處可微。
4. (18.01SC 例題)把 \(\frac uv\) 寫成 \(u\cdot v^{-1}\),只用乘積規則和 chain rule 推出商規則。
5. (18.01SC 例題)哪些函數滿足 \(f'' = -f\)?
6. (18.01SC 例題)sinc 函數 \(\frac{\sin x}{x}\) 的圖長什麼樣子?
7. \(D^5x^5\) 和 \(D^6x^5\) 各是多少?\(D^{100}\sin x\) 呢?
8. 用度量角時,\(\frac{d}{dd}\sin(d°)\) 在 \(d = 0\) 是多少?
延伸閱讀
- 18.01 Fall 2006 講義 Lecture 2 最後兩頁(兩個三角極限的弓形圖)、Lecture 3(和、乘積、商的證明,乘積規則的長方形圖)、Lecture 4(chain rule、\(\cos\frac1x\)、高階導數與歸納法):離線包
lec2.pdf–lec4.pdf。 - 18.01SC session 7–12 的 worked examples(離線包
MIT18_01SCF10_ex07prb.pdf–ex12prb.pdf):自我測驗 2–6 題的來源。
上一頁:01 導數是什麼;極限與連續 下一頁:03 隱函數微分、反函數、指數與對數