怎樣更好地理解並記憶泰勒展開式?

問題描述:一直都在記憶泰勒展開式,但是不知道本質是什麼,不知道為什麼一個函數可以那樣的去展開,其實可以通過相關資料慢慢理解,但是現在在考研,時間有點緊,請答著見諒……
, , ,
退乎:

今天,我要講講我和蒼井空的故事。

FBI Warning:未成年人請在家長陪同下觀看。

德藝雙馨的蒼老師是我的啟蒙老師。初入大學,暫時擺脫聯考的巨大壓力後,終於可以放飛自我。在那個草長馬發情的年代,無數個月光如水的燥熱夜晚,蒼老師的課件一次次給我以直逼心靈的撫慰。

嗯,這就是蒼老師本尊了。為了表達我對蒼老師的敬意,送她一副對聯,上聯是:膚如凝脂唇紅齒白花容月貌傾國傾城千嬌百媚,下聯是:愛崗敬業任勞任怨廢寢忘食一絲不苟精益求精,橫批:德藝雙馨。

作為她的鐵粉,我想把這張照片畫出來,或者雕刻出來,使她出現在我手中,免受隔著熒幕的煎熬。

想復制蒼老師的美,首先要在整體尺寸上保持相同。如下:

緊接著,要在第一步的基礎上進一步細化、精確化。所以第二步就要保證和蒼老師本尊的局部形狀相似。改進後就變成了如下:

嗯,盡管這時候很粗糙,但至少已經有了婀娜多姿的影子了。下一步幫蒼老師畫上bra和胖次,再加上發型,並且把大腿、小腿、腳的分界線畫上。下圖:

此時,蒼老師的特徵已經非常明顯了,彷彿就要呼之欲出了,尤其那道事業線,使我彷彿看到一對大白在調皮地跳躍。我要繼續努力,進一步細化,進一步使我手中的蒼老師變得真實。

此時手中的蒼老師外部線條更加細膩了,整體豐滿了,僅有的服飾上增加了一些細節。如果不斷地細化,畫上五官,增加質感,添加紋理,那麼進行無窮次細化之後,我筆下的蒼老師一定會無窮接近真實。最終會變成這個樣子:

當然,我沒能有足夠的時間繼續細化下去,我那年的青春已經隨著她的退役而完結,只是,我仍會在某個無眠的夜裡回憶起蒼老師認真工作的身影,回憶起我那年的青澀和成長,回憶起那年的憧憬和迷茫,回憶起我那年的生命曾經因為蒼老師的出現而灼灼其華。

謹以此文獻給新婚的蒼老師。

好了,大家都精神了吧。現在開始進入正題。

本段的核心思想是仿造

當我們想要仿造一個東西的時候,無形之中都會按照上文提到的思路,即先保證大體上相似,再保證局部相似,再保證細節相似,再保證更細微的地方相似……不斷地細化下去,無窮次細化以後,仿造的東西將無限接近真品。真假難辨。

這是每個人都明白的生活經驗。

===============

一位物理學家,把這則生活經驗應用到他自己的研究中,則會出現下列場景:

一輛隨意行駛的小車,走出了一個很詭異的軌跡曲線:

物理學家覺得這段軌跡很有意思,也想開車走一段一摸一樣的軌跡。

既然是復制,他把剛才關於「仿造」生活經驗應用到這里,提出了一個解決辦法:

既然想模仿剛才那輛車,

那首先應該保證初始位置一樣,

繼續模仿,讓車在初始位置的速度也一樣,

不滿足,繼續細化,這次保持位置、在初始位置處的速度一樣的同時,保證在初始位置處車的加速度也一樣,

不滿足,繼續細化,這次保證初始位置、初始位置處的速度、初始位置處的加速度都一樣,也保證初始位置處的加速度的變化率也一樣,

不滿足,精益求精,可以一直模仿下去。

物理學家得出結論:把生活中關於「仿造」的經驗運用到運動學問題中,如果想仿造一段曲線,那麼首先應該保證曲線的起始點一樣,其次保證起始點處位移隨時間的變化率一樣(速度相同),再次應該保證前兩者相等的同時關於時間的二階變化率一樣(加速度相同)……如果隨時間每一階變化率(每一階導數)都一樣,那這倆曲線肯定是完全等價的。

=================

一位數學家,泰勒,某天看到一個函數 y=e^{x} ,不由地眉頭一皺,心裡面不斷地犯嘀咕:有些函數啊,他就是很惡心,比如這種,還有三角函數,這樣的函數本來具有很優秀的品質(可以無限次求導,而且求導還很容易),但是呢,如果是代入數值計算的話,就很難了。比如,看到 y=cosx 後,我無法很方便地計算 x=2 時候的值。

為了避免這種如鯁在喉的感覺,必須得想一個辦法讓自己避免接觸這類函數,即把這類函數替換掉。

可以根據這類函數的圖像,仿造一個圖像,與原來的圖像相類似,這種行為在數學上叫近似。不扯這個名詞。講講如何仿造圖像。

他聯想到生活中的仿造經驗,聯想到物理學家考慮運動學問題時的經驗,泰勒首先定性地、大概地思考了一下整體思路。(下面這段只需要理解這個大概意思就可以,不用深究。)

面對 f(x)=cosx 的圖像,泰勒的目的是:仿造一段一模一樣的曲線 g(x) ,從而避免餘弦計算。

想要復制這段曲線,首先得找一個切入點,可以是這條曲線最左端的點,也可以是最右端的點,anyway,可以是這條線上任何一點。他選了最左邊的點。

由於這段曲線過 (0,1) 這個點,仿造的第一步,就是讓仿造的曲線也過這個點,

完成了仿造的第一步,很粗糙,甚至完全看不出來這倆有什麼相似的地方,那就繼續細節化。開始考慮曲線的變化趨勢,即導數,保證在此處的導數相等。

經歷了第二步,現在起始點相同了,整體變化趨勢相近了,可能看起來有那麼點意思了。想進一步精確化,應該考慮凹凸性。高中學過:表徵圖像的凹凸性的參數為「導數的導數」。所以,下一步就讓二者的導數的導數相等。

