泰勒定理

泰勒展开是一个很有趣的方法。应该大部分人都看过下面这么一条定理:

泰勒定理:若函数f(x)在闭区间[a,b]上存在直至n阶的连续导函数,在开区间(a,b)内存在(n+1)阶导函数,则对任意给定的x,x0∈[a,b]x,x0∈[a,b]x,x_0\in [a,b],至少存在一点ξ∈(a,b)ξ∈(a,b)\xi \in (a,b),使得

f(x)=+f(x0)+f ′(x0)(x−x0)+f ′′(x0)2!(x−x0)2+⋯f(n)(x0)n!(x−x0)n+f(n+1)(ξ)(n+1)!(x−x0)n+1f(x)=f(x0)+f′(x0)(x−x0)+f″(x0)2!(x−x0)2+⋯+f(n)(x0)n!(x−x0)n+f(n+1)(ξ)(n+1)!(x−x0)n+1

\begin{aligned} f( 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} +\frac{f^{( n+1)} (\xi )}{( n+1) !} (x-x_{0} )^{n+1} \end{aligned}

他的原理也很简单,那就是,当两个函数接近的时候,那么他们在某个点的值肯定相等:f(0)=g(0)f(0)=g(0)f(0)=g(0),
他们的一阶导数在一点上也应该相等f′(0)=g′(0)f′(0)=g′(0)f'(0)=g'(0),
二阶导数也应该相等f′′(0)=g′′(0)f″(0)=g″(0)f''(0)=g''(0),如此类推。。
那么我们能不能用一个多项式函数去逼近这么一个函数呢?而答案正是泰勒展开。

举个例子,假设f(x)是你想逼近的函数,g(x)则是它的二阶泰勒逼近,即: g(x)=f(0)+f′(0)(x−0)+f′′(0)2(x−0)2g(x)=f(0)+f′(0)(x−0)+f″(0)2(x−0)2g(x)=f(0)+f'(0)(x-0)+\frac{f''(0)}{2}(x-0)^2,
于是显然有: g(0)=f(0)。g(x)对x求导:

g′(x)g′′(x)=f′(0)+f′′(0)(x−0)=f′′(0)(185)(186)(185)g′(x)=f′(0)+f″(0)(x−0)(186)g″(x)=f″(0)

\begin{align} g'(x)&=f'(0)+f''(0)(x-0)\\ g''(x)&=f''(0) \end{align}
因此 g′(0)=f′(0)g′(0)=f′(0)g'(0)=f'(0), g′′(0)=f′′(0)g″(0)=f″(0)g''(0)=f''(0)
当级数趋于无穷的时候就能近似任意的函数了。
盗个图:

f(x+y)≈f(x)+f′(ξ)yf(x+y)≈f(x)+f′(ξ)y

f(x+y)\approx f(x)+f'(\xi)y

多元函数的泰勒展开

多元函数的泰勒近似的原理也是类似的,只不过在多元函数中,我们要求的两个函数值相同,变成了有多个点: f(a,b)=g(a,b)f(a,b)=g(a,b)f(a,b)=g(a,b),Df(a,b)=Dg(a,b)Df(a,b)=Dg(a,b)Df(a,b)=Dg(a,b),Hf(a,b)=Hg(a,b)Hf(a,b)=Hg(a,b)Hf(a,b)=Hg(a,b),这里的Df(a,b)是导数矩阵,Hf(a,b)是黑塞矩阵(二阶导),于是多元函数的泰勒展开公式就变成:

f(x)≈f(a)+Df(a)(x−a)+12(x−a)THf(a)(x−a).f(x)≈f(a)+Df(a)(x−a)+12(x−a)THf(a)(x−a).

\begin{align*}f(\textbf{x}) &\approx f(\textbf{a}) + Df(\textbf{a}) (\textbf{x}-\textbf{a})+ \frac{1}{2} (\textbf{x}-\textbf{a})^T Hf(\textbf{a}) (\textbf{x}-\textbf{a}). \end{align*}

其中

Df(a,b)=[∂fx1(a,b),∂fx2(a,b)].Df(a,b)=[∂fx1(a,b),∂fx2(a,b)].

\begin{align*}Df(a,b) = \left[\frac{\partial f}{x_1}(a,b), \frac{\partial f}{x_2}(a,b)\right]. \end{align*}

Hf=⎡⎣⎢⎢⎢⎢∂2f∂x21(a,b)∂2f∂x2 ∂x1(a,b)∂2f∂x1 ∂x2(a,b)∂2f∂x22(a,b)⎤⎦⎥⎥⎥⎥Hf=[∂2f∂x12(a,b)∂2f∂x1∂x2(a,b)∂2f∂x2∂x1(a,b)∂2f∂x22(a,b)]

