泰勒級數

泰勒公式(Taylor Series)能把大多數的函數展開成冪級數,即html

$f(x) = \displaystyle{ \sum_{n=0}^{\infty}A_n x^n }$函數

式子當中只有加法與乘法,容易求導,便於理解與計算。這種特性使得泰勒公式在數學推導(如:微分方程以冪級數做爲解),數值逼近(如:求e、開方),函數逼近(在計算機某些計算優化時,能夠把某些繁瑣的式子進行泰勒展開,僅保留加法與乘法運算),複分析等多種應用中有普遍應用。優化

 

泰勒公式定義

條件:有實函數$f$,$f$在閉區間$[a,b]$是連續的,$f$在開區間$(a,b)$是$n+1$階可微。lua

則能夠對函數$f$進行泰勒展開:orm

$\begin{align*}
f(x)
&= \frac{1}{0!}f(x_0) \\
&+\frac{1}{1!}(x-x_0)f'(x_0) \\
&+\frac{1}{2!}(x-x_0)^2f''(x_0) \\
&+ \cdot \cdot \cdot \\
&+\frac{1}{n!}(x-x_0)^nf^{(n)}(x_0) \\
&+ R_n
\end{align*}$htm

其中$x_0$爲區間$(a,b)$中的某一點, $x_0 \in (a,b)$,變量$x$也在區間$(a,b)$內。blog

泰勒展開獲得的是一個多項式,能夠寫成ip

$f(x) = \displaystyle{ \sum_{k=0}^{n}\frac{(x-x_0)^k}{k!}f^{(k)}(x) + R_n }$rem

其中$R_n$爲泰勒公式的餘項Remainder)。該餘項能夠寫成如下形式get

$R_n = \displaystyle{ \int_{x_0}^x \frac{f^{(n+1)}(t)}{n!}(x-t)^ndt }$

餘項$R_n$還能夠進一步表示成:存在一點$x_0<\xi<x$使得下面的式子成立

$R_n = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1} $

 

 

泰勒公式推導

泰勒公式推導的起點爲微積分基本定理(Fundamental Theorem of Calculus):