起始點相同,增減性相同,凹凸性相同後,仿造的函數更像了。如果再繼續細化下去,應該會無限接近。所以泰勒認為「仿造一段曲線,要先保證起點相同,再保證在此處導數相同,繼續保證在此處的導數的導數相同……

有了整體思路,泰勒準備動手算一算。

下面就是嚴謹的計算了。

先插一句,泰勒知道想仿造一段曲線,應該首先在原來曲線上隨便選一個點開始,但是為了方便計算,泰勒選擇從 (0,1) 這個點入手。

把剛才的思路翻譯成數學語言,就變成了:

首先得讓其初始值相等,即: g(0)=f(0)

其次,得讓這倆函數在x=0處的導數相等,即: g^{'}(0)=f^{'}(0)

再次,得讓這倆函數在x=0處的導數的導數相等,即: g^{''}(0)=f^{''}(0)

……

最終,得讓這倆圖像在x=0的導數的導數的導數的……的導數也相同。

這時候,泰勒思考了兩個問題:

第一個問題,餘弦函數能夠無限次求導,為了讓這兩條曲線無限相似,我仿造出來的 g(x) 必須也能夠無限次求導,那 g(x) 得是什麼樣類型的函數呢?

第二個問題,實際操作過程中,肯定不能無限次求導,只需要求幾次,就可以達到我想要的精度。那麼,實際過程中應該求幾次比較合適呢?

綜合考慮這兩個問題以後,泰勒給出了一個比較折中的方法:令 g(x) 為多項式,多項式能求幾次導數呢?視情況而定,比如五次多項式 g(x)=ax^{5}+bx^{4}+cx^{3}+dx^{2}+ex+f ,能求5次導,繼續求就都是0了,幾次多項式就能求幾次導數。

泰勒比我們厲害的地方僅僅在於他想到了把這種生活經驗、翻譯成數學語言、並運用到仿造函數圖像之中。假如告訴你這種思路,靜下心來你都能自己推出來。

泰勒開始計算,一開始也不清楚到底要求幾階導數。為了發現規律,肯定是從最低次開始。

先算個一階的。

可以看出,除了在 (0,1) 這個點,其他的都不重合,不滿意。

再來個二階的。

可以看出,在 (0,1) 這個點附近的一個小範圍內,二者都比較相近。

再來個四階的。

可以看出,仍然是在 (0,1) 這個點附近的一個範圍內二者很相近。只是,此時二者重合的部分擴大了。

到這里,不光是泰勒,我們普通人也能大概想像得到,如果繼續繼續提高階數,相似範圍繼續擴大,無窮高階後,整個曲線都無限相似。插個圖,利用計算機可以快速實現。

然而泰勒當時沒有計算機,他只能手算,他跟我們一樣,算到四階就算不動了,他就開始發呆:剛才為什麼這么做來著?哦,對了,是為了計算 cos2 的時候避免出現餘弦。所以他從最左端 (0,1) 處開始計算,算著算著,他沒耐心了,可是離著計算 x=2 還有一段距離,必須得繼續算才能把這倆曲線重合的範圍輻射到 x=2 處。

此時,他一拍腦門,恍然大悟,既然我選的點離著我想要的點還遠,我為啥不直接選個近點的點呢,反正能從這條曲線上任何一個點作為切入,開始仿造。近了能省很多計算量啊。想計算 cos2 ,可以從 cos\frac{\pi}{2} 處開始仿造啊。

所以啊,泰勒展開式就是把一個三角函數或者指數函數或者其他比較難纏的函數用多項式替換掉。

也就是說,有一個原函數 f(x),我再造一個圖像與原函數圖像相似的多項式函數 g(x) ,為了保證相似,我只需要保證這倆函數在某一點的初始值相等,1階導數相等,2階導數相等,……n階導數相等

寫到這里,你已經理解了泰勒展開式。

如果能理解,即使你記不住泰勒展開式,你都能自己推導。所以,我建議你,考試之前臨時死記硬背一下,即使考試因為緊張忘了,也可以現場推。如果不是為了考試,那記不住也沒關系,反正記住了一段時間不用,也會忘。用的時候翻書,找不到書就自己推導。

繼續說泰勒。

泰勒算到四階以後就不想算了,所以他想把這種計算過程推廣到n階,算出一個代數式,這樣直接代數就可以了。泰勒就開始了下面的推導過程。

首先要在曲線 f(x) 上任選一個點,為了方便,就選 (0,f(0)) ,設仿造的曲線的解析式為 g(x) ,前面說了,仿造的曲線是一個多項式,假設算到n階。

能求n次導數的多項式,其最高次數肯定也為n。所以,仿造的曲線的解析式肯定是這種形式:

g(x)=a_{0}+a_{1}x+a_{2}x^{2}+……+a_{n}x^{n}

前面說過,必須保證初始點相同,即

g(0)=f(0)=a_{0} ,求出了 a_{0}

接下來,必須保證n階導數依然相等,即

g^{n}(0)=f^{n}(0)

因為對 g(x) 求n階導數時,只有最後一項為非零值,為 n!a_{n}

由此求出 a_{n}=\frac{f^{n}(0)}{n!}

求出了 a_{n} ,剩下的只需要按照這個規律換數字即可。

綜上: g(x)=g(0)+\frac{f^{1}(0)}{1!}x+\frac{f^{2}(0)}{2!}x^{2}+……+\frac{f^{n}(0)}{n!}x^{n}

知道了原理,然後把原理用數學語言描述,只需要兩步即可求出以上結果。背不過推一下就行。

泰勒推到這里,又想起了自己剛才那個問題:不一定非要從x=0的地方開始,也可以從 (x_{0},f(x_{0})) 開始。此時,只需要將0換成 x_{0} ,然後再按照上面一模一樣的過程重新來一遍,最後就能得到如下結果:

g(x)=g(x_{0})+\frac{f^{1}(x_{0})}{1!}(x-x_{0})+\frac{f^{2}(x_{0})}{2!}(x-x_{0})^{2}+……+\frac{f^{n}(x_{0})}{n!}(x-x_{0})^{n}

泰勒寫到這里,長舒一口氣,他寫下結論:

有一條解析式很惡心的曲線 f(x) ,我可以用多項式仿造一條曲線 g(x) ,那麼

