泰勒级数
使用多项式拟合非多项式函数某一点附近的值
例
例如要用多项式 \(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}\]

浙公网安备 33010602011771号