泰勒公式

\[\begin{aligned} f(x)&=P(x)+R(x)\\ &=主要部分({\color{blue}{近似值}})+次要部分({\color{blue}{误差}}). \end{aligned} \tag{1}\]

1 为什么要引入泰勒公式?

假设你需要研究一个函数\(f(x),\)

  • 这个函数比较复杂, 不容易处理,
  • 而且你仅仅知道这个函数在\(x=0\)处的情况(各阶导数), 其他情况不知,

那怎么研究?

  • 把复杂问题变简单

    先不追求精确, 用简单函数近似.

  • 努力用已知: 各阶导数, 去把未知的\(f(x)\) 描绘出来.

  • 问题就是: 如何用一点处的各阶导数, 简单的把函数表示出来?

2 泰勒公式的本质与关键

泰勒公式就是把\(f(x)\)分解成两个函数的和, \[\begin{aligned} f(x)&=P(x)+R(x)\\ &=主要部分({\color{blue}{近似值}})+次要部分({\color{blue}{误差}}), \end{aligned} \]

  • \(P(x)\)是一个简单的函数, 是\(f(x)\)的主要部分, 可以作为近似值;
  • \(R(x)\)是一个误差, 是\(f(x)\)的次要部分, 小于预先给定的误差.
  • 要能把近似函数\(P(x)\)求出来,

  • 要能准确估计误差\(R(x)\)的大小.

  • 如果要求的误差不同, 则相应的近似函数\(P(x)\)也不同, 所以\(f(x)\)的泰勒公式实际上是一组公式.

3 确定简单的函数\(P(x)\)

在基本初等函数中, 多项式函数 \[ P_n(x)=a_0+a_1x+\cdots+a_nx^n \] 比较简单, 原因

  • 各种计算及求导容易.
  • 如果两个函数在某个点处的函数值相等, 各阶导数都相等, 则可以猜测在此点的邻域, 这两个函数会比较接近.

  • 所以我们对\(P(x)\)的要求就是在\(x=0\)处其函数值以及各阶导数和\(f(x)\)的相等: \[ P(0)=f(0),P'(0)=f'(0),\cdots, P^{(n)}(0)=f^{(n)}(0). \]

  • 事后能够验证两者的误差确实可以比较小.

