泰勒公式(泰勒展开式)通俗+本质详解

泰勒公式(泰勒展开式)通俗+本质详解比较通俗地讲解一下泰勒公式是什么。泰勒公式,也称泰勒展开式。是用一个函数在某点的信息,描述其附近取值的公式。如果函数足够平滑,在已知函数在某一点的各阶导数值的情况下,泰勒公式可以利用这些导数值来做系数,构建一个多项式近似函数,求得在这一点的邻域中的值所以泰勒公式是做什么用的?简单来讲就是用一个多项式函数去逼近一个给定的函数(即尽量使多项式函数图像拟合给定的函数图像),注意,逼近的…

大家好,又见面了,我是你们的朋友全栈君。

 

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

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

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

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

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

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

1. 问题的提出 

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

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

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

2. 近似计算举例

初等数学已经了解到一些函数如:泰勒公式(泰勒展开式)通俗+本质详解 的一些重要性质,但是初等数学不曾回答怎样来计算它们,以 f(x) = \small \cos x 的近似计算为例:

①. 一次(线性)逼近                                                                             

利用微分近似计算公式 f(x) \small \approx f(\small x_{0}) + {f}'(\small x_{0})(x – \small x_{0}) (该式由导数/微分的极限表达公式转换得到),对 \small x_{0} = 0 附近的 f(x) 的线性逼近为: f(x) \small \approx f(0) + {f}'(0) x , 所以 f(x) = \small \cos x \small \approx 1,所以 f(x) 在 \small x_{0} = 0 附近的线性逼近函数 P_{1}(x) = 1,如下图:

泰勒公式(泰勒展开式)通俗+本质详解

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

②. 二次逼近     

二次多项式泰勒公式(泰勒展开式)通俗+本质详解 逼近 f(x) = \small \cos x ,我们期望:    

\small P_{2}\left ( 0 \right ) = \small f\left ( 0 \right ) = \small \cos 0 = 1 = \small a_{0}  ( 即期望在 x = 0 处逼近函数和给定函数的函数值相等 );

\small {P_{2}}'\left ( 0 \right ) = \small f{}'\left ( 0 \right ) = \small \sin 0 = 0 = \small a_{1}  ( 即期望在 x = 0 处逼近函数和给定函数的斜率相等 );  

\small {P_{2}}''\left ( 0 \right ) = \small {f}''\left ( 0 \right ) = \small -\cos 0 = -1,所以 \small a_{2} = \small -\frac{1}{2}  ( 即期望在 x = 0 处逼近函数和给定函数的曲率相等 ); 

 所以 \small \cos x \small \approx \small P_{2}\left ( x \right ) = 1 – \small \frac{x^{2}}{2},如下图:

泰勒公式(泰勒展开式)通俗+本质详解

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

③. 八次逼近 

 八次多项式 泰勒公式(泰勒展开式)通俗+本质详解  逼近 f(x) = \small \cos x ,我们期望:     

 \small P_{8}\left (0 \right ) = f\left ( 0 \right ) ,求出  \small a_{0} = 1   ( 即期望在 x = 0 处逼近函数和给定函数的函数值相等 );       

 \small {P_{8}}'\left ( 0 \right ) = {f\left ( 0 \right )}',求出 \small a_{1} = 0   ( 即期望在 x = 0 处逼近函数和给定函数的斜率相等 );

 …. …. ….          

 \small {P_{8}}^{(8)}\left ( 0 \right ) = f^{(8)}(0),求出 \small a_{8} = \frac{1}{8!}  ( 即期望在 x = 0 处逼近函数和给定函数的曲率相等 );                                               

所以  泰勒公式(泰勒展开式)通俗+本质详解  ,如下图:

泰勒公式(泰勒展开式)通俗+本质详解

\small P_{8}\left ( x \right ) (绿色图像) 比 \small P_{2}\left ( x \right ) (蓝色图像) 更大范围内更接近余弦函数 (红色图像)   

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

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

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

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

3. 泰勒公式的推导

由此引出一个问题:给定一个函数 \small f\left ( x \right ) ,要找一个在指定点 \small x_{0} 附近与 \small f\left ( x \right ) 很近似的多项式函数 \small P\left ( x \right ),记为:         

泰勒公式(泰勒展开式)通俗+本质详解  使得  \small f\left ( x \right ) \small \approx  \small P_{n}\left ( x \right ) 并且使得两者误差 \small R_{n}\left ( x \right ) = f\left ( x \right ) - P_{n}\left ( x \right ) 可估计。所以要找的多项式应该满足什么条件,误差是什么?

从几何上看,\small y = f\left ( x \right )\small y = P_{n}\left ( x \right ) 代表两条曲线,如下图:

泰勒公式(泰勒展开式)通俗+本质详解       

使它们在 \small x_{0} 附近很靠近,很明显:

1. 首先要求两曲线在 \small \left ( x_{0},f\left ( x_{0} \right ) \right ) 点相交,即  \small P_{n}\left ( x_{0} \right ) = f\left ( x_{0} \right )             

2. 如果要靠得更近,还要求两曲线在  \small \left ( x_{0},f\left ( x_{0} \right ) \right ) 点相切,(由图像可以直观看出,相交 [ 棕色和红色图像 ] 和 相切 [ 绿色和红色图像 ],两曲线在 \small x_{0} 附近的靠近情况明显差异很大,相切更接近),即 \small {P_{n}}'\left ( x_{0} \right ) = {f}'\left ( x_{0} \right )                                                

