你管這破玩意叫泰勒公式
小宇:閃客閃客,我今天被人欺負(fù)了!
閃客:誰(shuí)欺負(fù)你了!說(shuō)出來(lái)我找他... 道個(gè)歉...
小宇:你他喵。
閃客:開(kāi)玩笑,說(shuō)說(shuō)怎么欺負(fù)你了?
小宇:那個(gè)人考我背泰勒公式,結(jié)果我沒(méi)背出來(lái),被嘲笑了!我是不是太笨了呀?
閃客:當(dāng)然不是,泰勒公式是很多人的噩夢(mèng),不信你看看投票。
小宇:好吧,我應(yīng)該是除了名字之外什么都不知道的那一波了。你能不能給我講講,讓我一下子就把它記住呀?
閃客:當(dāng)然可以,你現(xiàn)在有空嗎?隨時(shí)可以開(kāi)始。
小宇:有空,我們開(kāi)始吧!
合理的猜測(cè)
閃客:我問(wèn)你一個(gè)問(wèn)題,在不用計(jì)算器,也不知道 e 的具體值的情況下,如何計(jì)算下面這個(gè)數(shù)?

小宇:不會(huì)
閃客:你能不能想想再說(shuō)!
小宇:你兇什么兇!我想想哈,e 的 0.1 次方,emmm,應(yīng)該和 e 的 0 次方差不太多吧?

閃客:非常好!那么這個(gè)數(shù)應(yīng)該是比 1 大還是比 1 小呢?
小宇:這個(gè)簡(jiǎn)單,我記得 f(x) = ex 這個(gè)函數(shù)圖像應(yīng)該是一個(gè)向上彎彎的曲線,指數(shù)越大函數(shù)值就越大,所以應(yīng)該至少比 1 大。

閃客:非常好,你現(xiàn)在已經(jīng)找到了 e0.1 的一個(gè)近似值,就是 1,而且還能確定 e0.1 應(yīng)該是一個(gè)比 1 要大的數(shù)。這已經(jīng)是一個(gè)非常大的突破了!
小宇:真的假的,這好像還挺顯然的。
切線更近
閃客:的確,下面我們就一點(diǎn)一點(diǎn)往下探索,你能不能再找一個(gè)比 1 更大一些的下限值呢?
小宇:額,這好像有點(diǎn)難,但我覺(jué)得,應(yīng)該也可以比 1.01 大吧,實(shí)在不行就 1.00001。不過(guò)我瞎蒙的。
閃客:沒(méi)關(guān)系,我給你一個(gè)小動(dòng)圖,看看能不能啟發(fā)你。

小宇:??!我明白了,剛剛我們的估算太保守了,f(x) = ex 的曲線一定是在 g(x) = 1 的上方,但我們可以往上傾斜一下這條線,讓這條線更接近 ex 但又始終在其下方,這樣我們估算出的值應(yīng)該就更大一些了!

閃客:沒(méi)錯(cuò),你想想看如何傾斜這條線,才能盡可能實(shí)現(xiàn)你的這種效果呢?
小宇:我知道了,是切線!切線依然永遠(yuǎn)比 ex 要小,而且是最大程度的傾斜了,再往上斜一點(diǎn)的話就可能比 ex 大了。
閃客:沒(méi)錯(cuò),這就是個(gè)很直觀的描述了,你再想想看,這條切線的方程你能求出來(lái)嗎?
小宇:這個(gè)簡(jiǎn)單,就是讓這條線和 ex 在 0 點(diǎn)處的導(dǎo)數(shù)值一樣!因?yàn)?ex 在 0 點(diǎn)處的導(dǎo)數(shù)值是 1,所以很容易算出這條切線的方程!

閃客:沒(méi)錯(cuò),這樣新的下限值也就很容易算出來(lái)了,也就是 g(0.1) = 1.1,我說(shuō)得對(duì)嗎?
小宇:是的!足足提高了 0.1!太厲害了!
曲線更更近
閃客:現(xiàn)在我們來(lái)重新梳理一下思緒。其實(shí)上面的過(guò)程,換個(gè)角度想,可以理解為兩個(gè)函數(shù)分別從 0 點(diǎn)出發(fā)到 0.1 或者更遠(yuǎn)的地方。那么怎么盡可能保證,你的這個(gè)函數(shù)和 f(x) = ex 這個(gè)函數(shù)盡可能一樣呢?
小宇:明白了,按照剛剛的思路,那最起碼應(yīng)該先保證兩者在 0 處的函數(shù)值一樣,也就是讓他們?cè)谕黄鹋芫€上。

閃客:沒(méi)錯(cuò),繼續(xù)說(shuō)。
小宇:在這個(gè)的基礎(chǔ)上,應(yīng)該保證這兩個(gè)函數(shù)在 0 點(diǎn)處的變化率一樣,即導(dǎo)數(shù)相同。也就是讓他們?cè)谕黄鹋芫€上以相同的速度往前跑。