f(x)\approx g(x)=g(x_{0})+\frac{f^{1}(x_{0})}{1!}(x-x_{0})+\frac{f^{2}(x_{0})}{2!}(x-x_{0})^{2}+……+\frac{f^{n}(x_{0})}{n!}(x-x_{0})^{n}

泰勒指出:在實際操作過程中,可根據精度要求選擇n值,只要n不是正無窮,那麼,一定要保留上式中的約等號。

若想去掉約等號,可寫成下面形式:

f(x)=g(x)=g(x_{0})+\frac{f^{1}(x_{0})}{1!}(x-x_{0})+\frac{f^{2}(x_{0})}{2!}(x-x_{0})^{2}+……+\frac{f^{n}(x_{0})}{n!}(x-x_{0})^{n}+……

好了,泰勒的故事講完了。其實真正的數學推導只需要兩步,困難的是不理解思想。如果背不過,就臨時推導,只需要十幾二十秒。

===============

泰勒的故事講完了,但是事情沒完,因為泰勒沒有告訴你,到底該求導幾次。於是,剩下一幫人幫他擦屁股。

第一個幫他擦屁股的叫佩亞諾。他把上面式子中的省略號中的東西給整出來了。然而最終擱淺了,不太好用。

後面拉格朗日又跳出來幫佩亞諾擦屁股。至此故事大結局。

首先講講佩亞諾的故事。

簡單回顧一下,上文提到,泰勒想通過一個多項式函數 g(x) 的曲線,把那些看起來很惡心的函數 f(x) 的曲線給仿造出來。提出了泰勒展開式,也就是下面的第一個式子:

佩亞諾開始思考誤差的事。先不說佩亞諾,假如讓你思考這個問題,你會有一個怎樣的思路?既然是誤差,肯定越小越小對吧。所以當我們思考誤差的時候,很自然的邏輯就是讓這個誤差趨近於0

佩亞諾也是這么想的,他的大方向就是令後面這半部分近似等於0,一旦後半部分很接近0了,那麼就可以省去了,只展開到n階就可以了,泰勒展開就可以用了。但是他不知道如何做到。

後來,他又開始琢磨泰勒的整個思路:先保證初始點位置相同,再保證一階導數相同,有點相似了,再保證二階導數相同,更細化了,再保證三階導數相同……突然靈光閃現:泰勒展開是逐步細化的過程,也就是說,每一項都比前面一項更加精細化(更小)。舉個例子,你想把90斤糧食添到100斤,第一次,添了一大把,變成99斤了,第二次,添了一小把,變成99.9斤了,第三次,添了一小撮,變成99.99斤了……每一次抓的糧食,都比前一次抓的少。泰勒展開式裡面也是這樣的:

由此可見,最後一項(n階)是最小的。皮亞諾心想:只要讓總誤差(後面的所有項的總和)比這一項還要小,不就可以把誤差忽略了嗎

現在的任務就是比較大小,比較泰勒展開式中的最後一項、與誤差項的大小,即:

如何比較大小?高中生都知道,比較大小無非就是作差或者坐商。不能確定的話,一個個試一下。最終,皮亞諾用的坐商。他用誤差項除以泰勒展開中的最小的項,整理後得到:

紅框內的部分是可以求出具體數字的。佩亞諾寫到這里,偷了個懶,直接令 x 趨近於 x_{0} ,這樣,誤差項除以泰勒展開中的最小項不就趨近於0了嗎?誤差項不就趨近於0了嗎

我不知道你們看到這里是什麼感覺,可能你覺得佩亞諾好棒,也可能覺得,這不糊弄人嘛。

反正,為了紀念佩亞諾的貢獻,大家把上面的誤差項成為佩亞諾余項。

總結一下佩亞諾的思路:首先,他把泰勒展開式中沒有寫出來的那些項補全,然後,他把這些項之和稱為誤差項,之後,他想把誤差項變為0,考慮到泰勒展開式中的項越來越小,他就讓誤差項除以最後一項,試圖得到0的結果,最後發現,只有當x趨近於x_{0}時,這個商才趨近於0,索性就這樣了。

其實整體思路很簡單,當初學不會,無非是因為數學語言描述這么個思路會讓人很蒙逼。

佩亞諾的故事講完了,他本想完善泰勒展開,然而,他的成果只能算 x 趨近於 x_{0} 時的情況。這時候,拉格朗日出場了。

拉格朗日的故事說來話長,從頭說起吧。話說有一天,拉格朗日顯得無聊,思考了一個特別簡單的問題:一輛車,從 S_{1} 處走到 S_{2} 處,中間用了時間 t ,那麼這輛車的平均速度就是 v=\frac{S_{1}-S_{2}}{t} ,假如有那麼一個時刻,這輛車的瞬時速度是小於平均速度 v 的,那麼,肯定有一個時刻,這輛車的速度是大於平均速度 v 的,由於車的速度不能突變,從小於 v 逐漸變到大於 v ,肯定有一個瞬間是等於 v 的。

就這個問題,我相信在做的大多數,即使小時候沒有聽說過拉格朗日,也一定能想明白這個問題。

拉格朗日的牛逼之處在於,能把生活中的這種小事翻譯成數學語言。他把 S-t 圖像畫出來了,高中生都知道,在這個圖像中,斜率表徵速度:

把上面的這個簡單的問題用數學語言描述出來,就是那個被拉格朗日了的定理,簡稱拉格朗日中值定理:有個函數 S(t) ,如果在一個範圍內連續,可求導,則 \frac{S(t_{2})-S(t_{1})}{t_{2}-t_{1}}=S^{'}(t^{'})

後來啊,拉格朗日的中值定理被柯西看到了,柯西牛逼啊,天生對於算式敏感。柯西認為,縱坐標是橫坐標的函數,那我也可以把橫坐標寫成一個函數啊,於是他提出了柯西中值定理:

\frac{S(t_{2})-S(t_{1})}{T(t_{2})-T(t_{1})}=\frac{S^{'}(t^{'})}{T^{'}(t^{'})}

拉格朗日聽說了這事,心裡憤憤不平,又覺得很可惜,明明是自己的思路,就差這么一步,就讓柯西撿便宜了,不過柯西確實說的有道理。這件事給拉格朗日留下了很深的心理陰影。

接下來,拉格朗日開始思考泰勒級數的誤差問題,他同佩亞諾一樣,只考慮誤差部分(見前文)。