\mathbf{H} f=\begin{bmatrix} \dfrac{\partial ^{2} f}{\partial x^{2}_{1}}( a,b) & \dfrac{\partial ^{2} f}{\partial x_{1} \ \partial x_{2}}( a,b)\\ \dfrac{\partial ^{2} f}{\partial x_{2} \ \partial x_{1}}( a,b) & \dfrac{\partial ^{2} f}{\partial x^{2}_{2}}( a,b) \end{bmatrix}

举个例子,一个二元函数f(x,y)在点(a,b)上的的泰勒展开式为:

f(x,y)≈+=++f(a,b)+[∂fx(a,b),∂fy(a,b)][x−ay−b]12[x−ay−b]⎡⎣⎢⎢⎢∂2f∂x2(a,b)∂2f∂y ∂x(a,b)∂2f∂x ∂y(a,b)∂2f∂y2(a,b)⎤⎦⎥⎥⎥[x−ay−b]f(a,b)+(x−a)f′x(a,b)+(y−b)f′y(a,b)12!(x−a)2f′′xx(a,b)+12!(x−a)(y−b)f′′xy(a,b)12!(x−a)(y−b)f′′yx(a,b)+12!(y−b)2f′′yy(a,b)f(x,y)≈f(a,b)+[∂fx(a,b),∂fy(a,b)][x−ay−b]+12[x−ay−b][∂2f∂x2(a,b)∂2f∂x∂y(a,b)∂2f∂y∂x(a,b)∂2f∂y2(a,b)][x−ay−b]=f(a,b)+(x−a)fx′(a,b)+(y−b)fy′(a,b)+12!(x−a)2fxx″(a,b)+12!(x−a)(y−b)fxy″(a,b)+12!(x−a)(y−b)fyx″(a,b)+12!(y−b)2fyy″(a,b)

\begin{aligned} f(x,y)\approx & f(a,b)+\left[\frac{\partial f}{x} (a,b),\frac{\partial f}{y} (a,b)\right]\begin{bmatrix} x-a\\ y-b \end{bmatrix}\\ + &\frac{1}{2} \begin{bmatrix} x-a & y-b \end{bmatrix}\begin{bmatrix} \dfrac{\partial ^{2} f}{\partial x^{2}}( a,b) & \dfrac{\partial ^{2} f}{\partial x \ \partial y}( a,b)\\ \dfrac{\partial ^{2} f}{\partial y \ \partial x}( a,b) & \dfrac{\partial ^{2} f}{\partial y^{2}}( a,b) \end{bmatrix}\begin{bmatrix} x-a\\ y-b \end{bmatrix}\\ = & f(a,b)+(x-a)f'_{x} (a,b)+(y-b)f'_{y} (a,b)\\ + & \frac{1}{2!} (x-a)^{2} f''_{xx} (a,b)+\frac{1}{2!} (x-a)(y-b)f''_{xy} (a,b)\\ + & \frac{1}{2!} (x-a)(y-b)f''_{yx} (a,b)+\frac{1}{2!} (y-b)^{2} f''_{yy} (a,b) \end{aligned}

黑塞矩阵更一般的形式可以写成:

Hf(x1,x2,...,xn)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x21∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.Hf(x1,x2,...,xn)=[∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x22⋯∂2f∂x2∂xn⋮⋮⋱⋮∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn2].

{\mathbf Hf(x_1,x_2,...,x_n)}={\begin{bmatrix}{\dfrac {\partial ^{2}f}{\partial x_{1}^{2}}}f}{\partial x_{1}\,\partial x_{2}}}&\cdots f}{\partial x_{1}\,\partial x_{n}}}\\[2.2ex]{\dfrac {\partial ^{2}f}{\partial x_{2}\,\partial x_{1}}}f}{\partial x_{2}^{2}}}&\cdots f}{\partial x_{2}\,\partial x_{n}}}\\[2.2ex]\vdots &\vdots &\ddots &\vdots \\[2.2ex]{\dfrac {\partial ^{2}f}{\partial x_{n}\,\partial x_{1}}}f}{\partial x_{n}\,\partial x_{2}}}&\cdots f}{\partial x_{n}^{2}}}\end{bmatrix}}.

参考资料

https://mathinsight.org/taylors_theorem_multivariable_introduction
https://mathinsight.org/derivative_matrix
https://mathinsight.org/taylor_polynomial_multivariable_examples
https://blog.csdn.net/red_stone1/article/details/70260070
怎样更好地理解并记忆泰勒展开式? - 陈二喜的回答 - 知乎

