多元函数的泰勒展开公式

2023-11-12

泰勒定理

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

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

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

他的原理也很简单,那就是,当两个函数接近的时候,那么他们在某个点的值肯定相等: 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)(x0)+f′′(0)2(x0)2 g ( x ) = f ( 0 ) + f ′ ( 0 ) ( x − 0 ) + f ″ ( 0 ) 2 ( x − 0 ) 2
于是显然有: g(0)=f(0)。g(x)对x求导:

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

因此 g(0)=f(0) g ′ ( 0 ) = f ′ ( 0 ) , g′′(0)=f′′(0) g ″ ( 0 ) = f ″ ( 0 )
当级数趋于无穷的时候就能近似任意的函数了。
盗个图:
这里写图片描述

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

多元函数的泰勒展开

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

f(x)f(a)+Df(a)(xa)+12(xa)THf(a)(xa). f ( x ) ≈ f ( a ) + D f ( a ) ( x − a ) + 1 2 ( x − a ) T H f ( a ) ( x − a ) .

其中

Df(a,b)=[fx1(a,b),fx2(a,b)]. D f ( a , b ) = [ ∂ f x 1 ( a , b ) , ∂ f x 2 ( a , b ) ] .

Hf=2fx21(a,b)2fx2 x1(a,b)2fx1 x2(a,b)2fx22(a,b) H f = [ ∂ 2 f ∂ x 1 2 ( a , b ) ∂ 2 f ∂ x 1   ∂ x 2 ( a , b ) ∂ 2 f ∂ x 2   ∂ x 1 ( a , b ) ∂ 2 f ∂ x 2 2 ( a , b ) ]

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

f(x,y)+=++f(a,b)+[fx(a,b),fy(a,b)][xayb]12[xayb]2fx2(a,b)2fy x(a,b)2fx y(a,b)2fy2(a,b)[xayb]f(a,b)+(xa)fx(a,b)+(yb)fy(a,b)12!(xa)2f′′xx(a,b)+12!(xa)(yb)f′′xy(a,b)12!(xa)(yb)f′′yx(a,b)+12!(yb)2f′′yy(a,b) f ( x , y ) ≈ f ( a , b ) + [ ∂ f x ( a , b ) , ∂ f y ( a , b ) ] [ x − a y − b ] + 1 2 [ x − a y − b ] [ ∂ 2 f ∂ x 2 ( a , b ) ∂ 2 f ∂ x   ∂ y ( a , b ) ∂ 2 f ∂ y   ∂ x ( a , b ) ∂ 2 f ∂ y 2 ( a , b ) ] [ x − a y − b ] = f ( a , b ) + ( x − a ) f x ′ ( a , b ) + ( y − b ) f y ′ ( a , b ) + 1 2 ! ( x − a ) 2 f x x ″ ( a , b ) + 1 2 ! ( x − a ) ( y − b ) f x y ″ ( a , b ) + 1 2 ! ( x − a ) ( y − b ) f y x ″ ( a , b ) + 1 2 ! ( y − b ) 2 f y y ″ ( a , b )

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

Hf(x1,x2,...,xn)=2fx212fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fx2n. H f ( x 1 , x 2 , . . . , x n ) = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ] .

参考资料

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
怎样更好地理解并记忆泰勒展开式? - 陈二喜的回答 - 知乎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多元函数的泰勒展开公式 的相关文章