插一句,各位老鐵,接下來拉格朗日的操作絕壁開掛了,我實在是編不出來他的腦迴路。

首先,跟佩亞諾一樣,先把誤差項寫出來,並設誤差項為 R(x)

誤差項 R(x) 中每一項都是倆數的乘積,假如是你,你肯定是想兩邊同時除掉一個 (x-x_{0})^{n+1} ,對吧,為了簡單,把 (x-x_{0})^{n+1} 設為 T(x) :

所以除過之後,就成了:

等等,這一串東西看著怎麼眼熟?咦?這不是柯西老哥推廣的我的中值定理么?剩下的不就是……:

紅框中,腦路之清奇、操作之風騷、畫風之詭異、場面之震撼,讓我們不禁感慨,拉格朗到底日了什麼,腦海里才會想到柯西。

拉格朗日寫到這里卡住了,不知道你們有沒有這種經驗,反正我思考一道數學題的時候,會嘗試著把思路進行到底,直到完全進了死衚衕才會否定這種思路。有了前面的腦洞,拉格朗日繼續復制這種思路,想看看能不能繼續往下寫:

先看分子

再看分母

好巧合,又可以用一次柯西的中值定理了。

總之,按照這種方法,可以一直求解下去,最終的結果就是:

误差项=\frac{f^{n+1}(\xi)}{(n+1)!}(x-x_{0})^{n+1}

至此,拉格朗日把後面無數多的誤差項給整合成了一項,而且比配諾亞更加先進的地方在於,不一定非要讓 x 趨近於 x_{0} ,可以在二者之間的任何一個位置 \xi 處展開,及其好用。

本文涵蓋泰勒展開式、佩亞諾余項、拉格朗日中值定理、柯西中值定理、拉格朗日余項。全文完畢。

多謝大家的贊同以及批評和指正,回頭看了一下全文,發現一個最大的問題:前半部分太「濕」,後半部分太干。以及,最後講解拉格朗日余項時,堆砌的公式太多,講的直觀道理太少,影響閱讀體驗以及理解。我將會在我的下一篇關於傅里葉變換的回答中加以改正。

歷時四天,終於把本文更新完畢。全文八千字左右。其實如果是用語言講解,這一塊的內容最多用十分鐘即可講完。為了解放雙手,我在考慮年後要不要開一場live,把微積分和數學物理方法中的所有數學思想利用這種直觀的生活經驗講解出來,全程重在理解,不會出現數學語言。名字我都想好了,就叫《燕園吳彥祖帶你三小時深刻理解微積分的所有思想》。屆時我會保證全程開車的同時、乾貨不斷。

什麼?你覺得我做不到全程開車?你可以質疑我的才華、可以質疑我的顏值,但是你不能質疑我的技術,因為。

我騷啊。

開個玩笑啦,我本人理工科博士在讀,每天同一幫老男人一起講段子,目前積累的段子有6億多段,而且,在新東方和學而思當老師,不會開車根本沒辦法制伏倒霉孩子。

謝謝。新年快樂。

==========

說最重要的一點,對於非數學系的理工科學生來說,永遠都要記住,數學家都是凡人,你所接觸到的所有數學知識,都來源於某一種數學思想,所有的數學思想都來源於生活經驗。而這種生活經驗,我們每個人都有,即使沒有,也會很容易就能想通。

所以,你內心要有一種信仰,所有的數學思想都來源於生活經驗,你肯定可以搞明白。學習數學,最忌諱的就是把它當作一種抽象的數字遊戲,非數學系的理工科接觸到的數學,必然有一條條形象的、直觀的生活經驗與之對應。

之所以覺得微積分困難,可能怪老師,可能怪課本,一開始就堆砌一堆晦澀難懂拗口的數學語言,對於初學者來說,直接就望而卻步了。如果老師講泰勒展開之前,先把這種思想講明白,那接下來再去摳數學語言就輕松很多。

傅立葉變換的回答:

如何理解傅里葉變換公式?​图标


劉永昊:

夏天放聯考假的時候閑得無聊瞎想所得,從筆記上Copy過來希望有所幫助,不喜勿噴。

