Skip to main content
860 words4 min

数学:泰勒展开

Summary

泰勒展开用多项式在某点附近逼近函数,是计算机求 sin x、e 的 x 次等函数值的基础。以 e 的 x 次为例,令多项式与原函数的各阶导数在零点相等,逐项定出系数为 n 的阶乘的倒数,得到麦克劳林公式,再推广到一般形式。末尾以 sin x 为例题,指出展开成立需函数在该点可解析,并列出指数、正弦、余弦的常用展开式。

泰勒展开(Taylor's Formula)是一种用多项式近似函数的方法,在数学分析和计算中都有重要应用。它可以把复杂函数转化为易于计算的多项式,是计算机求值 sin⁡x\sin x、exe^x 等函数的基础。

参考资料​

作用​

泰勒公式的核心思想:用一个多项式在某点附近逼近原函数的局部行为。

许多函数 f(x)f(x) 难以直接求值,而多项式计算效率高,形式简洁。

我们通过构造多项式 g(x)g(x),使其在某点附近尽可能接近 f(x)f(x),从而实现函数的近似计算。

tip

大多数常见函数的泰勒展开是无穷项级数,其和在收敛区域内趋近于原函数。

实际应用中只需取前几项,就能获得足够精度,这正是计算机处理 sin⁡x\sin x、exe^x 等函数的基本方式。

麦克劳林公式​

麦克劳林公式是泰勒公式在 x0=0x_0=0 处的特殊情况。

在多数应用中,麦克劳林公式已经足够使用,因为很多函数在 x=0x=0 附近展开最为简洁、对称性好,计算方便。

推导​

原理​

我们通过一个示例来直观理解。

假设要用多项式函数 g(x)g(x) 近似指数函数 f(x)=exf(x)=e^x。设 g(x)g(x) 为:

g(x)=∑n=0∞anxn=a0+a1x+a2x2+a3x3+a4x4+…g(x)=\sum_{n=0}^\infty a_nx^n=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4+\dots

我们的目标是确定每一项的系数 ana_n,使得 g(x)g(x) 与 f(x)f(x) 完全一致。

要做到这一点,必须满足两者的 任何阶导数都要相同,即:

f(n)(x)=g(n)(x)(n∈N)f^{(n)}(x)=g^{(n)}(x)(n\in\mathbb{N})

过程​

第一步​

f(x)f(x) 和 g(x)g(x) 的 零阶导数(即原函数)相同:

f(x)=ex=g(x)=a0+a1x+a2x2+a3x3+a4x4+…f(x)=e^x=g(x)=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4+\dots

代入 x=0x=0 得:

f(0)=e0=g(0)=a0=1f(0)=e^0=g(0)=a_0=1

因此:

a0=1a_0=1

第二步​

f(x)f(x) 和 g(x)g(x) 的 一阶导数 相同:

f′(x)=ex=g′(x)=0+a1+2a2x+3a3x2+4a4x3+…f'(x)=e^x=g'(x)=0+a_1+2a_2x+3a_3x^2+4a_4x^3+\dots

代入 x=0x=0 得:

f′(0)=e0=g′(0)=a1=1f'(0)=e^0=g'(0)=a_1=1

因此:

a1=1a_1=1

第三步​

f(x)f(x) 和 g(x)g(x) 的 二阶导数 相同:

f(2)(x)=ex=g(2)(x)=0+0+2a2+6a3x+12a4x2+…f^{(2)}(x)=e^x=g^{(2)}(x)=0+0+2a_2+6a_3x+12a_4x^2+\dots

代入 x=0x=0 得:

f(2)(0)=e0=g(2)(0)=2a2=1f^{(2)}(0)=e^0=g^{(2)}(0)=2a_2=1

因此:

a2=12a_2=\frac{1}{2}

第四步​

f(x)f(x) 和 g(x)g(x) 的 三阶导数 相同:

f(3)(x)=ex=g(3)(x)=0+0+0+6a3+24a4x+…f^{(3)}(x)=e^x=g^{(3)}(x)=0+0+0+6a_3+24a_4x+\dots

代入 x=0x=0 得:

f(3)(0)=e0=g(3)(0)=6a3=1f^{(3)}(0)=e^0=g^{(3)}(0)=6a_3=1

因此:

a3=16a_3=\frac{1}{6}

找规律​

依此类推,不难发现:

f(x)f(x) 和 g(x)g(x) 的 nn 阶导数相同:

f(n)(x)=ex=g(n)(x)=n!an+x(… )f^{(n)}(x)=e^x=g^{(n)}(x)=n! a_n+x(\dots)

代入 x=0x=0 得:

f(n)(0)=e0=g(n)(0)=n!an=1f^{(n)}(0)=e^0=g^{(n)}(0)=n! a_n=1

因此:

an=1n!a_n=\frac{1}{n!}

总结​

将 ana_n 代入得:

g(x)=∑n=0∞anxn=∑n=0∞xnn!g(x)=\sum_{n=0}^\infty a_nx^n=\sum_{n=0}^\infty\frac{x^n}{n!}

因此,f(x)=exf(x)=e^x 的麦克劳林公式为:

f(x)=ex=g(x)=∑n=0∞xnn!=1+x+x22!+x33!+x44!+…f(x)=e^x=g(x)=\sum_{n=0}^\infty\frac{x^n}{n!}=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}+\dots