随机推荐

  • 敏感数据明文传输(密码)

    1 加密过程 加密分为单向和双向 拿登录功能来说 密码的加密发送 双向加密就是可逆的 这边加密 那边解密后跟数据库里的密码比对 单向是不可逆的 这边加密 那边无法解密 比对的方式是从数据库里拿出该用户的密码 进行同样的加密 比对加密后的值是
  • Python 下opencv 应用: 物体数数

    物体数数 物体个数计算 就是计算一个图形中有多少物体 python 下用opencv 打开一个图形文件 图形处理 计算图中物体的个数 除了opencv 要安装好外 还要装好 imutils imutils 的下载和安装在 Python 下应
  • 【深入理解C++】给表达式赋值

    在 C 语言中表达式是不可以被赋值的 但是在 C 中可以 include
  • linux设备驱动之USB主机控制器驱动分析

    inux设备驱动之USB主机控制器驱动分析 本文系本站原创 欢迎转载 转载请注明出处 http ericxiao cublog cn 一 前言 Usb是一个很复杂的系统 在usb2 0规范中 将其定义成了一个分层模型 linux中的代码也是
  • npm安装指定版本的npm、typescript、yarn、lerna并查看版本号+nvm安装切换不同版本node

    nvm安装后 nvm ls列出所有node已安装版本 nvm install 版本号 安装node指定版本 nvm use 版本号 使用 切换 node版本 要使用nvm才能安装npm 先全局卸载 npm uninstall g types
  • 数据库判断

    正确 索引可以加快数据的查找速度 但是会给数据更新带来额外性能消耗 数据库管理系统软件都是基于某种数据模型而设计的 逻辑模型和物理模型都是按照计算机系统的观点对数据建模的 所有教师抽象为一类实体 使用 教师 工号 姓名 性别 表达起来的概念
  • 全连接层

    1 将前一层输出的二维特征图综合起来转化为一维向量 它的每一个节点都与上一层的每个节点连接 2 全连接层的主要作用是将输入图像在经过卷积和池化操作后提取的特征进行压缩 并且根据压缩的特征完成模型的分类功能 在整个卷积神经网络中起到 分类器
  • __attribute__((weak))的使用

    一 背景 我们不确定外部模块是否提供一个函数func 但是我们不得不用这个函数 举个例子 A B两个模块 A模块调用了B模块的函数 但是不确定B模块是否提供了该函数 但是又不得不调用 这个时候在A模块中再申明一个弱符号函数 即用weak 如
  • 浮点精度 加减乘除 原生方法

    关于JavaScript 二进制精度问题 浮点数的计算精度会存在缺失问题 专门去百度了一下解决方案 发现有的不是很全 再不就是在项目里面使用会报错 不支持with用法 等等问题 所以针对这四个方法 自己 写了一下 一般我们是放在utils或
  • Linux 分区扩容

    虚拟机磁盘空间250G 克隆后系统分区空间只有200G 通过resize2fs扩容分区 suer pro 22 244 sudo fdisk l 磁盘 dev sda 268 4 GB 268435456000 字节 524288000 个
  • 【C++】C语言基础部分知识点总结 (指针,函数,内存,关键字,预处理等)(秋招篇)

    文章目录 前言 讲一下32位系统常用数据类型的字节大小 stm32f103为例 讲一些C C 中常见的库 什么是易变变量 代码的转化和构建通常会经历哪几个步骤 预处理 编译 汇编 链接 介绍一下C C 常用的关键字 介绍一些const的使用
  • python 基础绘图(关于随时间序列变动的图的画法)

    画这种图要考虑两点 1 如何生成连续的时间轴 2 如何在图中适当的显示轴标签的样式和数量 import matplotlib pyplot as plt import matplotlib as mpl import numpy as np
  • Collection排序

    使用Collection的sort方法可以对List对象进行排序 其中Record为自己定义的类 包含value index count三个成员变量 ArrayList
  • 记录获取蓝鲸智云token的过程

    一 使用python脚本获取蓝鲸智云token python版本环境 3 11 coding utf 8 import requests def get user token domain user password 模拟用户登录 并返回
  • 判断IP是否能够ping成功

    public bool IsCondtion object condtion CondtionPing vData condtion as CondtionPing int m pingNum 3 if vData null return
  • 操作系统 --- 多线程 Multithreading

    操作系统 多线程 Multi Threading 什么是线程和多线程 进程的缺点 线程 Thread 线程的优点 线程和进程的区别 关于线程的资源 线程独有的资源 线程共享的资源 同步线程和异步线程 Asynchronous thread
  • 物联网采集数据存储到MySQL_物联网中的数据分类、存储与应用

    本文主要介绍物联网的数据从传感器采集 存储到分析处理的过程 数据分类 物联网数据可以分为静态数据和动态数据 静态数据 被测设备地址类 地点 GIS信息 设备名称编号 资产属性相关 设备相关的标签类 设备的规格 静态数据多以结构性 关系型数据
  • 【计算机视觉

    文章目录 一 Mask R CNN 二 Hybrid Task Cascade 三 Cascade Mask R CNN 四 Contour Proposal Network 五 GCNet 六 PANet 七 K Net 八 Center
  • Ubuntu安装“启动引导器”的设备选哪一项,选默认还是选/boot分区?

    如果你要用Ubuntu的引导器代替Windows的引导器 就选 dev sda 如果你要保留Windows的引导器 就选 boot分区 但这样一来 装完Ubuntu重启后 只能启动Windows 还必须在Windows上面安装Easybcd
  • 多元函数的泰勒展开公式

    泰勒定理 泰勒展开是一个很有趣的方法 应该大部分人都看过下面这么一条定理 泰勒定理 若函数f x 在闭区间 a b 上存在直至n阶的连续导函数 在开区间 a b 内存在 n 1 阶导函数 则对任意给定的 x x0 a b x x 0 a