看到一個YouTube視訊(https://www.youtube.com/watch?v=5c_x4C5tc4Y ),雖然內容很功利很應付考試,但是其中一段話給人以遐想:

我們知道一個函數 f(x)x_0 處的取值,也知道 f(x) 是如何變化的,那麼如何用 f(x_0) 來表示 f(x) 呢?

  • 如果你問一個國小生,他會說,我知道一個值,那麼我猜 f(x)=f(x_0) .
  • 如果你問一個國中生,他會說,我知道 f(x)x_0 處的斜率,我不妨假設在這之間函數是以同樣的斜率變化的,那麼 f(x)=f(x_0)+f'(x_0)(x-x_0) .
  • 如果你問一個高中生,他會說,如果 f'(x) 逐漸增大,即它的二階導是正的,那麼就會有 f(x)>f(x_0)+f'(x_0)(x-x_0) ; 反之則會有 f(x)<f(x_0)+f'(x_0)(x-x_0) .

雖然這種理解很樸素,視訊里也沒有繼續往下說,但是可以感覺到,這正是對泰勒展開最本質的理解。其實只需要稍稍做一些思想加工我們就可以從這段話中推導出來完整的泰勒展開式。


  • 引理:如果變化率是個常數,那麼變化率在自變量上的累積,即變化量,就等於變化率和自變量的變化的乘積,相當於「斜率乘距離」,即

\begin{split} \Delta y &= \int \frac{{\rm d} y}{{\rm d} x} \cdot {\rm d}x \\ &= \int f'(x_0) \cdot {\rm d} x \\ &= f'(x_0) \int 1 \cdot {\rm d} x \\ &= f'(x_0) \Delta x \end{split}

今有 f(x)[x_0,x] 之間連續可導。

  • 如果 f(x) 本身就是常數(國小生思維),則有

f(x)=f(x_0)

  • 如果 f(x) 不是常數而 f'(x) 是常數(國中生思維),則有

\begin{split} &f(x)-f(x_0) \\ =&\text{原函数的变化率的累积造成的偏差} \\ =&f'(x_0)(x-x_0) \end{split}

  • 如果 f''(x) 是常數,則有

\begin{split} &f(x)-f(x_0)-f'(x_0)(x-x_0) \\ =&\text{一阶导的变化率的累积在原函数上累积造成的偏差} \\ =&\int_{x_0}^x f''(x_0)(x-x_0){\rm d}x \end{split}

  • 如果 f'''(x) 是常數,則有

\begin{split} &f(x)-f(x_0)-f'(x_0)(x-x_0)-\int_{x_0}^x f''(x_0)(x-x_0){\rm d}x \\ =&\text{二阶导的变化率的累积造成一阶导的变化率的累积在原函数上累积造成的偏差} \\ =&\iint_{x_0}^x f'''(x_0)(x-x_0) {\rm d}x \end{split}

將這種思考無限進行下去,並經過適當移項,我們可以得到如下無窮級數求和:

\begin{split} f(x)&=f(x_0)+f'(x_0)(x-x_0)+f''(x_0)\int_{x_0}^x (x-x_0){\rm d}x+f'''(x_0)\iint_{x_0}^x (x-x_0) {\rm d}x + \ldots \\ &=f(x_0)+f'(x_0)(x-x_0) + f''(x_0)\cdot \frac{1}{2} (x-x_0)^2 + f'''(x_0)\cdot \frac{1}{2}\cdot \frac{1}{3} (x-x_0)^3 + \ldots \\ &=f^{(0)}(x_0)\frac{1}{0!}(x-x_0)^0+f'(x_0)\frac{1}{1!}(x-x_0)^1 + f''(x_0)\frac{1}{2!} (x-x_0)^2 + f'''(x_0)\frac{1}{3!}(x-x_0)^3 + \ldots \\ &=\sum_{i=0}^{+\infty} f^{(i)}(x_0)\frac{1}{i!}(x-x_0)^i \end{split}

其中 f^{(i)}(x) 表示 f(x)i 階導。

而這就是泰勒展開。上面的這種邏輯過程也間接說明了為什麼泰勒定理只適用於連續 n 階可導的函數區間:因為只有這樣,已知的和未知的函數值之間才能用「變化」的定義建立聯系。


王醒:

數學中研究一個復雜的對象,最常用的方式就是線性逼近。線性逼近在數學中隨處可見,此處不表。
下面討論這個函數的泰勒級數的問題。
泰勒級數是幹什麼?
給定一個在a點的光滑函數f並且假設它在a處n階導數全不為0,
,我們怎麼考慮它在某一點a附近的取值情況??
最簡單的:用在a點切線逼近這個函數,設這個切函數為g.
於是我們有\Delta f=f-g,\Delta f在a點值為0,導數為0.
不妨設a=0,f(0)=0.
如果f不是一個簡單的函數,gf的逼近顯然太粗略了。
怎麼改進這個逼近??f=a_{1}x +\Delta f,
顯然的就是要對\Delta f進行逼近,而\Delta f在0的切線是x=0,不能用切線對其逼近。於是乎:
定義\Delta _{1} f=\Delta f /x ,  x>0.\Delta _{1} f(0)=\lim_{x \rightarrow 0}{\Delta f /x }
我們可得\Delta _{1}f(0)=0,於是可以利用上方法對\Delta _{1}f進行逼近。
\Delta _{1}f=a_{2}x+\Delta _{2}f
由此即得:f=a_1 x+x(a_2 x+\Delta _2 f),得到了一個二次逼近
仿此可得函數的泰勒展開式。
由上過程我們可知泰勒展開式就是基於對線性逼近的無限次運用而得到的。。。
什麼樣的函數可以進行泰勒展開??
這樣問是不妥的。應該是:
函數在一點處滿足什麼樣的性質在該點處有泰勒展開?
必要條件是,一個函數在一點處是光滑的。原因在上文中體現了出來,光滑函數保證無窮階導數的存在從而保證了每一次線性逼近的存在性。


melonsyk:

泰勒展開
f(x) = \sum_{n=0}^{\infty}f^{(n)}(x_0)\times\frac{1}{n!}(x-x_0)^n
通項只有三部分,你到底是怎樣才會記不住?
唯一需要注意的就是係數\frac{1}{n!},你試著兩邊求n次導,就會發現它就是為了消去對冪函數的求導產生的n!,推過一遍就能記住了。


劉遙行:

題主題干關鍵詞【理解】【記憶】,所以圍繞這兩個部分來答

已經看到 @憶臻 和幾個回答提到了

【官方雙語】微積分的本質 – 10 – 泰勒級數​www.bilibili.com图标

本文也總結和整理自此視訊,但本著【視訊】不易快速閱覽和檢索的原則,將這個無與倫比的解釋視訊中的關鍵點梳理,寫成部落格排版、公式和圖片更加Fancy漂亮的版本,歡迎移步我的部落格,默默吐槽Aorqu對圖片的模糊處理真的讓人如鯁在喉)

歡迎各位大神批評指正!BTW,求收藏的小夥伴不吝嗇一個贊啊,為啥會收藏 = 贊 * 2 ?

【1】什麼是泰勒公式【1.1】基本定義

數學定義,公式各個部分代表什麼含義先說清楚

\begin{align} f(x)_{Taylor} &= \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!} \times (x - a)^n \\ &= f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f^{(2)}(a)}{2!}(x-a)^2+ \cdots + \frac{f^{(n)}(a)}{n!}(x-a)^n + R_n(x) \end{align}

f^{(n)}(a) 表示 f(x) 在第 n 階導數的表達式,帶入一個值 a 計算後得到的結果(注意,它是個值)
\frac{1}{n!} 是一個係數(一個值),每一項都不同,第一項 \frac{1}{1} ,第二項 \frac{1}{2!} …… 依此類推
(x-a)^n 是一個以 x 為自變量的表達式 R_n(x) 是泰勒公式的余項,是 (x-a)^n 的高階無窮小(此處先不解釋,聽起來很牛逼,但是跟隨例子看完就發現並沒有什麼玄乎的)

求和符號去掉展開寫即第二行

個人粗淺總結,初學者產生記不住的感覺大多數情況下是沒有沉下心來想想公式的各部分表示的是什麼東西,梳理一下會清晰很多

【1.2】聯想鏈條

所有的 <內容>➜ 符號都表達【由<內容>聯想到】(一種牢固記憶的技巧)