更一般的麦克劳林公式为:

f(x)=∑n=0∞f(n)(0)n!xn=f(0)+f′(0)x+f(2)(0)2!x2+f(3)(0)3!x3+f(4)(0)4!x4+…f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(0)}{n!}x^n=f(0)+f'(0)x+\frac{f^{(2)}(0)}{2!}x^2+\frac{f^{(3)}(0)}{3!}x^3+\frac{f^{(4)}(0)}{4!}x^4+\dots

例题​

正弦函数​

求 sin⁡x\sin x 的麦克劳林展开。

设 f(x)=sin⁡xf(x)=\sin x。

它的导数每四阶循环一次:

(sin⁡x)′=cos⁡x  ⟹  (cos⁡x)′=−sin⁡x  ⟹  (−sin⁡x)′=−cos⁡x  ⟹  (−cos⁡x)′=sin⁡x(\sin x)'=\cos x\implies(\cos x)'=-\sin x\implies(-\sin x)'=-\cos x\implies(-\cos x)'=\sin x

代入麦克劳林公式:

f(x)=∑n=0∞f(n)(0)n!xn=x−x33!+x55!−x77!+x99!−…f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(0)}{n!}x^n=x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\frac{x^9}{9!}-\dots

因此,sin⁡x\sin x 的麦克劳林公式为:

sin⁡x=∑n=0∞(−1)nx2n+1(2n+1)!\sin x=\sum_{n=0}^\infty(-1)^n\frac{x^{2n+1}}{(2n+1)!}

如希望展示误差项,也可写成:

sin⁡x=x−x33!+x55!+o(x6)\sin x=x-\frac{x^3}{3!}+\frac{x^5}{5!}+o(x^6)

适用范围​

并非所有函数在任意点都可以展开为泰勒级数并等于原函数。

例如 f(x)=e−1/x2f(x)=e^{-1/x^2} 在 x=0x=0 处所有导数都为 00,但函数本身不为 00。

因此,泰勒展开的前提是函数足够光滑,且在该点 可解析。

常用公式​

ex=∑n=0∞xnn!e^x=\sum_{n=0}^\infty\frac{x^n}{n!} sin⁡x=∑n=0∞(−1)nx2n+1(2n+1)!\sin x=\sum_{n=0}^\infty(-1)^n\frac{x^{2n+1}}{(2n+1)!} cos⁡x=∑n=0∞(−1)nx2n(2n)!\cos x=\sum_{n=0}^\infty(-1)^n\frac{x^{2n}}{(2n)!}