泰勒级数

使用多项式拟合非多项式函数某一点附近的值

例如要用多项式 \(a_0+a_1x+a_2x^2\) 拟合 \(\cos(x)\)\(x=0\) 附近的值

首先在 \(x=0\) 时两者值相等,因此 \(\cos(0)=(a_0+a_1 x+a_2 x^2)[0]\),可得 \(a_0=1\)

其次 \(x=0\) 时两者导数相等,因此 \(\cos^{'}(0)=(a_0+a_1 x+a_2 x^2)^{'}[0]\),可得 \(a_1=0\)

然后 \(x=0\) 时两者二阶导数相等,因此 \(\cos^{''}(0)=(a_0+a_1 x+a_2 x^2)^{''}[0]\),可得 \(a_2=-\frac12\)

因此 \(\cos(x)\)\(x=0\) 附近的一个拟合为 \(1-\frac12x^2\)

\(x=\frac\pi4\) 时,\(\cos(x)=0.707106\),而 \(1-\frac12x^2=0.691574\),误差不超过 \(2.5\%\)

公式

要拟合 \(f(x)\)\(x=a\) 附近的值,更一般的公式为:

\[f(x)=\sum_{i=0}^n \frac{f^{(i)}(a)(x-a)^i}{i!}+O(x^{n+1}) \]

其中 \(O(x^{n+1})\) 为误差项,阶乘是多次求导带来的系数

\(x=0\) 时又称之为麦克劳林展开

各项系数理解

一次项是令 \(x=a\) 时两函数相等

二次项是令 \(x=a\) 时两函数斜率相等(只考虑低两项,得到的为 \(f(x)\)\(a\) 处的切线)

\[\begin{aligned} f(x)\approx &f(a)+\frac12(f^{'}(a)+f^{'}(x))(x-a)\\ =&f(a)+f^{'}(a)(x-a)+\frac12(f^{'}(x)-f^{'}(a))(x-a)\\ =&f(a)+f^{'}(a)(x-a)+\frac12(f^{'}(x)-f^{'}(a))(x-a)\\ =&f(a)+f^{'}(a)(x-a)+\frac12f^{''}(a)(x-a)(x-a)\\ =&f(a)+f^{'}(a)(x-a)+\frac12f^{''}(a)(x-a)^2\\ \end{aligned}\]

从中可以看出前三项的对应关系

常见函数的展开

\[\begin{align} \exp(x)=&\sum_{i=0}^n\frac1{i!}x^i+O(x^{n+1})\\ \cos(x)=&\sum_{i=0}^n\frac{(-1)^i}{(2i)!}x^{2i}+O(x^{2n+2})\\ \sin(x)=&\sum_{i=0}^n\frac{(-1)^i}{(2i+1)!}x^{2i+1}+O(x^{2n+3})\\ \cosh(x)=&\sum_{i=0}^n\frac{1}{(2i)!}x^{2i}+O(x^{2n+2})\\ \sinh(x)=&\sum_{i=0}^n\frac{1}{(2i+1)!}x^{2i+1}+O(x^{2n+3})\\ \ln(x+1)=&\sum_{i=0}^n\frac{(-1)^{i+1}}{i}x^i+O(x^{n+1})\text{($x>1$ 时发散)}\,\\ (x+1)^\alpha=&\sum_{i=0}^n\frac{\alpha!}{i!(\alpha-i)!}x^i+O(x^{n+1})\;(\alpha\in \mathbb R)\; \end{align}\]

参考

  1. 微积分的本质 - 10 - 泰勒级数
  2. 泰勒公式 百度百科
posted @ 2024-12-04 12:09  Hstry  阅读(32)  评论(0)    收藏  举报