微積分的歷史(五),發展之泰勒公式(上)

布魯克·泰勒(1685-1731),英國牛頓學派的代表人物,曾經加入判決牛頓和萊布尼茨微積分發明權的委員會。因為發明了泰勒公式而名垂青史。

先來看看泰勒公式是幹什麼?

1 泰勒公式是幹什麼的?

之前說過,切線是曲線的線性近似(下面 g(x) 是函數 f(x)=e^ x 在0點處的切線):

很明顯,切線的近似只能在切點附近起作用,能不能讓這種近似的作用範圍更大?有的,就是通過曲線來近似:

此處有互動內容,點擊此處前往操作。

上面其實就是泰勒公式公式在不同階展開的效果,展開的多項式越多近似效果越好。

所以泰勒公式簡單來說,就是用冪級數來近似原來的函數(為什麼要這麼做?因為冪級數研究起來更簡單)。

但是,為什麼冪級數可以起到這樣的作用?這要從牛頓插值法說起。

2 牛頓插值法

在17、18世紀,由於天文、航海的發展,數學一個很重要的問題就是插值。

什麼叫插值?插值是數學領域數值分析中的通過已知的離散數據求未知數據的過程或方法。

聽起來很抽象?沒關係,我們來看下具體的問題。

比如天文學家開普勒觀察火星運行之後記錄(下列數字純屬虛構):

  • 周一,火星距離太陽3萬公里

  • 周二,火星距離太陽6萬公里

  • 周三,霧霾,沒有觀測數據

  • 周四,火星距離太陽5萬公里

  • 周五,火星距離太陽7萬公里

要想知道周三的數據,我們先把這個數據變得數學一些:

  • x=1y=3

  • x=2y=6

  • x=4y=5

  • x=5y=7

x=3 時, y=?

這個題怎麼做?

2.1 插值

根據常識,火星一定是連續運動的,會形成一個運動軌跡。而我們現在已知的4個點,必定在這個運動軌跡上。

所以根據這4個點,我們隨便猜測一個運動軌跡:

軌跡求出來之後,那麼我們要求求 x=3 時, y=? 就好辦了:

同時穿過這4個點的曲線有無數多條,所以我們也有很多的插值方法。

2.2 線性插值

這是最簡單的插值:

這種近似太粗糙,我壓根不需要 x=1,x=5 的數據,我只需要 x=2,x=4 的數據,兩點決定一根直線嘛。

何況老司機開普勒也知道,火星不可能像撞球一樣折線運動,所以這種插值方法pass。

2.3 多項式插值

很早數學家就知道多項式可以形成各種曲線了,所以用多項式來插值也是很自然的想法。

2.3.1 線性方程

我們現在有4個已知數 x=1,y=3x=2,y=6x=4,y=5x=5,y=7 ,可以聯立方程組求出 f(x)=a+bx+cx^2+dx^3 這個三次多項式的參數 a,b,c,d

 begin{cases}  3=a+b+c+d 6=a+2b+4c+8d 5=a+4b+16c+64d 7=a+5b+25c+125d end{cases}

這樣求出的三次多項式(如果有唯一解的話)一定同時經過已知的四個點。

不過線性方程組在實際應用中,直接進行求解有兩個重大的問題:

  • 計算量大,對於行星觀測而言,幾萬、幾十萬觀測數據輕輕鬆鬆,就算有計算機幫忙,也會面臨效率問題

  • 新增加一個點的觀測數據,整個計算就要重新來過,想想就很悲傷

為了解決這兩個問題、尤其是後一個問題,我們有了牛頓插值法。

2.3.2 牛頓插值法

牛頓插值法全名是格雷戈里-牛頓公式,格雷戈里和牛頓分別給出了這個插值公式,主要牛頓太耀眼了,所以格雷戈里都被大家忘了。

有關牛頓插值法的內容發表在大名鼎鼎的《自然哲學的數學原理》的第三卷的引理五:

2.3.3 幾何意義

這裡叫做牛頓插值法的幾何意義不太貼切,因為若干點決定的多項式往往是唯一的(這個就是在線性代數裡面的問題了),所以從幾何上你看不出背後是用的牛頓插值法還是直接解線性方程組。

下面我是畫的圖像背後的演算法是牛頓插值法,僅供大家直觀感受下插值法的效果:

隨著已知的點越多,可能我們擬合出來的曲線越精確,可以自己動手試試:

此處有互動內容,點擊此處前往操作。

2.4 牛頓插值法的極限就是泰勒公式

讓我們把牛頓插值公式和泰勒公式的圖像做一個比較。

根據觀察,我們得到結論:

  • n點插值對應泰勒公式的n-1階展開

  • 插值點之間距離越近,插值曲線和泰勒公式越接近,所以我們可以說插值曲線的極限形式就是泰勒公式。

沒有跟上?沒關係,自己動手試試就知道了:

此處有互動內容,點擊此處前往操作。

2.5 小結

牛頓插值法的目的就是通過有限的點來近似原函數,當它在極限的情況下就是泰勒公式,所以泰勒公式可以近似原函數。

3 牛頓插值法與泰勒公式的代數推導

3.1 牛頓插值法

假設已知 n+1 個點相對多項式函數 f 的值為:(x_0,f(x_0)),(x_1,f(x_1)),(x_2,f(x_2)), cdots ,(x_ n,f(x_ n)) ,求此多項式函數 f