首先拆字

【公式】 <什麼公式?>➜ 【多項式】(Polynomials),把多項式的一般形式寫出來,這應該是非常容易理解的概念,即指數不僅僅為2的拋物線的組合

P_{n}(x) = \sum_{i = 0}^{n} c_ix^i = c_0 + c_1x + c_2x^2 + \cdots + c_nx^n

【泰勒】<諧音「太樂」 ≈ 如果所有小數都能近似成整數那不是太快樂了?> ➜ 近似,獲得一個直觀理解

  • 泰勒公式通過把【任意函數表達式】轉換(重寫)為【多項式】形式,是一種極其強大的函數近似工具

為什麼說它強大呢?

  • 多項式非常【友好】,三易,易計算,易求導,易積分
  • 幾何感覺和計算感覺都很直觀,如拋物線和幾次方就是底數自己乘自己乘幾次

泰勒公式乾的事情就是:使用多項式表達式估計(近似) 在 附近的值

那麼如何近似呢?使用一個例子來加深理解

【2】怎樣理解泰勒公式

我們要乾的事情,就是改變多項式函數 P(x) = c_0 + c_1x + c_2x^2c_0, c_1, c_2 的值,(只有三項是為圖個方便)去近似餘弦函數 f(x) = cos(x) ,【近似過程】參考下面的動圖

我們需要做的事情(目的)即尋找一條綠色的曲線(多項式的係數 c_0, c_1, c_2 ),在 x=0 附近(0為上面提到的 a )盡可能的與 f(x) = cos(x) 的圖像相似(重合)

【2.1】函數式角度

那如何才能找到這三個參數呢?最為顯而易見的做法就是希望在 x=0 的位置,兩個表達式的切線盡量相等,切線即斜率,也就是求導,比較抽象,一步一步來可視化一下

【2.1.1】近似過程

  • 【確定c_0x=0 帶入公式,令 cos(x) = 1 ,同理對P(x)可以得到 c_0=1

  • 【確定 c_1 】容易觀察到,如果對P(x)求導就可以把c_1前的自變量去掉。並且,x=0P(x)已經固定為1,為了更進一步的相似,如果我們讓 x=0 處的 f(x)P(x) 的切線斜率也相同不就更近似了?(兩種思考模式我覺得都可以) 求導之後可以的到 c_1 = 0

  • 【確定 c_2】現在我們確定兩個值,那麼綠色的曲線就只能如下圖一樣移動了(固定了 x=0 的函數值和x=0 處的斜率 ),為了更接近相似的目標,我們也是希望斜率在變化的過程的速度也是近似的(滑動的白色和黃色直線),確定 c_2 = -\frac{1}{2}

得到表達式 P(x) = 1 - \frac{1}{2}x^2 ,檢測一下近似度如何? cos(0.1) \approx 1 - \frac{1}{2}(0.1)^2 = 0.995 同時計算器 cos(0.1) = 0.9950042 ,其實只取前幾項的多項式已經在 x=a附近的近似這一要求上有很好的效果了

為什麼這個【近似過程】寫的這么詳細,是為了在過程中體會兩個關鍵點

【2.1.2】為什麼使用多項式來近似

因為多項式的求導法則可以控制變量,消去低次項,使得x=a未知的 c_n 容易確定,在之前的例子里,如下圖所示

c_0 確保了 x=0 時相等, c_1 確保了 x=0 時的斜率相等, c_2 確保了 x=0 時斜率的變化率相等,或者說,隨著多項式冪次變高,這種近似就越精確

【2.1.3】為什麼有個係數

階層係數是由一次一次的求導產生的。我們再把項數加兩個,參看下圖,直觀的感受一個 n!的誕生

首先,低次項會變為0,這樣可以很方便的通過計算 f(x)n 次求導的表達式,帶入 x=a 即可得到 c_n 的值,階層其實是多次求導的係數

其實,某一點處的導數值資訊 \iff 那一點附近的函數值資訊 這個直觀感覺,是很重要的

如果把對 cos(x) 函數的處理過程一般化,泰勒展開式除余項外的部分顯而易見了,下面這幅動圖就是不同項對函數的描述能力,並且擴展到 x =a 一般化的過程

【2.2】幾何角度

首先定義一個函數表示求下列圖像中函數圖像中填滿部分的面積,函數為 f(x) ,面積函數為 f_{area}(x) ,而圍成面積區域的曲線即為面積函數的導數 \frac{df_{area}}{dx}(x) (至於為什麼是這樣,有一個牛逼的名字叫做,微積分基本定理: \int_{a}^{b}f(t)dt = F(b)-F(a) ,沒那麼玄乎,在3B1B的另一個視訊內講解的相當直觀。博主也可以寫那一期的部落格,如果要求的讀者多的話),如下圖所示

定義一個這樣的場景是為了計算這樣一件事(如下圖所示):假設我們知道了 f(a) 點的面積,往右擴展很小的距離 dx 要算出新部分的面積(左邊綠色已知 + 黃色矩形 + 紅色三角形),公式會是什麼樣的呢?

dx 開始點為 a ,終點為 x ,則可以得到

  • 【黃色矩形】底邊為 x-a ;高為 \frac{df_{area}}{dx}(a)
  • 【紅色三角形】底邊為 x-a ;高的計算稍微麻煩,首先,斜邊的斜率是 \frac{df_{area}}{dx}(x)函數的導數x=a時的函數值(算斜率,求導數即可),而斜率 k = \frac{y}{x} ,所以得到高為 \frac{d^2f_{area}}{dx^2}(a) \times (x-a) (前部分是斜率,後半部分是 x ,需要求的是 y 也是高)
  • 【計算總面積】如下圖和公式所示

f_{area}(x) \approx f(a) + \frac{df_{area}}{dx}(a)(x-a) + \frac{1}{2} \frac{d^2f_{area}}{dx^2}(a)(x-a)^2

這個公式為啥這么眼熟呢?其實明顯就是泰勒展開式的前3項,如果你還要打破沙鍋問到底,第4項呢?你可以放大紅色三角形,把函數曲線和面積之間的空白部分再次用多個更小的三角形填補,在積分工具的幫助下,可以得到三次項