閃客:OK,這就得到了我們剛剛所說(shuō)的切線。那你再想想看,為什么他們倆的起跑線一樣,起跑速度也一樣,但是兩者仍然不一樣呢?

小宇:哦我明白了,因?yàn)?f(x) = ex 的變化率是越來(lái)越大的,而 g(x) = 1 + x 的變化率一直保持不變。也就是說(shuō)其中一個(gè)在加速跑,越跑越快!
閃客:沒(méi)錯(cuò),所以我們不但要保證它們的變化率(速度)一樣,還得保證它們變化率的變化率(加速度)一樣,也即二階導(dǎo)一樣!

小宇:原來(lái)如此!不過(guò) g(x) = 1 + x 的二階導(dǎo)好像永遠(yuǎn)等于 0,不可能和 ex 一樣,這可怎么辦?
閃客:沒(méi)關(guān)系,再增加一項(xiàng)咯,你看看下面這個(gè)函數(shù)。

小宇:哦明白了!增加了一個(gè)二次項(xiàng),那么二階導(dǎo)就無(wú)法把它完全導(dǎo)沒(méi)。而且上面這個(gè)函數(shù)的二階導(dǎo)是 1,剛好和 ex 的二階導(dǎo)完全一樣!
閃客:嘿嘿是的,我直接幫你算好了,正常應(yīng)該是算一下這個(gè)系數(shù) a 的。

小宇:明白,詳略得當(dāng)!下面不勞你費(fèi)心了,我畫(huà)一下函數(shù)圖像看看!

閃客:嗯,這個(gè)圖畫(huà)的很棒!可以看到,新的函數(shù)確實(shí)比之前更逼近了!那接下來(lái)是不是不用我說(shuō)你也知道我要說(shuō)啥啦?
小宇:是的!接下來(lái)我們就讓它們的 3 階導(dǎo)、4 階導(dǎo)、5 階導(dǎo)一直相等下去,那么就可以無(wú)限逼近了!

閃客:沒(méi)錯(cuò)!
小宇:我太牛了!
發(fā)現(xiàn)規(guī)律
閃客:好了,剛剛我們是直接憑感覺(jué)找到的一些列函數(shù),那我們現(xiàn)在整理一下,看看能不能找到規(guī)律。
小宇:沒(méi)問(wèn)題,我來(lái)說(shuō)吧!其實(shí)我們剛剛是在用多項(xiàng)式函數(shù)來(lái)逼近,通用的形式是下面這個(gè)樣子,并且它們的各階導(dǎo)數(shù)只與對(duì)應(yīng)項(xiàng)系數(shù)有關(guān),這是個(gè)很神奇且方便的地方!

閃客:沒(méi)錯(cuò)!我們其實(shí)就想找一個(gè)上面這樣的多項(xiàng)式函數(shù),讓它的函數(shù)圖像和 ex 貼得非常近,最起碼在 0 點(diǎn)的附近是這樣的。
小宇:是的,而且我們剛剛分析和嘗試過(guò)了,讓兩個(gè)函數(shù)貼得非常近,就相當(dāng)于讓兩個(gè)函數(shù)在某點(diǎn)處的函數(shù)值一樣,1 階導(dǎo)一樣,2 階導(dǎo)一樣,3 階導(dǎo)也一樣,等等等。
閃客:是的,這是一件很神奇的事情,兩個(gè)函數(shù)一樣,居然可以描述成函數(shù)值與各階導(dǎo)一樣。函數(shù)值和各階導(dǎo)數(shù)值,似乎可以描述一個(gè)函數(shù)的樣子。
小宇:這太神奇了,我們即便完全不知道函數(shù)表達(dá)式是什么,但只要知道了僅僅一個(gè)點(diǎn)的函數(shù)值和各階導(dǎo)數(shù)值,就可以幾乎精確地知道這個(gè)函數(shù)長(zhǎng)什么樣子了!
閃客:是的!那回到我們的主線,如何讓這個(gè)多項(xiàng)式函數(shù)和 f(x) = ex 在 0 點(diǎn)附近一樣呢?

小宇:就像剛剛說(shuō)的,讓 g(x) 和 f(x) 在 0 點(diǎn)處的函數(shù)值和各階導(dǎo)數(shù)值一樣!

閃客:沒(méi)錯(cuò)!而且你也發(fā)現(xiàn)了,這個(gè)多項(xiàng)式函數(shù)的 n 階導(dǎo)數(shù)只和 n 次項(xiàng)系數(shù)有關(guān),然后 ex 的各階導(dǎo)數(shù)都是 ex 本身不變。這計(jì)算起來(lái)可真是太方便了!
小宇:對(duì)呀!我已經(jīng)算好了!把它們都代入回 g(x) 里就得出了