根据导数相等, 用待定系数法计算.

  • 假设\[P(x)={ a_0+a_1x+a_2x^2+\cdots+a_nx^n}. \]

  • \(f(x), P(x)\)分别求导, 代入\(x=0\)得到 \[P_n^{(k)}(0)=k!a_k=f^{(k)}(0).\]

  • \[ a_k=\frac{f^{(k)}(0)}{k!}, k=0, 1, 2,\cdots, n. \]

  • 这样就确定了\(f(x)\)的近似函数 \[P(x)={ f(0)+f'(0)x+\frac{f^{(2)}(0)}{2!}x^2+\cdots+\frac{f^{(n)}(0)}{n!}x^n}. \]

4 估计误差函数\(R(x)\)的大小

计算误差

\[R(x)=f(x)-P(x). \]

  • 根据\(P(x)\)的要求, 有\(R^{(k)}(0)=0, k=0,1,\cdots, n.\)

  • \(f(x)\)\(x^n\)用洛必达法则得到 \[\begin{aligned} &\lim_{x\rightarrow 0}\frac{R(x)}{x^{n}}=\lim_{x\rightarrow 0}\frac{R'(x)}{nx^{n-1}}=\cdots=\lim_{x\rightarrow 0}\frac{R^{(n)}(x)}{{n!}}=0,\\ & \therefore\, R(x)=o(x^{n}). \end{aligned}\]

  • 说明\(R(x)\)\(x^{n}\)的高阶无穷小, 确实很小.

  • 称为皮亚诺型余项

  • 用柯西中值定理可以得到更细致的估计

  • \[\begin{aligned} &\frac{R(x)-0}{x^{{}n+1}-0}=\frac{R'(x_1)}{(n+1)x_1^{n}}=\cdots=\frac{R^{(n)}(x_n)}{{(n+1)!x_n}}\\ &= \frac{f^{(n+1)}(\xi)}{(n+1)!}. \end{aligned}\]

  • \[ R(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}. \]

  • 称为拉格朗日型余项.

根据误差要求确定\(n\).

  • 研究问题时总是先固定\(x\).

  • 对于固定的\(x\), 比如\(x=0.01,\) 如果 \(f^{(n+1)}(\xi)\)有界, 则\(n\)越大, \(R(x)\)就越小. 因此用\(P(x)\)作为\(f(x)\)的近似值, 则误差\(R(x)\)可以满足给定的要求(误差越小, 可能\(n\)就选要大一点).

  • 应用泰勒公式时, \(n\)的选择取决于一开始问题的要求, 要求误差小于\(10^{-3}\) 还是\(10^{-5}?\) 根据这个要求再来确定合适的\(n\).

5 泰勒定理

设函数 \(f(x)\) 在点 \(x_0\) 的某个邻域内具有 \(n+1\) 阶导数,则对于该邻域内的任意\(x\),有:

\[ f(x) = P_n(x) + R_n(x) \]

  • 其中 \[ P_n(x) = f(x_0) + f'(x_0)(x - x_0) + \frac{f''(x_0)}{2!}(x - x_0)^2 + \cdots + \frac{f^{(n)}(x_0)}{n!}(x - x_0)^n \] 称为泰勒多项式.

余项有两种:

  • 拉格朗日余项(定量估计)

\[ R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x - x_0)^{n+1} \]

其中 \(\xi\) 是介于 \(x_0\)\(x\) 之间的某个数。

  • 皮亚诺余项(局部定量描述)

\[ R_n(x) = o((x - x_0)^n) \quad (x \to x_0) \]

\(x_0 = 0\) 时,得到麦克劳林公式:

\[ f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + \cdots + \frac{f^{(n)}(0)}{n!}x^n + R_n(x) \]

6 如何求函数的泰勒公式

  • 计算各阶导数,

  • 代入公式.

  • 估计误差.

  • 写出公式

  • 直接法是用各阶导数相等, 由于高阶导数不容易求, 这种方法不太实用.
  • 根据泰勒公式的唯一性, 利用已经求得函数的泰勒公式和一些运算法则求泰勒公式.

7 经典麦克劳林展开式

  • 指数函数 \[ e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots + \frac{x^n}{n!} + R_n(x). \]

  • 正弦函数 \[ \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots + (-1)^k\frac{x^{2k+1}}{(2k+1)!} + R_{2k+1}(x). \]

  • 余弦函数 \[ \cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \cdots + (-1)^k\frac{x^{2k}}{(2k)!} + R_{2k}(x). \]

  • 自然对数 \[ \ln(1+x) = x - \frac{x^2}{2} + \frac{x^3}{3} - \frac{x^4}{4} + \cdots + (-1)^{n+1}\frac{x^n}{n} + R_n(x). \]

8 局部与整体

  • 泰勒公式是研究函数在点0的附近的性质, 是关于局部性质的公式.

  • 由于拉格朗日型余项给出了精细的误差估计. 如果对于很大的\(x\), 误差也很小, 则此时泰勒公式仍旧可以使用, 就变成了一个较大区间上的公式.

  • 对于指数函数和三角函数来说, 对所有的\(x\)都可以使用. 变成了一个整体性质的公式.

  • 如果函数有各阶导数, 则这样的函数可以用它在0处的各阶导数来描述. 就是0点处的性质决定了其它点(某个区间内)处的性质(函数值).

9 泰勒公式会失效与局限性

\(f(x)=\frac{1}{1-x}\), 有泰勒公式

\[ \frac{1}{1-x}= 1+x+x^2+\cdots+x^n+\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}. \]

  • 对于\(x=3\), 这也是一个等式, \(\xi\)需要确定.

  • 但此时\(\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}\)很大了, 如果还用\(1+x+x^2+\cdots+x^n\)作为近似值, 则误差很大, 选再大的\(n\)误差也不会减少.

  • 此时近似值没有任何意义了. 所以泰勒公式还有, 但没有什么用处, 失效了.

  • 需要\(n+1\)阶可导.

10 题目及分析

  • 应用泰勒公式解决问题的关键是要确定展开到几阶? 误差是多少?

\[ 求极限\lim_{x \rightarrow 0} \frac{e^x\cos x-(1+ x)}{x^3}. \]

  • 分子展开到和分母同阶, 确保余项是高阶无穷小\(o(x^3)\), 和分母相比极限为0.

\[ \begin{align} &e^x\cos x-(1+ x)\\ =&\left[1+x+\frac{x^2 }{2!}+\frac{x^3}{3!}+o(x^3)\right]\left[1-\frac{x^2 }{2!}+o(x^3)\right]-(1+ x). \end{align} \]

  • 运用小o的运算公式\[\begin{aligned} o(x^2)o(x^3)&=o(x^{5}),\\ x^2o(x^3)&=o(x^{5}),\\ o(x^2)+o(x^3)&= o(x^2), \\ o(5x^2)&= o(x^2). \end{aligned}\]

  • 去括号得 \[ \begin{align} &\left[1+x+\frac{x^2 }{2!}+\frac{x^3}{3!}+o(x^3)\right]\left[1-\frac{x^2 }{2!}+o(x^3)\right]-(1+ x)\\ =&\frac{x^3}{3!}-\frac{x^3 }{2!}+o(x^3)\\ =&-\frac{x^3 }{6}+o(x^3). \end{align} \]

证明:当\(0 < x < \frac{\pi}{2}\)时,有\(\sin x > x - \frac{x^3}{6}.\)

  • 根据题目, 展开到3阶.

\[ \begin{align} &\sin x= x-\frac{x^3 }{3!}+\frac{\sin^{(5)} \xi}{5!}x^5. \end{align} \]

\(0 < x < \frac{\pi}{2}\)时, \[ \begin{align} &\frac{\sin^{(5)} \xi}{5!}x^5=\frac{\sin \xi}{5!}x^5>0. \end{align} \]

设函数 \(f(x)\)\([a,b]\) 上有 \(f''(x) \geq 0\),任取 \(x_1,x_2 \in [a,b],\) \(\lambda \in (0,1),\) 证明: \[\lambda f(x_1) + (1-\lambda)f(x_2) \geq f(\lambda x_1 + (1-\lambda)x_2).\]

  • 已知函数的二阶导数的性质, 证明函数值的不等式.

  • 能把函数与导数联系在一起的就是泰勒公式.

  • 条件是二阶导数大于等于零, 二阶导数需要做误差估计.

  • 展开到一阶.

  • 写出一阶泰勒公式: \[f(x) = f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2}f''(\xi)(x - x_0)^2.\]

  • 需要选择哪些点代入上面的公式?

题目中出现的点: \(x_1, x_2, x_0=\lambda x_1 + (1-\lambda)x_2.\)

  • \[x_0 = \lambda x_1 + (1-\lambda)x_2,\]

  • \(f(x_1), f(x_2)\)\(x_0\) 处作一阶泰勒展开:

    1. 存在 \(\xi_1 \in (x_1, x_0)\),使得 \[f(x_1) = f(x_0) + f'(x_0)(x_1 - x_0) + \frac{1}{2}f''(\xi_1)(x_1 - x_0)^2.\]

    2.存在 \(\xi_2 \in (x_0, x_2)\),使得 \[f(x_2) = f(x_0) + f'(x_0)(x_2 - x_0) + \frac{1}{2}f''(\xi_2)(x_2 - x_0)^2.\]

  • 利用二阶导数条件, 有 \[f(x_1) \geq f(x_0) + f'(x_0)(x_1 - x_0), \tag{1}\] \[f(x_2) \geq f(x_0) + f'(x_0)(x_2 - x_0). \tag{2}\]

  • 将式 (1) 乘以 \(\lambda\),式 (2) 乘以 \((1-\lambda)\),两式相加: \[\lambda f(x_1) + (1-\lambda)f(x_2) \geq f(\lambda x_1 + (1-\lambda)x_2).\]

定理 设函数 \(f(x)\) 在点 \(x_0\) 的某邻域 \(U(x_0)\) 内二阶可导,满足:

  1. \(f'(x_0) = 0\);
  2. \(f''(x_0) \neq 0.\)

\(x_0\)\(f(x)\) 的极值点, 且

  • \(f''(x_0) > 0\) 时,\(f(x)\)\(x_0\) 处取极小值;
  • \(f''(x_0) < 0\) 时,\(f(x)\)\(x_0\) 处取极大值.
  • 已知函数的二阶导数的性质, 证明函数取极值.

  • 能把函数与导数联系在一起的就是泰勒公式.

  • 条件是二阶导数大于零, 二阶导数需要做误差估计.

  • 展开到一阶.

  • 写出一阶泰勒公式: \[\begin{aligned} f(x) &= f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2}f''(\xi)(x - x_0)^2\\ &=f(x_0) + \frac{1}{2}f''(\xi)(x - x_0)^2\\ &\geq f(x_0). \end{aligned}\]
  • 如果\(f^{(k)}(x_0)=0, k=1,2,\cdots, n-1\), \(f^{(n)}(x_0)\neq 0\), 是不是极值点?

  • 需要讨论\(n\)的奇偶性.

\(y=\arctan x\) 的一阶麦克劳林展开式.

  • 一阶展开式, 需求二阶导数, 作为拉格朗日余项.

  • 注意写出两个余项.

  • 求一阶, 二阶导数

\[\begin{aligned} f'(x)&= \frac{1}{1 + x^2},\\ f''(x) &= -\frac{2x}{(1 + x^2)^2}. \end{aligned}\]

  • 代入 \[\begin{aligned} f(0)=0, f'(0)&=1. \end{aligned}\]

  • 写出展开式 \[ \begin{align} \arctan x &=x+o(x^2),\\ \arctan x &=x-\frac{2\xi}{(1 + \xi^2)^2}x^2. \end{align} \]

\(xe^{3x}\)的麦克劳林展开式.

  • 泰勒公式的展开式中, 泰勒多项式是唯一的.

  • \(x\)可以用任意表达式代换.

  • 代入\(3x\), 再乘上\(x\).

\[ \begin{align} xe^{3x}&=x\left[1+3x+\frac{(3x)^2 }{2!}+\cdots+\frac{(3x)^n}{n!}+o(x^n)\right]\\ &=x+3x^2+\frac{3^2 }{2!}x^3+\cdots+\frac{3^n}{n!}x^{n+1}+o(x^{n+1}). \end{align} \]

  • 用展开式的唯一性, 已知展开式, 可以根据系数求得高阶导数

\[f^{(n)}(0)=n!a_n.\]