多元函数的泰勒展开公式相关推荐

  1. 【数学分析】从多元函数的定义一直到多元函数的泰勒展开

    明天有小测,寄! 从多元函数的定义一直到多元函数的泰勒展开 欧氏空间.多元函数的连续 压缩映像原理: Ω ⊂ R m 是有界闭集, f : Ω → R m , 满足: f ( Ω ) ⊂ Q , 并且 ...

  2. 多元函数的泰勒展开(Taylor series expansion)

    多元函数的泰勒展开(Taylor series expansion) 实际优化问题的目标函数往往比较复杂.为了使问题简化,通常将目标函数在某点附近()展开为泰勒(Taylor)多项式来逼近原函数. ① ...

  3. 指数函数泰勒展开式与泰勒展开公式

    如果我们用多项式去无限逼近一个函数,就是将某个函数在一个点上泰勒展开.  泰勒级数是把一个函数展开,化成次方项相加的形式,目的是用相对简单的函数去拟合复杂函数,此时相对简单是看你需要的,一阶指展开的次 ...

  4. 多元函数的高阶微分公式 与 Taylor公式

    设: m,n∈N,m,n≥1,m, n \in \mathbb N, m, n \ge 1, Dj=∂∂xj{\mathrm{D}}_j = \frac {\partial }{\partial x_ ...

  5. C语言 用泰勒展开公式计算sin(x)的值

    一.题目 008:计算直到最后一项的绝对值小于10^-7时,停止计算.x由键盘键入. (书例3.32) 二.代码实现 思路:当最后一项满足绝对值限制条件时,停止累加求和 代码如下: //008:计算s ...

  6. 高等数学:如何理解泰勒展开公式?等价无穷小与泰勒公式的关系是什么?

    泰勒公式 & 等价无穷小的关系 直接说结论: 等价无穷小只是泰勒公式在某个固定阶数上(通常为1阶)的特例. 盲目的使用"等价无穷小"替换,会使你的整个式子丢失"高 ...

  7. 一个符号引发的讨论,对抗攻击算法FGSM的纯粹版:FGNS,附代码

    关注公众号,发现CV技术之美 ▊ 1 引言 是基于梯度迭代攻击中生成对抗样本的开创性工作.我第一次接触相关工作的时候,给我困惑最多的就是论文中为什么要给梯度加上这个符号函数,因为这会导致生成的对抗扰动 ...

  8. 谷歌八年算法工程师分享几点算法学习小技巧

    https://www.toutiao.com/a6651524729897222670/ 2019-01-29 17:50:00 作为一名技术人员,我想大部分人都经历过迷茫的阶段,不知道自己该超那个 ...

  9. python算法工程师需要学什么_一个优秀的算法工程师必须具备哪些素质?

    导言 怎样成为一名优秀的算法工程师?这是很多从事人工智能学术研究和产品研发的同学都关心的一个问题.面对市场对人才的大量需求与供给的严重不足,以及高薪水的诱惑,越来越多的人开始学习这个方向的技术,或者打 ...

  10. 最优化方法之梯度下降法和牛顿法

    大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型.最常见的最优化方法有梯度下降法.牛顿法. 最优化方法: 最优化方法,即寻找函数极值点的 ...

最新文章

  1. quick-cocos2d-x游戏开发【3】——display.newSprite创建向导
  2. tc溜溜865手机投屏卡_这台手机智商为零,却要挑战小米华为!
  3. java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
  4. 【Linux系统】Linux命令之文件管理
  5. Python eval的用法及注意事项
  6. 接口幂等性问题解决方案
  7. iOS Cookie学习(NSHTTPCookieStorage的使用)
  8. 23、java中的网编基础
  9. 关于java的关键字 transient
  10. 从入门到入土:基于Python实现百度查询返回结果真实url读取及域名读取
  11. Solr全文检索学习笔记·记录
  12. 网络抓包工具之Wireshark
  13. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法
  14. 【集训队作业】LYRC
  15. Android移动开发-Android设备利用光线传感器监测光照强度的实现
  16. 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists)
  17. VMware出现点虚拟机和新建虚拟机没反应的解决办法
  18. 玩自动阅读,100部手机去操作,一天可以赚1200?揭秘背后的故事
  19. Java BufferedWriter.write()具有什么功能呢?
  20. 小白兔笑话全集(转)笑死人不偿命

热门文章

  1. 把数字翻译成英文声明.C语言,如何把数字翻译成英文
  2. 图片后缀名批量快速修改
  3. 微信小程序在线考试系统 毕业设计(2)分类
  4. memcached 配置
  5. 程序员如何保护自己的头发
  6. 唱歌气沉丹田怎么做 气沉丹田的口诀
  7. 恒生电子2020届秋季招聘实录(已签offer)
  8. SourceInight快捷键(英文版)
  9. python列表创建操作_python列表操作
  10. Win10开启卓越性能模式