LeoMath

微积分基础

Taylor 展开

用多项式逼近函数,并控制误差。

约 8 分钟

从一个问题开始

问题

计算器只会加、减、乘、除。它怎么算出 sin⁡(0.3)\sin(0.3) 或 e0.3e^{0.3}?

我们需要一种方法,用只含加减乘除的表达式(多项式)逼近任意光滑函数,而且必须能说清楚误差有多大,否则近似值毫无意义。

观察

计算器怎么算 sin⁡(0.3)\sin(0.3)?它只会加减乘除。但注意在 00 附近: sin⁡x≈x,sin⁡x≈x−x36,sin⁡x≈x−x36+x5120.\sin x\approx x,\qquad\sin x\approx x-\frac{x^3}6,\qquad\sin x\approx x-\frac{x^3}6+\frac{x^5}{120}. x=0.3x=0.3 时这三个近似分别是 0.30.3、0.29550.2955、0.2955200.295520,而真值是 0.295520…0.295520\ldots。多项式越长,逼近得越好。

猜想

如果一个多项式 pp 要在 x0x_0 附近"长得像" ff,最自然的要求是它在 x0x_0 处的值、斜率、弯曲程度……都和 ff 相同:p(k)(x0)=f(k)(x0)p^{(k)}(x_0)=f^{(k)}(x_0),k=0,1,…,nk=0,1,\dots,n。这样的多项式是唯一的,而且误差应该随 nn 增大而缩小。

交互实验Taylor 逼近
函数
P3(x)=∑k=03f(k)(a)k!(x−a)kP_{3}(x)=\sum_{k=0}^{3}\frac{f^{(k)}(a)}{k!}(x-a)^{k}窗口 [a−2, a+2] 内最大误差 0.2426

定义

定义 5.1Taylor 多项式

设 ff 在 x0x_0 处有 nn 阶导数。 Pn(x)=∑k=0nf(k)(x0)k!(x−x0)kP_n(x)=\sum_{k=0}^n\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k 称为 ff 在 x0x_0 处的 nn 阶 Taylor 多项式。Rn(x)=f(x)−Pn(x)R_n(x)=f(x)-P_n(x) 称为余项。

系数为什么是 f(k)(x0)k!\dfrac{f^{(k)}(x_0)}{k!}?对 PnP_n 求 kk 阶导再代入 x=x0x=x_0:(x−x0)j(x-x_0)^j 的 kk 阶导在 x0x_0 处只有 j=kj=k 时非零,等于 k!k!。所以 Pn(k)(x0)=f(k)(x0)P_n^{(k)}(x_0)=f^{(k)}(x_0),正是猜想中的要求。

定理与证明

多项式好算,但如果不知道误差多大,近似就没有意义。下面的定理给出误差的精确形式。

定理 5.1Taylor 定理(Lagrange 余项)

设 ff 在含 x0,xx_0,x 的区间上有 n+1n+1 阶导数。则存在介于 x0x_0 与 xx 之间的 ξ\xi,使 Rn(x)=f(n+1)(ξ)(n+1)!(x−x0)n+1.R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}.

证明

固定 x≠x0x\ne x_0,令 MM 满足 f(x)−Pn(x)=M(x−x0)n+1f(x)-P_n(x)=M(x-x_0)^{n+1}。定义 g(t)=f(t)−Pn(t)−M(t−x0)n+1.g(t)=f(t)-P_n(t)-M(t-x_0)^{n+1}. 则 g(x0)=g′(x0)=⋯=g(n)(x0)=0g(x_0)=g'(x_0)=\cdots=g^{(n)}(x_0)=0(因 PnP_n 与 ff 在 x0x_0 处前 nn 阶导数相同,而 (t−x0)n+1(t-x_0)^{n+1} 的前 nn 阶导在 x0x_0 为零),且 g(x)=0g(x)=0。

由 Rolle 定理,gg 在 x0,xx_0,x 间有零点 ξ1\xi_1,故 g′g' 在 x0,ξ1x_0,\xi_1 处为零,又有零点 ξ2\xi_2;如此 n+1n+1 次,得 g(n+1)(ξn+1)=0g^{(n+1)}(\xi_{n+1})=0。而 Pn(n+1)≡0P_n^{(n+1)}\equiv0,((t−x0)n+1)(n+1)=(n+1)!\bigl((t-x_0)^{n+1}\bigr)^{(n+1)}=(n+1)!,所以 g(n+1)(ξ)=f(n+1)(ξ)−M(n+1)!=0 ⇒ M=f(n+1)(ξ)(n+1)!.g^{(n+1)}(\xi)=f^{(n+1)}(\xi)-M(n+1)!=0\ \Rightarrow\ M=\frac{f^{(n+1)}(\xi)}{(n+1)!}.