從幾何角度來看,再一次驗證了,泰勒公式是近似的 x=a 附近的函數值這一直觀理解

【2.3】余項

我們知道,對泰勒公式來說,如果寫成展開式形式,並沒有辦法完全逼近待求函數(因為缺少極限工具),所以無論如何到最後都會留一點東西,這剩下的東西不好表達,就全都丟到余項中

可以暫時如此理解,不在此迷惑,如果是專業學生,需要深究,建議參看專業教材深入理解其中玄妙

【3】泰勒級數

完成對【泰勒公式】的理解後,需要對【級數 Series】這個概念進行一個推廣,什麼是【級數】呢?

在數學中,【級數】就是無限多項的和

在把泰勒展開式,擴展到無限項之後,就會出現【收斂 Converge】和【發散 diverge】的概念

【3.1】收斂

收斂,即在泰勒展開式被推廣到無限項之後,整體式子的值會越來越趨近於一個定值,比如下圖的 \frac{1}{2}e

【3.2】發散

與收斂相對應的,即發散,式子無法趨近於一個定值,比如 ln(x)x=1 附近,如下圖所示,虛線即為能夠讓多項式的和收斂的最大取之範圍,稱為【泰勒級數的收斂半徑

【4】總結

  • 泰勒公式幹了一件什麼事?

使用多項式表達式估計(近似) f(x)x = a 附近的值

  • 泰勒公式的導數項如何推倒出來的?

某一點處的導數值資訊 \iff 那一點附近的函數值資訊

  • 泰勒公式如何記永遠不會忘?

參照第一條總結,是 x=a 附近,公式 ➜ 多項式,很多項,要用求和寫在一起;參照第二條總結,近似資訊用的求導;係數就是 x=a 處求導一次一次放下來;OK,開始寫!

f(x) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (x-a)^n

並不知道寫的對不對,翻到上面Check

OK!求個點贊,各位

收工!以上!


Aorqu用戶:

我編過一個口訣用來記憶泰勒展開式:

指對連

三角斷

三角對數隔一換,

對數函數一二三,

三角指數有感嘆。

e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...+\frac{x^n}{n!}

ln(x+1)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+...+(-1)^n\frac{x^n}{n}

cos(x)=1-\frac{x^2}{2!}+\frac{x^4}{4!}-\frac{x^6}{6!}+...+(-1)^n\frac{x^{2n}}{(2n)!}

sin(x)=x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+...(-1)^n\frac{x^{2n+1}}{(2n+1)!}

指對連:指數函數和對數函數的展開式中1、2、3…是連續的

三角斷:三角函數的展開式1,3,5或者2,4,6不連續

三角對數隔一換:三角函數和對數函數的符號隔一個換一個

對數函數一二三:對數函數的分母是1,2,3,沒有❗️

三角指數有感嘆:三角函數和指數函數中分母有階乘

當記不清泰勒展開式的時候,背一遍這個口訣就想起來了。


匿名用戶:

本質就是對於一個無窮階連續可導的函數,它的各階導數值就給出了這個函數的所有資訊,你可以就把這個函數想像為無窮階的多項式函數,係數定了這個函數也就定了。
當然還有一種想法是利用差商來思考,n階差商的極限就是對應的n階導數,而n階差商求的時候是取了該函數n+1個函數值,當階趨於無窮階的時候,取的函數值也趨於無窮,再加上無窮階可導的限制,這些差商的極限差不多就給出了函數的所有點的值的資訊了。

能夠證明兩個光滑函數的任意導數相等,再加上函數值相等,必然這兩個函數相等的。積分中值定理就能搞定。所以tayler展開只是該函數的另一種表達形式而已。


Johnny Shaw:

「給定向量空間中一組基,任一個向量有且僅有唯一坐標表示。」

明白這句話後,不那麼嚴謹的話,可以說Taylor series無非就是在級數空間的線性表出。


Aorqu用戶:

用吳文俊的話說就是:把質的困難轉化成量的復雜。

展開前求解函數的值很困難,
展開後是冪函數的線性組合,
雖然有很多很多項,
但是每一項都是冪函數,
因此每一項都容易求解。
於是只要對展開後的求和,
就能得到展開前的函數的值。
就這么簡單。

註:吳文俊的原話是用在機器證明上面的,
我把它用在這里,所以這可以說代表我的
解釋而非吳文俊的。


Aorqu用戶:

泰勒展開的公式我也很討厭,只好搬運幾個生動有趣的圖過來了~


竹雨緣:

看了大家的回答,來談談我的體會和總結

初次見到泰勒公式首先想到的是那個利用微分近似計算函數值的方法,感覺泰勒公式是這個方法不斷地對近似後出現的更高階導數連用的結果,以求獲得更加精確的值。

但水準有限還有理解不夠,當時沒能通過這個想法推出泰勒公式,同時也覺得教材上對這個公式的推導很牽強,用多項式近似可以理解,但為什麼要用這種結構的多項式沒有講透,給人感覺這個公式是像考試時碰到不會的題那樣連蒙帶猜構造出來的。

我也一直在尋找答案。

看了劉永昊的回答很受啟發,其中從變化的角度闡釋了泰勒公式,而我之前一直把近似理解為數值上的,沒有意識到變化上的近似,所以一直沒有考慮使用積分作為推導的手段。

他的回答生動形象,下面是我結合先前連用的想法嘗試的推導,取得了成功,過程和劉的基本一致,主要來談體會,就當是對他的回答加以完善,使條理清晰一些。

劉永昊回答中,通過不斷的假設更高階導數是常數來對式子進行延伸,最後推得泰勒公式,但我覺得還可以說得更直接一些,與其求每一級假設的不變導數積分後與實際值的偏差,不如用高階導數積分表達低階導數,這樣解釋起來更加方便,也更突顯本質。

已知函數在x=x0的情況,f(x)與f(x0)相差一個Δy,只要確定了這個函數從x0到x的變化量,就可以確定f(x)的精確值。而這個變化量正是其一階導的在這個區間上的定積分,但一階導也是一個關於x函數,它也在變化,要知道它變化的累積,就要求函數一階導的導數(即二階導)的定積分,從而得出f(x)的變化的累積。可是二階導的情況和一階導一樣,也是變化的,每一階導數的確定都要依靠更高階的導數,對於要近似的大多數函數這都是一個無止的過程。

