比较通俗地讲解一下泰勒公式是什么。

泰勒公式,也称泰勒展开式。是用一个函数在某点的信息,描述其附近取值的公式。如果函数足够平滑,在已知函数在某一点的各阶导数值的情况下,泰勒公式可以利用这些导数值来做系数,构建一个多项式近似函数,求得在这一点的邻域中的值

所以泰勒公式是做什么用的?

简单来讲就是用一个多项式函数去逼近一个给定的函数(即尽量使多项式函数图像拟合给定的函数图像),注意,逼近的时候一定是从函数图像上的某个点展开。如果一个非常复杂函数,想求其某点的值,直接求无法实现,这时候可以使用泰勒公式去近似的求该值,这是泰勒公式的应用之一。泰勒公式在机器学习中主要应用于梯度迭代。

***********************************************************************************************************************************

***********************************************************************************************************************************

1. 问题的提出 

多项式  

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础

 是最简单的一类初等函数。关于多项式,由于它本身的运算仅是有限项加减法和乘法,所以在数值计算方面,多项式是人们乐于使用的工具。因此我们经常用多项式来近似表达函数。这也是为什么泰勒公式选择多项式函数去近似表达给定的函数。

***********************************************************************************************************************************

***********************************************************************************************************************************

2. 近似计算举例

初等数学已经了解到一些函数如:

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_02

 的一些重要性质,但是初等数学不曾回答怎样来计算它们,以 f(x) = 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_03

 的近似计算为例:

①. 一次(线性)逼近                                                                             

利用微分近似计算公式 f(x) 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_04

 f(

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_05

) + 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_06

(

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_05

)(x -

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_05

) (该式由导数/微分的极限表达公式转换得到),对 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_05

 = 0 附近的 f(x) 的线性逼近为: f(x) 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_04

 f(0) + 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_06

(0) x , 所以 f(x) = 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_03

 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_04

 1,所以 f(x) 在 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_05

 = 0 附近的线性逼近函数 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_15

(x) = 1,如下图:

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_16

线性逼近优点:形式简单,计算方便;缺点:离原点O越远,近似度越差。  

②. 二次逼近     

二次多项式

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_17

 逼近 f(x) = 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_03

 ,我们期望:    

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_19

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_20

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_21

 = 1 = 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_22

  ( 即期望在 x = 0 处逼近函数和给定函数的函数值相等 );

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_23

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_24

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_25

 = 0 = 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_26

  ( 即期望在 x = 0 处逼近函数和给定函数的斜率相等 );  

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_27

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_28

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_29

 = -1,所以 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_30

 = 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_31

  ( 即期望在 x = 0 处逼近函数和给定函数的曲率相等 );  所以 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_03

 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_04

 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_34

 = 1 - 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_35

,如下图:

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_36

二次逼近要比线性逼近好得多,但局限于 [ 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_37


python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_38

 ] 内,该范围外,图像明显差异很大。为什么我们期望两个函数在某一点的函数值 、一阶导数值、二阶导数值相等?因为这些值表达了函数(图像)最基本和最主要的性质,这些性质逼近即可以使得两个函数逼近(由上面函数图像可以直观地看出来)

③. 八次逼近 

 八次多项式 

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_39

  逼近 f(x) = 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_03

 ,我们期望:      

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_41

 ,求出  

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_42

   ( 即期望在 x = 0 处逼近函数和给定函数的函数值相等 );        

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_43

,求出 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_44

   ( 即期望在 x = 0 处逼近函数和给定函数的斜率相等 );

 .... .... ....          

 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_45

,求出 

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_46

  ( 即期望在 x = 0 处逼近函数和给定函数的曲率相等 );                                               所以  

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_47

 ,如下图:

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_48

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_49

 (绿色图像) 比 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_34

 (蓝色图像) 更大范围内更接近余弦函数 (红色图像)   

由上述3次不同程度的函数逼近可以看出:对于精确度要求较高且需要估计误差的时候,必须用高次多项式来近似表达函数,同时给出误差公式 。

以上就是利用多项式函数去逼近给定函数的一个过程。

*****************************************************************************************************************************************

*****************************************************************************************************************************************

3. 泰勒公式的推导

由此引出一个问题:给定一个函数 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_51

 ,要找一个在指定点 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 附近与 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_51

 很近似的多项式函数 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_54

,记为:         

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_55

  使得  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_51

 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_04

  

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_58

 并且使得两者误差 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_59

 可估计。所以要找的多项式应该满足什么条件,误差是什么?从几何上看,

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_60


python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_61

 代表两条曲线,如下图:

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_62

       使它们在 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 附近很靠近,很明显:1. 首先要求两曲线在 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_64

 点相交,即  

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_65

             2. 如果要靠得更近,还要求两曲线在  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_64

 点相切,(由图像可以直观看出,相交 [ 棕色和红色图像 ] 和 相切 [ 绿色和红色图像 ],两曲线在

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 附近的靠近情况明显差异很大,相切更接近),即 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_68

                                                3. 如果还要靠得更近,还要求曲线在  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_64

 点弯曲方向相同,(如上图,弯曲方向相反 [ 绿色和红色图像 ];弯曲方向相同[ 蓝色和红色图像 ],明显在离 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 很远的地方,弯曲方向相同两函数的差异更小一点),即 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_71

 ,进而可推想:若在 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_64

 附近有 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_68


python 泰勒展开公式series 泰勒展开公式怎么用_迭代_71

 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_75

  

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_76

,近似程度越来越好。

综上所述,所要找的多项式应满足下列条件:

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_77

   

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_78

  

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_79

   

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_78

  

python 泰勒展开公式series 泰勒展开公式怎么用_数学基础_81

    

解释一下上面的转换时如何做的,以上面第三行的二阶导数为例: 

第一个箭头的转换:将 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_58

 求二阶导函数后将 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 带入,求得 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_84

 第二个箭头的转换:所以 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_85

,所以 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_86

 多项式函数 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_55

  中的系数 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_88

 可以全部由 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_51

 表示,则得到: 

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_90

其中误差为  

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_91

。 因为是用多项式函数去无限逼近给定的函数,所以两者之间肯定存在一丢丢的误差。

****************************************************************************************************************************************

****************************************************************************************************************************************

4. 泰勒公式的定义

所以我们就得到了泰勒公式的定义:

如果函数 

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_51

 在含 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 的某个开区间  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_94

  内具有直到  

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_95

 阶导数,则对  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_96

 ,有  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_97

   其中余项 (即误差)  

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_98

 , 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_99

 在 

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_52

 与 x 之间。 泰勒公式的余项表达方式有好几种,前面这种表是方法称为n阶泰勒展开式的拉格朗日余项。拉格朗日余项即是n阶泰勒公式又多展开了一阶,n变为n+1。注意,这里的余项即为误差,因为使用多项式函数在某点展开,逼近给定函数,最后肯定会有一丢丢的误差,我们称之为余项。

****************************************************************************************************************************************

****************************************************************************************************************************************

5. 扩展 —— 麦克劳林公式

是泰勒公式的一种特殊情况:即当 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_101

 时的泰勒公式。所以将 

python 泰勒展开公式series 泰勒展开公式怎么用_多项式_101

 带入公式,即得:

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_103

几个常见的初等函数的带有佩亚诺余项的麦克劳林公式:

python 泰勒展开公式series 泰勒展开公式怎么用_迭代_104

 佩亚诺余项为   

python 泰勒展开公式series 泰勒展开公式怎么用_斜率_105

 的高阶无穷小 :

python 泰勒展开公式series 泰勒展开公式怎么用_python 泰勒展开公式series_106