這個(gè)函數(shù)圖像和 f(x) = ex 是非常近似的,所以計(jì)算 e0.1 可以通過(guò)計(jì)算 g(0.1) 來(lái)得到答案,算的項(xiàng)數(shù)越多應(yīng)該越精確!
閃客:沒(méi)錯(cuò)!如果 n 趨向于無(wú)窮大時(shí),g(x) 甚至可以和 ex 完全相同。但如果只計(jì)算到有限的一個(gè) n 次項(xiàng),那后面的項(xiàng)可以當(dāng)做 xn 的高階無(wú)窮小量,記為 o(xn),所以就可以寫(xiě)為:

把 ex 換成更一般的函數(shù) f(x) 就是:

這就是函數(shù) f(x) 在 0 點(diǎn)處的 泰勒展開(kāi)式,也叫 f(x) 的 麥克勞林公式。
小宇:哇,原來(lái)這就是泰勒公式呀!
閃客:還沒(méi)完,你想想看還有哪里不對(duì)勁?
泰勒公式登場(chǎng)
小宇:哦我知道了,剛剛我們算 ex 的泰勒展開(kāi)式,是通過(guò)在 0 點(diǎn)處的各階導(dǎo)數(shù)值來(lái)計(jì)算的系數(shù),這是因?yàn)?ex 在零點(diǎn)處的各階導(dǎo)數(shù)值非常好算,都等于 1。
閃客:是的。
小宇:那如果有的函數(shù)是在另一個(gè)點(diǎn),比如在 x0 處更好計(jì)算各階導(dǎo)數(shù),這該怎么辦呢?
閃客:你問(wèn)到點(diǎn)上了。其實(shí),上面在 0 點(diǎn)處的計(jì)算方法,完全可以擴(kuò)展到在任意一個(gè)點(diǎn) x0 處的計(jì)算。
小宇:我明白了!之所以在 0 處計(jì)算各階導(dǎo)數(shù),能夠讓 2 階導(dǎo)只和 2 次項(xiàng)系數(shù)有關(guān),3 階導(dǎo)只和 3 次項(xiàng)系數(shù)有關(guān),是因?yàn)榈痛雾?xiàng)導(dǎo)著到著就消失了,高次項(xiàng)導(dǎo)完之后還剩下 x,那么代入 0 之后也沒(méi)了。
拿 2 階導(dǎo)來(lái)說(shuō),就是下面這個(gè)樣子。

閃客:是的,低次項(xiàng)系數(shù)怎么著都會(huì)導(dǎo)沒(méi),所以無(wú)需關(guān)注。而高次項(xiàng)系數(shù)如果期望帶入 x0 代沒(méi)的話,那只需要構(gòu)造一個(gè) x-x0 就可以了。

回到原來(lái)的式子里,就是

這個(gè)公式就是 f(x) 的在 x0 點(diǎn)處的泰勒展開(kāi)式,也叫做 泰勒公式!而 x0 = 0 只是其中的一個(gè)特例,剛剛說(shuō)過(guò)了,叫做 麥克勞林公式!

小宇:哦,原來(lái)這個(gè)破玩意,就叫做泰勒公式呀!

嚴(yán)格的泰勒公式定義和其證明過(guò)程,可以參見(jiàn)《數(shù)學(xué)分析(第五版)華東師范大學(xué)》定理 6.9
閃客:怎么樣這回記住了吧!
小宇:嗯嗯,明天我就找那個(gè)人算賬去!
還沒(méi)完
小宇:?jiǎn)鑶鑶瑁矣直黄圬?fù)了!
閃客:怎么了,泰勒公式不是記住了嗎?
小宇:但是那個(gè)人問(wèn)我好多更深?yuàn)W的問(wèn)題,我沒(méi)想明白。
閃客:我知道了,他是不是問(wèn)你,如果一個(gè)函數(shù)只有 N 階可導(dǎo),或者說(shuō)甚至是不可導(dǎo)的,那還怎么用多項(xiàng)式函數(shù)逼近?
小宇:啊對(duì)!你怎么知道?
閃客:他是不是還問(wèn),為什么我在某一點(diǎn)周?chē)芯咳绾伪平硞€(gè)函數(shù),卻似乎可以做到即便不在這一點(diǎn)周?chē)埠瓦@個(gè)函數(shù)非常接近?
小宇:啊對(duì)!你怎么知道?
閃客:他是不是還問(wèn),如果要精確計(jì)算 e 的數(shù)值,泰勒公式是最快的方法么?
小宇:??!你全都猜對(duì)了!
閃客:簡(jiǎn)單,你請(qǐng)我吃個(gè)飯,我再給你講講。
--- 完 ---
下方「閱讀原文」處有驚喜