可以很明顯地感到這樣的推理比教材的推導自然許多(教材可能考慮到這個公式出現的位置還沒有建立積分理論),利用函數變化性質逼近的過程也一目瞭然,每一階導數的作用也恨清晰,那個「神秘」的更高階的無窮小就存在於更高階的未知的導數中,要通過已知點x0獲取的資訊來確定 。
……………………總……結…………………
1、要理解泰勒公式,就要明白函數的近似和相同是函數變化的近似和或相同,而不僅僅是數值的近似或相同,因為函數是表現變化的,變化的性質對於函數是至關重要的,不能忽略。(記得在北師大版數分中看到過這樣一句話,無窮小和無窮大不是一個數,而是一個過程)
2、教材中的描述其實直接表達了這個意思,但在推導中體現得不夠明顯,這是教材考慮到自身嚴謹性導致的。這種現象在各類教材中很普遍,理解不了覺得多此一舉時,可以從這個角度思考。


憶臻:

我們學習泰勒展開,本質上就是為了在某個點附近,用多項式函數取近似其他函數。可能有些童鞋就要問了,既然有一個函數了,為什麼還需要用多項式函數取進行近似,理由就是多項式函數具有非常多優良的性質。

比如說,多項式函數既好計算,也好求導,還好積分,等等一系列的優良性質。

好,本質已經說完了,下面給出P(x)在x=0處的泰勒展開表達式,然後再進行仔細分析。

我們下面分析怎麼由右邊的多項式函數在x=0處近似於左邊的函數。

現在假設左邊的函數就是cosx,假設現在只用二次多項式去近似cosx,如何確定前面的係數,也就是說如何在所有的 c_{0}+c_{1}x+c_{2}x^2 ,確定其中 c_{0},c_{1},c_{2} 的值。才能夠更好的近似cosx。

上面的文字表述用下面的slides總結:

既然要讓x=0處,cosx與 c_{0}+c_{1}x+c_{2}x^2 一致,那麼至少x=0代入到兩邊函數,值相同

可以推出 c_{0} =1,在圖上表示就是0處的兩者函數值相同,都為1,如下:

我們將 c_{0} =1定下來之後, c_{1} , c_{2} 不管怎麼變,都會滿足在x=0處,多項式的函數值為1,與cos0=1相等。那麼接下來 c_{1},c_{2} 怎麼處理呢?

既然泰勒展開的目的是在某處,兩者的函數近似相同,那麼我們不應該僅僅滿足於函數值相同,我們讓在x=0處的兩者一階導數相同,豈不更好!

這樣我們得到了一個新的等式條件,如下:

由上圖,我們將x=0代入,得出在x=0處的一階導數,就會得出 c_{1} =0,那麼這個時候,只剩下 c_{2} 未知了,

那麼我們很自然的就會想到是否還能夠找到一個限制條件,構建一個等式,將 c_{2} 也求出來,因為c0,c1就是這么求出來的。

對的,就是這個思路,我們讓兩者在x=0處的二階導數也相等,相當於再加強一個限制,你既然要近似,就要近似的越多越好~如下圖:

根據上面表達式很容易求出, c_{2} =-1/2

於是我們得出,在x=0處,近似cosx的二次多項式表達式為:

那麼到現在的解釋和一開始給的泰勒展開式子,是否有了一定的感覺呢?

我們其實在某處的泰勒展開,就是讓兩者的函數在該處的函數值相等,一階導相等,二階導相等,…n階導相等(因為你要近似,當然是越接近越好,所有的性質都相等最好)。如下圖:

上圖就是在x=0處的泰勒展開式,分母的階乘僅僅是為了抵消對次冪求導後的連乘。

如果不是在x=0處展開,比如在 a處展開,也是一樣的。如下圖:

那麼有了泰勒展開式這個工具之後,比如P(x)非常難計算,我要計算一個 P(a+\Delta x) 的值,我可以直接用右邊的泰勒展開,將 x=a+\Delta x 帶入到右邊的式子,就能夠估計得出。

以上內容均參考自3blue中國b站視訊講解,這是一個造福初學者幫助理解知識的好地方。

鏈接【官方雙語】微積分的本質 – 10 – 泰勒級數 強烈推薦!


Aorqu用戶:

余項好幾種比較難記,主要部分有啥難記的,就一多項式,求導把係數確定一下。


zero:

本質就是多項式逼近推廣到無窮級數逼近


zeagle:

exp(x)=1+x+xx/2+xxx/6+……

f(x)=exp(delta x d/dx)f(x0)

多元函數一樣適用,完美!


用公式編輯器重新寫下吧:

都知道指數函數吧

e^x=1+x+\frac{x^2}{2}+\frac{x^3}{2\cdot3}\cdots\

那麼泰勒公式就可以寫成

f(x)=e^{\partial}f(x_0)

其中 \partial=\Delta x\cdot\nabla , \Delta x=x-x_0


YorkYoung:

f(x+\Delta x)=e^{\Delta x\frac{d}{dx}}f(x)=(1+\Delta x\frac{d}{dx}+...+\frac{(\Delta x)^n}{n!}\frac{d^n}{dx^n}+...)f(x)

加段不嚴格的理解,對於很大的 n

f(x+\frac{\Delta x}{n})\approx f(x)+\frac{\Delta x}{n}f'(x)=(1+\frac{\Delta x}{n}\frac{d}{dx})f(x)

所以:

f(x+\Delta x)=\lim_{n\rightarrow+\infty}(1+\frac{\Delta x}{n}\frac{d}{dx})^nf(x)=e^{\Delta x\frac{d}{dx}}f(x)


Aorqu用戶:

這些都是用手機上的掃描軟體掃描的,書也有點硬只能用手壓住。可能有點辣眼睛,但知識是不永遠不會辣眼睛的。


書名:微積分之倚天寶劍

這書前面還有一本是屠龍寶刀,聽名字就知道這本書不正經。答主是高中生一個,主要拿來打發時間。


XRQ:

只有我一個人先看到泰勒然後激動最後發現並不是這樣嗎?


Aorqu用戶:

3blue1brown的這個視訊可以很好的解釋,非常的形象好理解。【官方雙語】微積分的本質 – 10 – 泰勒級數

發表迴響