例 5.1用余项给误差上界

用 1−x221-\frac{x^2}2 近似 cos⁡x\cos x,∣x∣≤0.5|x|\le0.5。这个多项式其实是 P3P_3(x3x^3 系数为零),所以 ∣R3(x)∣=∣cos⁡(4)(ξ)4!x4∣≤0.5424≈0.0026.|R_3(x)|=\left|\frac{\cos^{(4)}(\xi)}{4!}x^4\right|\le\frac{0.5^4}{24}\approx0.0026.

定义 5.2Taylor 级数

若 ff 在 x0x_0 处无穷次可导,∑k=0∞f(k)(x0)k!(x−x0)k\displaystyle\sum_{k=0}^\infty\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k 称为 ff 的 Taylor 级数。级数收敛到 f(x)f(x) 当且仅当 Rn(x)→0R_n(x)\to0。

命题 5.2e^x、sin、cos 的级数处处收敛到自身

ex=∑k=0∞xkk!,sin⁡x=∑k=0∞(−1)kx2k+1(2k+1)!,cos⁡x=∑k=0∞(−1)kx2k(2k)!.e^x=\sum_{k=0}^\infty\frac{x^k}{k!},\qquad\sin x=\sum_{k=0}^\infty\frac{(-1)^kx^{2k+1}}{(2k+1)!},\qquad\cos x=\sum_{k=0}^\infty\frac{(-1)^kx^{2k}}{(2k)!}.

证明

三个函数的各阶导数在任何有界区间上一致有界(exe^x 的导数是自身,sin⁡,cos⁡\sin,\cos 的导数绝对值不超过 1)。固定 xx,记 C=max⁡∣ξ∣≤∣x∣∣f(n+1)(ξ)∣C=\max_{|\xi|\le|x|}|f^{(n+1)}(\xi)|(对 exe^x 是 e∣x∣e^{|x|},对 sin⁡,cos⁡\sin,\cos 是 11),则 ∣Rn(x)∣≤C∣x∣n+1(n+1)!→0,|R_n(x)|\le C\frac{|x|^{n+1}}{(n+1)!}\to0, 因为 ∣x∣nn!→0\dfrac{|x|^{n}}{n!}\to0(从某项起每一项都乘以小于 12\tfrac12 的因子)。

注

不是所有函数的 Taylor 级数都收敛到自身。f(x)=e−1/x2f(x)=e^{-1/x^2}(f(0)=0f(0)=0)在 00 处所有阶导数都是 00,Taylor 级数恒为 00,但 ff 不恒为 00。余项 Rn(x)=f(x)R_n(x)=f(x) 永远不趋于 00。定义里"当且仅当 Rn→0R_n\to0"这个条件不是废话。

常见错误

Taylor 级数收敛,不等于收敛到 ff。f(x)=e−1/x2f(x)=e^{-1/x^2}(f(0)=0f(0)=0)的 Taylor 级数处处收敛(恒为 00),却只在 x=0x=0 处等于 ff。判断"级数等于函数"的唯一途径是证明余项 Rn→0R_n\to0。

应用

应用数值方法的误差从哪里来

数值解一节里,Euler 法每步的误差是 O(h2)O(h^2)、RK4 是 O(h5)O(h^5),这些结论全部来自把真解 y(t+h)y(t+h) 按 Taylor 展开、再与数值格式逐项比较。

应用Euler 公式

把 eiθe^{i\theta} 的级数按实部虚部分开,就得到 eiθ=cos⁡θ+isin⁡θe^{i\theta}=\cos\theta+i\sin\theta。这是二阶线性方程中复特征根给出三角函数解的原因。

练习

01
sin⁡x\sin x 在 x=0x=0 处的 Taylor 级数中,x3x^3 的系数是多少(保留四位小数)?
02
用 1−x221-\tfrac{x^2}{2} 近似 cos⁡x\cos x,当 ∣x∣≤0.5|x|\le 0.5 时,Lagrange 余项给出的误差上界最接近下列哪个?