$\displaystyle{ \int_{x_0}^x f'(t)dt } = f(x) – f(x_0)$

所以有:

$\displaystyle{ f(x) = f(x_0) + \int_{x_0}^x f'(t)dt }$

而後用分部積分法(Integration by parts)對積分部分進行分解:

$\begin{align*}
f(x)
&=\color{red}{f(x_0) + \int_{x_0}^x f'(t)dt} \\
&=f(x_0) + \left. tf'(t)\right|_{x_0}^x - \int_{x_0}^x tf''(t)dt \qquad udv = uv - vdu \\
&=f(x_0) + xf'(x) – x_0f'(x_0) - \int_{x_0}^x tf''(t)dt \\
&=f(x_0) + x\left( f'(x_0) + \int_{x_0}^x f''(t)dt \right ) – x_0f'(x_0) - \int_{x_0}^x tf''(t)dt \\
&\qquad Fundamental \ Theorem \ of \ Calculus\\
&=\color{red}{f(x_0) + (x-x_0)f'(x_0) + \int_{x_0}^x (x-t)f''(t)dt} \\
&=f(x_0) + (x-x_0)f'(x_0) + \left.(xt - \frac{1}{2}t^2)f''(t)\right|_{x_0}^x - \int_{x_0}^x(xt - \frac{1}{2}t^2) f'''(t)dt \qquad udv = uv - vdu \\
&=f(x_0) + (x-x_0)f'(x_0) + \frac{x^2}{2}f''(x) + \frac{-2x_0x + {x_0}^2}{2}f''(x_0) - \int_{x_0}^x\frac{2xt-t^2}{2} f'''(t)dt \\
&=f(x_0) + (x-x_0)f'(x_0) + \frac{x^2}{2}\left( f''(x_0) + \int_{x_0}^x f'''(t)dt \right ) + \frac{-2x_0x + {x_0}^2}{2}f''(x_0) \\
&\quad+ \int_{x_0}^x\frac{-2xt+t^2}{2} f'''(t)dt \quad Fundamental \ Theorem \ of \ Calculus\\
&=\color{red}{f(x_0) + (x-x_0)f'(x_0) + \frac{(x-x_0)^2}{2}f''(x_0) + \int_{x_0}^x\frac{(x-t)^2}{2} f'''(t)dt}
\end{align*}$

運用微積分基本定理以及分部積分法繼續推導下去能夠獲得:

$\begin{align*}
f(x)
&= \frac{1}{0!}f(x_0) \\
&+\frac{1}{1!}(x-x_0)f'(x_0) \\
&+\frac{1}{2!}(x-x_0)^2f''(x_0) \\
&+\cdot \cdot \cdot \\
&+\frac{1}{n!}(x-x_0)^nf^{(n)}(x_0) \\
&+\int_{x_0}^x \frac{f^{(n+1)}(t)}{n!}(x-t)^ndt \qquad *
\end{align*}$

由此獲得餘項

$R_n = \int_{x_0}^x \frac{f^{(n+1)}(t)}{n!}(x-t)^ndt $

 

 

泰勒公式餘項推導

泰勒公式的餘項能寫成多種形式,咱們這裏只對它的拉格朗日(Lagrange)形式進行推導

拉格朗日餘項爲:存在一點$x_0<\xi<x$使得下面的式子成立

$R_n = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1} $

 

推導過程以下:

$\begin{align*}
F(x)
&=  \frac{1}{0!}f(x_0) \\
&+ \frac{1}{1!}(x-x_0)f'(x_0) \\
&+ \frac{1}{2!}(x-x_0)^2f''(x_0) \\
&+ \cdot\cdot\cdot \\
&+ \frac{1}{n!}(x-x_0)^nf^n(x_0)
\end{align*}$

那麼就有

$R_n(x) = f(x) – F(x)$

 

因爲$f(x)$與$F(x)$在區間$(a,b)$上都有$n+1$階導,所以$R_n(x)$在此區間上也有$n+1$階導。

又由於$R_n(x) = \int_{x_0}^x \frac{f^{(n+1)}(t)}{n!}(x-t)^ndt $,所以有

$R_n(x_0) = R'_n(x_0)=R''_n(x_0) = … = R_n^{(n)}(x_0) = R_n^{(n+1)}(x_0) = 0$

 

對函數$R_n(x)$以及函數$G(x) = (x-x_0)^{n+1}$應用柯西中值定理(Cauchy Mean Value Theorem),獲得:

存在一點$\xi_1 \in (x_0,x)$,使得下面的等式成立

$\frac{R'_n(\xi_1)}{G'(\xi_1)} = \frac{R_n(x) – R_n(x_0)}{G(x) – G(x_0)} $

等號左邊展開後爲$\frac{R'_n(\xi_1)}{(n+1)(\xi_1-x_0)^n}$,等號右邊爲$\frac{R_n(x)}{(x-x_0)^{n+1}}$,即

$\frac{R'_n(\xi_1)}{(n+1)(\xi_1 – x_0)^n} = \frac{R_n(x)}{(x-x_0)^{n+1}}$

 

如今注意等號左邊,把左邊看成對$R'_n(x)$與$(n+1)(x-x_0)^n$在區間$(x_0,\xi_1)$應用柯西中值定理,獲得

存在一點$\xi_2 \in (x_0,\xi_1)$,使得下面的等式成立

$\frac{R'_n(\xi_1)}{(n+1)(\xi_1-x_0)^n} = \frac{R'_n(\xi_1)-R'_n(x_0)}{(n+1)(\xi_1-x_0)^n-0}=\frac{R''_n(\xi_2)}{n(n+1)(\xi_2-x_0)^{n-1}}$

 

按照這種方法繼續推導下去,通過$n+1$次後獲得

$\frac{R_n(x)}{(x-x_0)^{n+1}} = \frac{R^{n+1}_n(\xi)}{(n+1)!}  \qquad (\ \xi\in (x_0,\xi_n)\ ,\ thus \xi \in (x_0,x)\ )$

另外,能夠看到$R_n^{(n+1)}(x)=\left( f(x)-F(x) \right)^{(n+1)}=f^{(n+1)}(x)$,代入上面的式子獲得

$R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1} \qquad \xi \in (x_0,x)$

 

 

泰勒級數(Taylor Series)

按照上述泰勒公式,若是$f(x)$在$x_0$處無限可導,那麼泰勒公式則變爲

$f(x) = \displaystyle{\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n + R_{\infty} }$

其中冪級數(Power Series)

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

稱爲$f(x)$在點$x_0$處的泰勒級數。

 

 

泰勒級數的收斂性分析

泰勒級數在實數域上的收斂性分析

若是函數$f(x)$在包含$x_0$的區間$(a,b)$上無限可導,那麼對於全部$x \in (a,b)$,$f(x)$能展開成泰勒級數的條件就是餘項在無窮處趨於0,即

$\displaystyle{f(x) = \sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n \quad \Leftrightarrow \quad \lim_{n\to\infty}R_n(x) = 0 }$

更進一步分析,在泰勒公式時有餘項

$R_n(x) = \frac{f^{(n+1)}(\xi_{n+1})}{(n+1)!}(x-x_0)^{n+1} \qquad , \qquad let \ \xi_{n+1} = \xi$

在其前一步,有

$R_{n-1}(x) = \frac{f^{(n)}(\xi_n)}{(n)!}(x-x_0)^{n}$

二者相比,得

$\frac{R_{n}(x)}{R_{n-1}(x)} = \frac{f^{(n+1)} (\xi_{n+1})(x-x_0)}{f^{(n)}(\xi_{n})(n+1) }$

只有$\left| \frac{R_n(x)}{R_{n-1}(x)} \right| < 1$時,才代表餘項在變小,即須要

$\left| \frac{f^{(n+1)} (\xi_{n+1})(x-x_0)}{f^{(n)}(\xi_{n})(n+1) } \right| < 1$

$|x-x_0| < \left| \frac{ f^{(n)}(\xi_{n})(n+1) }{ f^{(n+1)}(\xi_{n+1}) } \right|$

不然代表餘項在變大。

 

對於泰勒級數來講,若是在$n$趨向於$\infty$時,餘項一直在變大,那麼代表泰勒級數會愈來愈遠離原來的函數。

 

泰勒級數近似值選取

從上述不等式還能夠看出,在求某個點$x=x_1$的近似值時,$x_1$與$x_0$的距離越近,則餘項越小,代表偏差越小。

也能夠參考某乎上的一篇不錯的文章。該文章中提到的複數域在下一節有詳細推導。

 

泰勒級數在複數域上的收斂性分析

如在實數域收斂分析的時候描述,函數可以展開成泰勒函數的條件是餘項在$\infty$處能夠收斂。實數域畢竟也只是複數域的一部分,從複數域來分析能幫助咱們瞭解泰勒級數的全貌。

 

複數平面的泰勒級數(Taylor Series in Complex Plane)

複數域的泰勒級數的結構跟實數的泰勒級數同樣,只是把函數從實數往復數轉變,即

$\displaystyle{ f(z) =\sum_{n=0}^{\infty}\frac{f^{(n)}(z_0)}{n!}(x-x_0)^n}$

其中函數$f$爲從複數到複數的映射$f: \mathbb{C} \to \mathbb{C}$,常數爲複數$z_0 \in \mathbb{C}$,變量爲複數$z \in \mathbb{C}$。該式子能夠簡化爲:

$\displaystyle{ f(z) =  \sum_{n=0}^{\infty}c_n(z-a)^n } \qquad,\qquad z,a,c_n\in\mathbb{C}$

 

收斂圓(Disk of Convergence)

從定義上來講,在複數平面上,若是泰勒級數在某一點$z'$趨於$\infty$,那麼就能夠說泰勒級數$f(z')$是發散(diverge)的,不然爲收斂(converge)。

若是泰勒級數在某有限點處發散的話,那麼該泰勒級數的收斂域成一個圓盤(disk)狀,稱爲收斂圓(Disk of Convergence)。該收斂圓的邊界與圓心$a$的距離稱爲收斂半徑(Radius of Convergence)$r$。這是泰勒級數的一個特性,下面咱們將證實泰勒級數具備這種特性。

 

證實:

假設泰勒級數在有限點$z$處收斂,即有

$\displaystyle{ \sum_{n=0}^{\infty}c_n(z-a)^n } < \infty \qquad , \qquad for \ |z|<\infty$

泰勒級數爲無限項求和,所以咱們能經過根值判別法(Root test)來分析泰勒級數的收斂性。把$c_n(z-a)^n $看做一個總體,即

$A_n = c_n(z-a)^n $

那麼泰勒級數變成$\displaystyle{ \sum_{n=0}^{\infty}A_n  }$,根據Root test,有

$\displaystyle{ C = \limsup_{n\to \infty} \sqrt[n]{ |A_n| } = \limsup_{n\to \infty} \sqrt[n]{ |c_n(z-a)^n| } = \limsup_{n\to \infty} \sqrt[n]{ |c_n| }|z-a| }$

limsup表示的是上極限,$\displaystyle{ \limsup_{n\to\infty} }$表示的是當$n$在無窮遠處的上極限。Root test代表了當$C<1$時,泰勒級數收斂;當$C>1$時,泰勒級數發散;當$C=1$時,泰勒級數可能收斂或者發散。

 

咱們上面假設泰勒級數在點$z$處收斂,即

$\displaystyle{ C = \limsup_{n\to \infty} \sqrt[n]{ |c_n| }|z-a| < 1 }$

$\displaystyle{ |z - a| < \frac{1}{\limsup_{n\to\infty}\sqrt[n]{c_n} } }$

上面的式子意味着,要使得泰勒級數收斂,$z$與點$a$的距離必須小於

$\displaystyle{r = \frac{1}{\limsup_{n\to\infty}\sqrt[n]{c_n} } }$

對於泰勒級數來講,$a$爲選定的無限可導的一點,能夠看做圓心,那麼收斂域就是一個圓盤,圓盤的半徑爲$r$。當$r = 1/0$時,意味着半徑無窮大,即泰勒級數在整個複數平面上都收斂。

 

收斂半徑(Radius of Convergence)求解

在前面證實的時候咱們算出了泰勒級數的收斂半徑爲

$\displaystyle{r = \frac{1}{\limsup_{n\to\infty}\sqrt[n]{c_n} } }$

這看起來不太好計算,下面有另一種計算方式:

根據比式判別法(Ratio test),只有當下面的式子成立時,泰勒級數收斂

$\displaystyle{ \lim_{n\to\infty}\frac{|A_{n+1}|}{|A_n|} = \lim_{n\to\infty}\frac{|c_{n+1}(z-a)^{n+1}|}{|c_n(z-a)^n|} = \lim_{n\to\infty}\frac{|c_{n+1}(z-a)|}{c_n} < 1 }$

所以有

$r = \displaystyle{ \lim_{n\to\infty}\left| \frac{c_n}{c_{n+1}} \right| = \lim_{n\to\infty}\left| \frac{f^{(n)}(a)(n+1)}{f^{(n+1)}(a)} \right| }$

 

 

泰勒級數與原函數的關係

從複數平面上看,泰勒級數是從選定的某點$a$起,經過$n\to\infty$不斷擬合原函數$f$的一種方式,這種擬合的展開是圓心$a$對稱的。所以,若是原函數$f$有奇點(singularity:如$\frac{1}{0}$),而且距離$a$最近的奇點爲$b$,那麼泰勒級數爲了擬合原函數,會在$b$點處趨於$\infty$,即在$b$處發散,又因爲泰勒級數自身的收斂圓特性,使得泰勒級數沒法在收斂圓之外擬合原函數,收斂半徑爲$|b-a|$。

這也意味着,若是泰勒級數的收斂半徑無窮大,那麼泰勒級數就能在複數平面上徹底擬合原函數,所以泰勒級數等於原函數。

 

例:

$f(x) = \frac{1}{x}$,選取$a = 4$爲無限求導點。當泰勒級數取前50階時,能夠看到:

在實數域,泰勒級數會在$(0,8)$收斂

TaylorSeries_Real

在複數平面,泰勒級數會以$a = 4+0i$爲圓心,收斂半徑爲$r=4$

TaylorSeries_Complex

 

Mathematica Script

(* Real Domain *)
a = 4;
g[x_] := 1/x;
h[x_, n_] := Normal[Series[g[x], {x, a, n}]];
Manipulate[
 Plot[{g[x], Evaluate[h[x, n]]}, {x, -20, 20}, PlotRange -> 4, 
  PlotLegends -> "Expressions"], {n, 1, 60, 1}]

(* Complex Plane *)
ComplexFnPlot[f_, range_, options___] := 
  Block[{rangerealvar, rangeimagvar, g}, 
   g[r_, i_] := (f /. range[[1]] :> r + I i);
   Plot3D[
    Abs[g[rangerealvar, rangeimagvar]], {rangerealvar, Re[range[[2]]],
      Re[range[[3]]]}, {rangeimagvar, Im[range[[2]]], Im[range[[3]]]},
     options, 
    ColorFunction -> (Hue[Mod[Arg[g[#1, #2]]/(2*Pi) + 1, 1]] &), 
    ColorFunctionScaling -> False]];
ComplexFnPlot[h[z, 50], {z, -10 - 10 I, 10 + 10 I}, 
 PlotRange -> {-4, 500}]
相關文章
相關標籤/搜索