泰勒公式
\[\begin{aligned} f(x)&=P(x)+R(x)\\ &=主要部分({\color{blue}{近似值}})+次要部分({\color{blue}{误差}}) \end{aligned} \tag{1}\]
- 知识 泰勒公式是研究函数的一个威力极大的工具.
- 知识 用简单函数\(P(x)\)近似复杂函数\(f(x)\), 还可以控制误差\(R(x)\).
- 能力素养 复杂问题变简单: 近似与逼近.
1 背景与动机
问题 不用计算器, 估计一下 \(e^{0.002}\) 的近似值是多少?
- 能够直接手算的是加减乘除这些简单的四则运算.
- \(e^{0.002}\)没法直接用四则运算算出准确值, 不容易手算.
- 只能求近似值.
逐步思考下面的问题.
- 只用四则运算的话, 只有多项式函数可以做到. \[P(x)={ a_0+a_1x+a_2x^2+\cdots+a_nx^n}. \]
- 其它函数, 如指数, 对数, 三角函数根本不知道怎么计算函数值.
- 可以.
- 比如\(e^x\sim 1+x,\) 误差比\(x\)还小.
- 所以\(e^{0.002}\sim 1+0.002=1.002.\)
- 如果用\(e^x\sim 1+x+\frac{x^2}{2},\) 误差更小.
把复杂问题变简单
- 想办法用一个可以手算的多项式函数\(P(x)\)作为\(e^x\)的近似值.
- 最好能够知道误差\(e^x-P(x)\)大概是多少.
- 现在的问题是: 如何找到\(1+x? 1+x+\frac{x^2}{2}?\) 还有没有其它的函数?
2 泰勒公式是什么?
对于复杂函数\(f(x)\), 泰勒公式告诉我们可以把\(f(x)\)分解成两个函数的和, \[\begin{aligned} f(x)&=P(x)+R(x)\\ &=主要部分({\color{blue}{近似值}})+次要部分({\color{blue}{误差}}), \end{aligned} \]
- \(P(x)\)是一个简单的函数, 是\(f(x)\)的主要部分, 可以作为近似值;
- \(R(x)\)是一个误差, 是\(f(x)\)的次要部分, 小于预先给定的误差.
- 简单说, \(f(x)\)可以拆成两部分, 一部分简单, 也是主要的; 另外一部分很复杂, 但很小, 一般可以忽略.
- 因此解决问题时抓住主要部分就行了. 同时主要部分还很简单.
复杂问题简单化, 关键是简单化的部分还是主要部分
- 要能把近似函数\(P(x)\)求出来,
- 要能准确估计误差\(R(x)\)的大小.
- 如果要求的误差不同, 则相应的近似函数\(P(x)\)也不同, 所以\(f(x)\)的泰勒公式实际上是一组公式.
3 如何推导出泰勒公式?
3.1 先确定简单函数\(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}. \]
3.2 再估计误差\(R(x)\)
计算误差
\[R(x)=f(x)-P(x). \]
- 根据\(P(x)\)的要求, 有\(R^{(k)}(0)=f^{(k)}(0)-P^{(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\).
3.3 泰勒定理
设函数 \(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) \]
- 泰勒公式是研究函数在点0的附近的性质, 是关于局部性质的公式.
- 由于拉格朗日型余项给出了精细的误差估计. 如果对于很大的\(x\), 误差也很小, 则此时泰勒公式仍旧可以使用, 就变成了一个较大区间上的公式.
- 对于指数函数和三角函数来说, 对所有的\(x\)都可以使用. 变成了一个整体性质的公式.
- 如果函数有各阶导数, 则这样的函数可以用它在0处的各阶导数来描述. 就是0点处的性质决定了其它点(某个区间内)处的性质(函数值).
对\(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\)阶可导.
4 如何求泰勒公式
- 计算各阶导数,
- 代入公式.
- 估计误差.
- 写出公式.
- 直接法是用各阶导数相等, 由于高阶导数不容易求, 这种方法不太实用.
- 根据泰勒公式的唯一性, 利用已经求得函数的泰勒公式和一些运算法则求泰勒公式.
\[\begin{align} e^x=&1+x+\frac{x^2}{2!}+\cdots +\frac{x^n}{n!}+\cdots \\ \sin x=&x-x-\frac{x^3}{3!}+\frac{x^5}{5!}\cdots +(-1)^{n-1}\frac{x^{2n-1}}{(2n-1)!}+\cdots \\ \cos x=(\sin x)'=&1-\frac{x^2}{2!}+\frac{x^4}{4!}\cdots +(-1)^{n-1}\frac{x^{2n}}{(2n)!}+\cdots \\ \frac{1}{1-x}=&1+x+{x^2}+\cdots +{x^n}+\cdots \\ \ln(1-x)=&-x-\frac{x^2}{2}-\frac{x^3}{3}\cdots -\frac{x^{n}}{n}-\cdots\\ (1+x)^\alpha=&1+\alpha x+\frac{\alpha(\alpha-1)}{2!}x^2+\cdots +\frac{\alpha(\alpha-1)\cdots (\alpha-n+1)}{n!}x^{n}+\cdots\\ \end{align} \]
5 怎么用泰勒公式?
- 已知函数的一阶, 二阶导数的性质, 证明函数的性质.
- 能把函数与导数联系在一起的就是泰勒公式.
关键是两点:
- 一是确定哪些点在哪个点处展开. 二是展开到几阶?
- 一般是特殊点. 如端点, 中点, 内部的极值点等. 最重要的是题目中出现的点.
- 展开到几阶由题目条件决定, 二阶可导则展开到一阶, 二阶的作为误差估计.