3. 如果还要靠得更近,还要求曲线在  \small \left ( x_{0},f\left ( x_{0} \right ) \right ) 点弯曲方向相同,(如上图,弯曲方向相反 [ 绿色和红色图像 ];弯曲方向相同[ 蓝色和红色图像 ],明显在离 \small x_{0} 很远的地方,弯曲方向相同两函数的差异更小一点),即 \small {P_{n}}''\left ( x_{0} \right ) = {f}''\left ( x_{0} \right ) ,进而可推想:若在 \small \left ( x_{0},f\left ( x_{0} \right ) \right ) 附近有 \small {P_{n}}'\left ( x_{0} \right ) = {f}'\left ( x_{0} \right )\small {P_{n}}''\left ( x_{0} \right ) = {f}''\left ( x_{0} \right ) \small \cdots \cdots \cdots  \small P_{n}^{\left ( n \right )}\left ( x_{0} \right ) = f^{n}\left ( x_{0} \right ),近似程度越来越好。

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

泰勒公式(泰勒展开式)通俗+本质详解   泰勒公式(泰勒展开式)通俗+本质详解  泰勒公式(泰勒展开式)通俗+本质详解   泰勒公式(泰勒展开式)通俗+本质详解  泰勒公式(泰勒展开式)通俗+本质详解    

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

第一个箭头的转换:将 \small P_{n}\left ( x \right ) 求二阶导函数后将 \small x_{0} 带入,求得 \small {P_{n}}''\left ( x_{0} \right ) = 2!a_{2} 

第二个箭头的转换:所以 \small {f}''\left ( x_{0} \right ) = 2!a_{2},所以 \small a_{2} = \frac{1}{2!}{f}''\left ( x_{0} \right ) 

多项式函数 泰勒公式(泰勒展开式)通俗+本质详解  中的系数 \small a 可以全部由 \small f\left ( x \right ) 表示,则得到: 

泰勒公式(泰勒展开式)通俗+本质详解其中误差为  \small R_{n} \left ( x \right ) = f\left (x \right ) - P_{n}\left ( x \right )。 因为是用多项式函数去无限逼近给定的函数,所以两者之间肯定存在一丢丢的误差。

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

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

4. 泰勒公式的定义

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

如果函数 \small f\left ( x \right ) 在含 \small x_{0} 的某个开区间  \small \left ( a,b \right )  内具有直到  \small \left ( n+1 \right ) 阶导数,则对  \small \forall x \in \left ( a,b \right ) ,有  

泰勒公式(泰勒展开式)通俗+本质详解   

其中余项 (即误差)  \small R_{n}\left ( x \right ) = \frac{f^{\left ( n+1 \right )}(\xi )}{\left ( n+1 \right )!}(x-x_{0})^{n+1} , \xi泰勒公式(泰勒展开式)通俗+本质详解 在 \small x_{0} 与 x 之间。 泰勒公式的余项表达方式有好几种,前面这种表是方法称为n阶泰勒展开式的拉格朗日余项。拉格朗日余项即是n阶泰勒公式又多展开了一阶,n变为n+1。注意,这里的余项即为误差,因为使用多项式函数在某点展开,逼近给定函数,最后肯定会有一丢丢的误差,我们称之为余项。

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

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

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

是泰勒公式的一种特殊情况:即当 \small x_{0} = 0 时的泰勒公式。所以将 \small x_{0} = 0 带入公式,即得:

泰勒公式(泰勒展开式)通俗+本质详解

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

泰勒公式(泰勒展开式)通俗+本质详解

 佩亚诺余项为    \small \left ( x-x_{0} \right )^{n} 的高阶无穷小 :泰勒公式(泰勒展开式)通俗+本质详解                                  

                                                             

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130456.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LeetCode[5]-最长回文子串_回纹什么意思

    LeetCode[5]-最长回文子串_回纹什么意思给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,”a”,”b”],[“aa”,”b”]]示例 2:输入:s = “a”输出:[[“a”]] 提示:1 <= s.length <= 16s 仅由小写英文字母组成题解暴搜class Solution {public: vector<vector<st

    2022年8月9日
    7
  • matlab fopen fread_matlab中prctile函数

    matlab fopen fread_matlab中prctile函数matlab中length函数length(x)在matlab中是什么意思?小编能记住你的一点一滴,你却忘了小编的一丝一毫。iflength(h)>1||h<0||h>2*breturn是什么意思?爱的仓促,就像行走于沙漠,风一场就没有了后路。length(x0)为数列的长度,即它里面有多少个元素。n=length(A):如果A为非空数组,返回行数和列数两者之间数…

    2022年9月13日
    3
  • native2ascii命令找不到_native method

    native2ascii命令找不到_native method 背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。 1、native2ascii简介:native2asci…

    2022年9月12日
    2
  • SpringSecurity配置跨域访问[通俗易懂]

    SpringSecurity配置跨域访问[通俗易懂]说明java后端web服务有很多种方法可以实现跨域访问,配置很简单,今天这里我们用SpringSecurity的方式配置跨域访问,配置方法如下:packagecom.wisea.config;importorg.springframework.context.annotation.Bean;importorg.springframework.security.config.annotation.web.builders.HttpSecurity;importorg.springframe

    2022年9月1日
    2
  • Flake8_quakemaker

    Flake8_quakemakerFlake8简介转载自:http://www.malike.net.cn/blog/2013/10/23/flake8-tutorial/| COMMENTSFlake8包装了下列工具:PyFlakes:静态检查Python代码逻辑错误的工具。pep8:静态检查PEP8编码风格的工具。NedBatchelder’sMcCabescript:静态

    2022年9月13日
    2
  • OnContextMenu事件

    OnContextMenu事件用oncontextmenu事件单禁用右键菜单 一个页面中,BODY中用oncontextmenu='returnfalse'来取消鼠标右键;在JS中设置oncontext

    2022年7月2日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号