為了避免大家在後面的閱讀中迷失,我先把思路列出來一下(其實不複雜,主要是符號看著眼暈):

觀察 b_1,b_2 的特點,不斷重複上述過程,就可以得到牛頓插值法。

先從求滿足兩個點 (x_0,f(x_0)),(x_1,f(x_1)) 的函數 f_1(x) 說起:

假設 f_1(x)=f(x_0)+b_1(x-x_0)

f_1(x_1)=f(x_1)

begin{align*} & implies b_1=frac{f(x_1)-f(x_0)}{x_1-x_0}  & implies f_1(x)=f(x_0)+frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0) end{align*}

現在我們增加一個點, (x_0,f(x_0)),(x_1,f(x_1)),(x_2,f(x_2)) ,求滿足這三個點的函數 f_2(x)

假設 f_2(x)=f_1(x)+b_2(x-x_0)(x-x_1)

f_2(x_2)=f(x_2)

begin{align*} & implies b_2=& & frac{[frac{f(x_2) - f(x_1)}{x_2 - x_1}] - [frac{f(x_1) - f(x_0)}{x_1 - x_0}]}{x_2 - x_0}  & implies f_2(x) = & & f(x_0)+frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0)  & & & +frac{[frac{f(x_2) - f(x_1)}{x_2 - x_1}] - [frac{f(x_1) - f(x_0)}{x_1 - x_0}]}{x_2 - x_0}(x-x_0)(x-x_1) end{align*}

b_1,b_2 看起來蠻有特點的,我們把特點提煉一下。

一階均差:

f[x_ i,x_ j]=frac{f(x_ i)-f(x_ j)}{x_ i-x_ j},ine j

二階均差是一階均差的均差:

f[x_ i,x_ j,x_ k]=frac{f[i,j]-f[j,k]}{x_ i-x_ k},ine jne k

三階均差就是二階均差的均差,以此類推,我們得到牛頓插值法為:

begin{align*}  f(x) =&  f({x_0}) + f[{x_0},{x_1}](x - {x_0})  &  + f[{x_0},{x_1},{x_2}](x - {x_0})(x - {x_1}) +cdots  &  + f[{x_0},{x_1}, cdots ,{x_{n - 2}},{x_{n - 1}}](x - {x_0})(x - {x_1}) cdots (x - {x_{n - 2}})(x - {x_{n - 1}})  &  + f[{x_0},{x_1}, cdots ,{x_{n - 1}},{x_ n}](x - {x_0})(x - {x_1}) cdots (x - {x_{n - 1}})(x - {x_ n}) end{align*}

計算通過下面這個示意圖進行,就會很簡單:

新增一個點,只需要計算相關的差分就可以了:

3.2 泰勒公式

之前說過泰勒公式是牛頓插值法的極限形式,極限體現在不斷的減小插值點的距離,就可得到了泰勒公式。

首先,設 f(x) 是一個函數,它在 x_0,x_0+Delta x,x_0+2Delta x,x_0+3Delta x,cdots ,x_0+nDelta x 的值已知(和之前的相比,相當於每個點都是等距離間隔的,間隔 Delta x ),令:

Delta f(x_0)=f(x_0+Delta x)-f(x_0) ,也稱為一階差分,

Delta f(x_0+Delta x)=f(x_0+2Delta x)-f(x_0+Delta x)

Delta f(x_0+2Delta x)=f(x_0+3Delta x)-f(x_0+2Delta x)

進一步令:

Delta ^2 f(x_0)=Delta f(x_0+Delta x)-Delta f(x_0) ,也稱為二階差分(為一階差分的差分)

Delta ^3 f(x_0)=Delta ^2 f(x_0+Delta x)-Delta ^2 f(x_0) ,也稱為三階差分。

做了這些假設之後我們來看看之前提到的 b_1 會變成什麼樣子:

b_1=frac{f(x_1)-f(x_0)}{x_1-x_0}implies b1=frac{Delta f(x_0)}{Delta x}

f_1(x) 會變成:

f_1(x)=f(x_0)+frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0)implies f_1(x)=f(x_0)+frac{Delta f(x_0)}{Delta x}(x-x_0)

同樣的 f_2(x) 就變成了:

f_2(x)=f(x_0)+frac{Delta f(x_0)}{Delta x}(x-x_0)+frac{Delta ^2 f(x_0)}{(Delta x)^2}(x-x_0)(x-x_1)

泰勒斷言,當 Delta x=0 時(相當於把所有點都包含進來進行插值):

f_1(x)=f(x_0)+f(x_0)(x-x_0)

f_2(x)=f(x_0)+f(x_0)(x-x_0)+frac{f(x_0)}{2!}(x-x_0)^2Delta x=0 時有 x-x_1=x-x_0

以此類推,大名鼎鼎的泰勒公式就出現了:

f(x)=f(x_0)+f(x_0)(x-x_0)+frac{f(x_0)}{2!}(x-x_0)^2+cdots

好了,泰勒公式我們推導出來了,之後就讓我們來細細研究下泰勒公式。


推薦閱讀:

如何才能快速搞清楚一個數學概念/工具的來龍去脈?
信用卡十二期免息分期相當於優惠了多少?
中國人的數學教育,沒你想的那麼好
代數幾何是不是被神化了?
邏輯與代數、代數幾何的糾纏

TAG:数学 | 微积分 | 高等数学 |