泰勒公式(泰勒展开式)通俗+本质详解
泰勒公式(泰勒展开式)通俗+本质详解
泰勒公式(泰勒展开式)是用一个函数在某点的信息,描述其附近取值的公式。如果函数足够平滑,在已知函数在某一点的各阶导数值的情况下,泰勒公式可以利用这些导数值来做系数,构建一个多项式近似函数,求得在这一点的邻域中的值。
1. 问题的提出
多项式是最简单的一类初等函数。关于多项式,由于它本身的运算仅是有限项加减法和乘法,所以在数值计算方面,多项式是人们乐于使用的工具。因此我们经常用多项式来近似表达函数。这也是为什么泰勒公式选择多项式函数去近似表达给定的函数。
2. 近似计算举例
以 f(x) = cos(x) 的近似计算为例:
①. 一次(线性)逼近
利用微分近似计算公式 f(x) ≈ f(a) + f'(a)(x - a),对 x = 0 附近的 f(x) 的线性逼近为: f(x) ≈ f(0) + f'(0) x , 所以 f(x) = cos(x) 在 x = 0 附近的线性逼近函数 p(x) = 1,如下图:
线性逼近优点:形式简单,计算方便;缺点:离原点O越远,近似度越差。
②. 二次逼近
二次多项式 p(x) 逼近 f(x) = cos(x),我们期望:
- p(0) = f(0) = 1
- p'(0) = f'(0) = 0
- p''(0) = f''(0) = -1
所以 p(x) = 1 - x^2/2,如下图:
二次逼近要比线性逼近好得多,但局限于 [-π/2, π/2] 内,该范围外,图像明显差异很大。为什么我们期望两个函数在某一点的函数值、一阶导数值、二阶导数值相等?因为这些值表达了函数(图像)最基本和最主要的性质,这些性质逼近即可以使得两个函数逼近(由上面函数图像可以直观地看出来)。
③. 八次逼近
八次多项式 p(x) 逼近 f(x) = cos(x),我们期望:
- p(0) = f(0) = 1
- p'(0) = f'(0) = 0
- p''(0) = f''(0) = -1
- ...
- p^(8)(0) = f^(8)(0)
所以 p(x) = 1 - x^2/2 + x^4/24 - x^6/720 + x^8/40320,如下图:
由上述3次不同程度的函数逼近可以看出:对于精确度要求较高且需要估计误差的时候,必须用高次多项式来近似表达函数,同时给出误差公式。
3. 泰勒公式的推导
由此引出一个问题:给定一个函数 f(x),要找一个在指定点 x0 附近与 f(x) 很近似的多项式函数 p(x),记为:
p(x) = a0 + a1(x-x0) + a2(x-x0)^2 + ... + an(x-x0)^n
使得 f(x) ≈ p(x) 并且使得两者误差 Rn(x) 可估计。所以要找的多项式应该满足什么条件,误差是什么?
从几何上看,f(x) 和 p(x) 代表两条曲线,如下图:
使它们在 x0 附近很靠近,很明显:
- 首先要求两曲线在 x0 点相交,即 f(x0) = p(x0)
- 如果要靠得更近,还要求两曲线在 x0 点相切,即 f'(x0) = p'(x0)
- 如果还要靠得更近,还要求曲线在 x0 点弯曲方向相同,即 f''(x0) = p''(x0)
进而可推想:若在 x0 附近有 f(x) ≈ p(x),f'(x) ≈ p'(x),近似程度越来越好。
综上所述,所要找的多项式应满足下列条件:
- f(x0) = p(x0)
- f'(x0) = p'(x0)
- f''(x0) = p''(x0)
- ...
- f^(n)(x0) = p^(n)(x0)
解释一下上面的转换时如何做的,以上面第三行的二阶导数为例:
第一个箭头的转换:将 p(x) 求二阶导函数后将 x0 带入,求得 p''(x0)
第二个箭头的转换:所以 a2 = f''(x0)/2
由此,多项式函数 p(x) 中的系数 ai 可以全部由 f(x) 表示,则得到:
p(x) = f(x0) + f'(x0)(x-x0) + f''(x0)(x-x0)^2/2! + ... + f^(n)(x0)(x-x0)^n/n!
其中误差为 Rn(x)。 因为是用多项式函数去无限逼近给定的函数,所以两者之间肯定存在一丢丢的误差。
4. 泰勒公式的定义
所以我们就得到了泰勒公式的定义:
如果函数 f(x) 在含 x0 的某个开区间 (a, b) 内具有直到 n 阶导数,则对任意 x ∈ (a, b),有
f(x) = f(x0) + f'(x0)(x-x0) + f''(x0)(x-x0)^2/2! + ... + f^(n)(x0)(x-x0)^n/n! + Rn(x)
其中余项 (即误差) Rn(x) = f^(n+1)(ξ)(x-x0)^(n+1)/(n+1)!,ξ 在 x0 与 x 之间。 泰勒公式的余项表达方式有好几种,前面这种表是方法称为n阶泰勒展开式的拉格朗日余项。拉格朗日余项即是n阶泰勒公式又多展开了一阶,n变为n+1。注意,这里的余项即为误差,因为使用多项式函数在某点展开,逼近给定函数,最后肯定会有一丢丢的误差,我们称之为余项。
5. 扩展 —— 麦克劳林公式
是泰勒公式的一种特殊情况:即当 x0=0 时的泰勒公式。所以将 x0=0 带入公式,即得:
f(x) = f(0) + f'(0)x + f''(0)x^2/2! + ... + f^(n)(0)x^n/n! + Rn(x)
几个常见的初等函数的带有佩亚诺余项的麦克劳林公式:
佩亚诺余项为 o(x^n) 的高阶无穷小 :
本文原文来自CSDN。