泰勒公式
我们考察一个多项式:
\[p=p(x)=a_0+a_1x+a_2x^2+\dots+a_nx^n
\]
运用高中的求导法则,可以轻易的得到如下结果:
\[\begin{aligned}
p'&=a_1+2a_2x+3a_3x^2+\dots+na_nx^{n-1},\\
p''&=2a_2+3\cdot 2a_3x+\dots+n\cdot (n-1)a_nx^{n-2},\\
&\dots\\
p^{(n)}&=n\cdot(n-1)\cdot(n-2)\dots2\cdot a_n
\end{aligned}
\]
此时,我们令 \(x=0\) 隧有:
\[p^{(i)}(0)=a_i\cdot i!\\
\Rightarrow a_i=\frac{p^{(i)}(0)}{i!}
\]
带入原式,于是有:
\[p(x)=p(0)+\frac{p'(0)}{1!}x+\frac{p''(0)}{2!}x^2+\dots+\frac{p^{(n)}(0)}{n!}x^n
\]
我们再最前面,令 \(x=(x-x_0)\) 那么在这一步,我们得到的就是:
\[p(x)=p(x_0)+\frac{p'(x_0)}{1!}(x-x_0)+\frac{p''(x_0)}{2!}(x-x_0)^2+\dots+\frac{p^{(n)}(x_0)}{n!}(x-x_0)^n
\]
这就是我们熟知的泰勒公式。
任意函数的展开式
若函数 \(f(x)\) 存在 \(x_0\) 再区间 \([a,b]\) 上 \(n\) 阶可导,于是我们就可以做出多项式
\[p_n(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+\dots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n
\]
但此时,\(f(x)=p_n(x)\) 就不一定成立,我们求得的 \(p(x)\) 只能看作是函数 \(f(x)\) 的近似函数。
我们把它们的误差记作 \(r_n(x)=f(x)-p_n(x)\)。
我们发现当 \(x\rightarrow x_0\) 时有 \(r_n(x)=o((x-x_0)^n)\)。
证明
考虑它的等价命题
\[r_n(x_0)=r_n'(x_0)=\dots=r_n^{(m)}(x_0)=0
\]
这里采用数学归纳法证明。
当 \(m=0,1\) 时,显然有
\[r_n(x_0)=r_n'(x_0)=0
\]
当 \(1\le m=k\) 时成立,若要推出 \(m=k+1\) 时也成立,即
\[r_n(x_0)=r_n'(x_0)=\dots=r_n^{(k+1)}(x_0)=0
\]
则
\[r_n(x)=o((x-x_0)^{k+1})
\]
于是有
\[r_n'(x)=o((x-x_0)^k)
\]
但是由拉格朗日中值定理可得,必然 \(\exists x_t\in[x,x_0]\),使得
\[r_n'(x_t)(x-x_0)=r_n(x)-r_n(x_0)\\
\Rightarrow r_n'(x_t)=o((x-x_0)^k)\\
\]
那么我们就十分轻易的得到了
\[f(x)=\sum^n_{i=0}{\frac{f^{(i)}(x_0)}{i!}(x-x_0)^i}+o((x-x_0)^n)
\]
这被称为含 Peano 余项的泰勒公式。
接着,是要证明它的唯一性。
唯一性的证明
假设我们同时有
\[f(x)=\sum^n_{i=0}{A_i(x-x_0)^i}+o((x-x_0)^n)
\]
和
\[f(x)=\sum^n_{i=0}{A'_i(x-x_0)^i}+o((x-x_0)^n)
\]
我们让 \(x\to x_0\) 则可以得到 \(A_0=A'_0\),做差相减,然后除以 \((x-x_0)\),就可以得到 \(A_1=A'_1\),继续做下去,你就得到了
\[A_i=A'_i(\forall i\in[1,n]\cap\mathbb{N})
\]
那就唯一啦!
我们把 \(x_0=0\) 带入,就得到了一个更为简洁的式子,叫麦克劳林展开,就这就可以取个新名字?!挺讽刺的其实。
下面列出一些基本的初等函数的麦克劳林展开。
\[\begin{aligned}
e^x&=\sum_{i=0}^n\frac{x^i}{i!}+o(x^n)\\
\sin(x)&=\sum_{i=0}^n(-1)^{i+1}\frac{x^{2i-1}}{(2i-1)!}+o(x^{2n})\\
\cos(x)&=\sum_{i=0}^n(-1)^i\frac{x^{2i}}{(2i)!}+o(x^{2n+1})\\
\end{aligned}
\]
泰勒级数
在前面的泰勒公式中,注意到 \(n\) 有任意的取值,那自然有让它趋于无穷的想法。
那么泰勒级数指的就是 \(n\to\infty\) 的泰勒公式啦~
正式的说,泰勒级数就是如下形式:
\[f(x)=\sum^\infty_{i=0}{A_i(x-x_0)^i}
\]
其中
\[A_n=\frac{f^{(i)}(x_0)}{i!}
\]
被称为泰勒系数。
虽然这是看似十分简单的事情,但这会产生许多问题。最直接的,就是那个级数收敛吗?他还会等于原函数吗?这是一个十分棘手的问题。
当 \(f(x)\) 能等于那个求和式当且仅当,余式 \(r_n(x)\) 满足
\[\lim_{n\to\infty}r_n(x)=0
\]
证明显然。
但是想要证明这个等式成立,我们可能要研究余式的其他形式。下面,我以 \(x_0=0\) 的情况进行讨论,其他情况请读者自行探究。
- 拉格朗日形式:\(r_n(x)=\frac{f^{(n+1)}(\theta x)}{(n+1)!}x^{n+1}\)
- 柯西形式:\(r_n(x)=\frac{f^{(n+1)}(\theta x)}{n!}(1-\theta)x^{n+1}\)
其中 \(\theta\in[0,1]\)。
证明?拉格朗日形式使用拉格朗日中值定理证明,柯西形式使用柯西中值定理证明。
这里先给出一些函数具体的的泰勒展开形式。
指数,基本三角函数的泰勒展开
若函数 \(f(x)\) 在区间 \([0,H]\) 或 \([-H,0](H>0)\) 上具有各阶导数,并且当 \(x\) 在所给的区间变化时,所有的这些导数的绝对值被相同的一个数界定:
\[|f^{(n)}(x)|\le L
\]
则该函数可以泰勒展开。
证明
我们取余项为拉格朗日形式,那么就容易得到:
\[|r_n(x)|=\frac{|f^{(n+1)}(\theta x)|}{(n+1)!}|x|^{n+1}\le L\cdot\frac{H^{n+1}}{(n+1)!}
\]
我们证一个更强的结论,现将将两边求和,就可以得到:
\[\sum_{n=0}^\infty|r_n(x)|\le L\cdot\sum_{n=0}^\infty \frac{H^{n+1}}{(n+1)!}
\]
右式显然是收敛的,既可以推出 \(r_n(x)\to 0\) 啦!
当 \(f(x)=e^x,\sin(x),\cos(x)\) 时显然是满的,那么我们可以写出他们的展开形式:
\[\begin{aligned}
e^x&=\sum_{i=0}^\infty\frac{x^i}{i!}\\
\sin(x)&=\sum_{i=1}^\infty(-1)^{i+1}\frac{x^{2i-1}}{(2i-1)!}\\
\cos(x)&=\sum_{i=0}^\infty(-1)^i\frac{x^{2i}}{(2i)!}\\
\arctan(x)&=\sum_{i=1}^\infty(-1)^{i+1}\frac{x^{2i-1}}{2i-1}
\end{aligned}
\]
在这里,我们对于反正切的展开式,我们带入 \(x=1\),就可以得到:
\[\frac\pi4=1-\frac13+\frac15-\cdots
\]
就是经典的莱布尼茨公式。
对数函数
考虑将 \(f(x)=\ln(1+x)\) 展开,这里是我们展开 \(1+x\) 是因为这样展开可以方便计算。
先写出它的泰勒级数
\[\ln(x)=\sum_{x=1}^\infty(-1)^{n+1}\frac{x^n}{n}
\]
我们使用拉格朗日形式的余项来考虑它的收敛性。
\[\lim_{n\to\infty}r_n(x)=\frac{(-1)^n}{n+1}\cdot(\frac x{\theta x+1})^{n+1}=0
\]
但很可惜,上述式子只有在 \(x\in(-1,1]\) 时才成立,即他的展开式收敛。
斯特林公式
泰勒级数的大部分应用时估值,这里给一个估值的经典例子。
考察前面得到的 \(\ln(1+x)\) 的泰勒展开,我们可以轻易地得到
\[\ln\frac{1+x}{1-x}=\ln(1+x)-\ln(1+(-x))=2x\cdot(1+\frac{x^2}{3}+\frac{x^4}5+\dots)
\]
我们令 \(x=\frac1{2n+1}\),便可以得到
\[\ln\frac{n+1}{n}=\frac2{2n+1}\cdot[1+\frac13\cdot\frac1{(2n+1)^2}+\dots]
\]
移项,可得
\[\begin{aligned}
1<(n+\frac12)\ln(1+\frac1n)&=1+\frac13\cdot\frac1{(2n+1)^2}+\dots\\
&<1+\frac13\cdot[\frac1{(2n+1)^2}+\frac1{(2n+1)^4}+\dots]\\
&=1+\frac1{12n(n+1)}
\end{aligned}
\]
两边同时去自然指数,得:
\[1<\frac{(1+\frac1n)^{n+\frac12}}{e}<e^\frac1{12n(n+1)}
\]
这里引入一个天才的想法,设 \(a_n=\frac{n!e^n}{n^{n+\frac12}}\),那么可以得到:
\[1<\frac{a_n}{a_{n+1}}=\frac{(1+\frac1n)^{n+\frac12}}{e}<e^\frac1{12n(n+1)}=\frac{e^\frac1{12n}}{e^\frac1{12(n+1)}}\\
\Rightarrow a_n e^{-\frac1{12n}}<a_{n+1}e^{-\frac1{12(n+1)}}
\]
注意到我们显然是 \(\exists a\) 使得 \(a_n e^{-\frac1{12n}}<a<a_n\) 成立的,我们令
\[a=a_ne^{-\frac\theta{12n}}
\]
带入 \(a_n\) 的定义,于是可以得到:
\[n! =a\sqrt n(\frac ne)^n\cdot e^\frac\theta{12n}
\]
现在我们考虑如何求解 \(a\)。
注意到
\[\frac\pi2=\lim_{n\to\infty}\frac1{2n+1}\cdot\left[\frac{(2n)!!}{(2n-1)!!}\right]^2
\]
我们对后面这个双阶乘进行变形
\[\frac{(2n)!!}{(2n-1)!!}=\frac{2^{2n}(n!)^2}{(2n)!}
\]
将 \(n!,(2n)!\) 换成我们之前推导出来的结果,得:
\[\frac{(2n)!!}{(2n-1)!!}=a\sqrt\frac n2\cdot e^\frac{4\theta-\theta'}{24n}
\]
带回原来的极限中,得到:
\[\frac\pi2=\lim_{n\to\infty}\frac1{2n+1}a^2\cdot\frac n2\cdot e^\frac{4\theta-\theta'}{12n}
=\frac{a^2}4\\
\Rightarrow a=\sqrt{2\pi}
\]
带回最开始的式子,于是我们就得到了斯特林公式:
\[n! =\sqrt{2\pi n}\cdot(\frac ne)^n\cdot e^\frac\theta{12n}
\]
这可以在 \(n\) 特别大时进行估值。