查看全课大纲(第 56 / 93 节)
- 1.概论和集合的定义
- 2.逼疯康托的实数集理论
- 3.常用不等式与映射
- 4.函数及特殊函数
- 5.序列极限的定义
- 6.序列极限的性质与夹逼定理
- 7.重要极限
- 8.无穷小量,无穷大量和一组重要的阶的比较关系
- 9.聚点原理
- 10.函数极限及其性质
- 11.重要极限与等价无穷小
- 12.连续函数
- 13.导数的概念(那些年,扛起牛顿的胡克)
- 14.定义法求导
- 15.函数四则运算的导数与反函数求导法则
- 16.复合函数,隐函数,参数式求导
- 17.不定式求导之“洛必达与伯努利的师生情”
- 18.一阶微分
- 19.高阶导数
- 20.高阶微分
- 21.罗尔中值定理与拉格朗日中值定理
- 22.柯西空降科学院遭排挤
- 23.泰勒公式与泰勒的克妻属性
- 24.利用泰勒展开唯一性定理计算泰勒展开
- 25.泰勒公式的余项估计
- 26.极值问题与导数
- 27.函数凹凸性
- 28.无卵用的渐近线与函数作图
- 29.不定积分的定义
- 30.第一换元法
- 31.第二换元法
- 32.分部积分法
- 33.有理式积分
- 34.三角替换
- 35.定积分的概念
- 36.定积分的性质与积分中值定理
- 37.变上限定积分
- 38.微积分基本定理之“高斯教你如何优雅地装逼”
- 39.定积分的换元法
- 40.奇偶函数与周期函数的定积分
- 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
- 42.旋转体体积
- 43.旋转体侧面积
- 44.极坐标下图形的面积(数学系常用表白曲线)
- 45.欧式空间
- 46.点列极限,开集与闭集
- 47.多元函数的定义
- 48.多元函数的极限
- 49.多元连续函数
- 50.一阶偏导数
- 51.高阶偏导数
- 52.全微分
- 53.方向导数与梯度
- 54.链式法则
- 55.一阶全微分形式的不变性与高阶微分
- 56.多元函数的泰勒公式
- 57.隐函数存在定理与逆映射存在定理
- 58.多元函数的极值
- 59.矩阵基础知识
- 60.行列式的定义与特殊矩阵的行列式
- 61.行列式的性质
- 62.行列式按k行展开
- 63.线性方程组初步与高斯消元法
- 64.齐次线性方程组与Cramer法则
- 65.线性空间
- 66.线性相关与线性无关
- 67.向量组的秩
- 68.矩阵的秩与线性方程组有解的充要条件
- 69.齐次线性方程组的解集结构
- 70.非齐次线性方程组解集结构
- 71.基与维数
- 72.矩阵的乘法
- 73.特殊矩阵
- 74.矩阵乘积的秩与行列式
- 75.矩阵的逆
- 76.正交矩阵
- 77.矩阵对角化与特征值特征向量
- 78.实对称矩阵对角化
- 79.二次型与正定矩阵
- 80.LU分解
- 81.Cholesky分解
- 82.SVD分解
- 83.线搜索
- 84.步长
- 85.最速下降法和牛顿法
- 86.共轭梯度法
- 87.拟牛顿法
- 88.无约束优化
- 89.若干知识点补充(一)
- 90.若干知识点补充(二)
- 91.凸优化问题
- 92.对偶问题(一)
- 93.对偶问题(二)
多元函数的泰勒公式
约 33 分钟
小象实战讲义 · 人工智能数学基础
在上一节,我们学习了多元函数的微分与梯度,它们描述了函数在一点附近的局部线性近似。然而,许多复杂的非线性现象仅用线性模型难以精确刻画。本节我们将学习多元函数的泰勒公式,它提供了一种用多项式(包含线性项、二次项乃至更高次项)来逼近任意光滑函数的强大工具。掌握泰勒公式,是理解后续最优化算法(如梯度下降法的收敛性分析)和机器学习模型(如损失函数的局部近似)中数学原理的关键一步。
💡 核心导读
本节我们将从一元泰勒公式出发,系统性地构建多元泰勒公式的知识体系:
- 起点回顾:重温一元泰勒公式的几何意义与拉格朗日中值定理,为多元推广奠定思想基础。
- 定理推广:将拉格朗日中值定理从一元推广到二元乃至n元,并引入关键工具——全微分算子。
- 公式构建:利用全微分算子,优雅地写出二元及n元函数的泰勒公式,理解其拉格朗日余项与佩亚诺余项两种形式。
- 核心应用:重点掌握二阶泰勒展开,明确其一次项对应梯度,二次项对应海塞矩阵,这是最优化理论的基石。
- 实用技巧:学习利用泰勒展开的唯一性定理简化复杂函数的展开过程,避免繁琐的偏导数计算。
从拉格朗日中值定理到泰勒公式
我们首先回顾一元微积分中的拉格朗日中值定理:若函数 在闭区间 上连续,在开区间 内可导,则至少存在一点 ,使得 其几何意义是:连接函数图像上两点 和 的割线,其斜率等于在该区间内某点 处的切线斜率。
对于多元函数,我们有类似的结论。以二元函数 为例:
定理(二元函数中值定理):若函数 在区域 内具有连续的偏导数, 和 是 内的两点,且连接这两点的直线段 ,则至少存在一点 ,其中 ,使得
这个定理可以看作是“割平面”与“切平面”之间的关系在一段直线路径上的体现。它本质上是将一元中值定理应用于辅助函数 在 上的结果。
若引入全微分算子符号,记 ,则上式右端恰好是函数 在点 处的一阶全微分 。因此,定理可以简洁地写为: 这为我们从一阶近似(中值定理)向高阶近似(泰勒公式)推广提供了自然的线索。
二元函数的泰勒公式
泰勒公式的核心思想是:用一个关于自变量增量的多项式来逼近函数值的增量。对于二元函数 ,在点 附近,我们希望用 的多项式来逼近 。
定理(带拉格朗日余项的泰勒公式):若函数 在点 的某邻域内具有 阶连续偏导数,记 ,则对该邻域内的任意点 ,存在 ,使得 其中,算子 的运算规则是:先将其视为一个符号进行二项式展开,再将展开后的每一项作用到函数 上。例如,当 时: 由于函数具有 阶连续偏导,混合偏导数的求导顺序可以交换。
公式的最后一项 称为拉格朗日余项,它精确地给出了多项式逼近的误差。
在实际应用中,我们更常用的是佩亚诺余项形式,它更简洁地描述了当自变量增量趋于零时余项的阶。
定理(带佩亚诺余项的泰勒公式):若函数 在点 处具有 阶连续偏导数,则 其中 是点 到 的距离, 表示当 时,它是比 更高阶的无穷小量。
这个形式告诉我们,在点 的极小邻域内,函数可以用一个 次多项式来近似,误差是 的高阶无穷小。
泰勒公式的矩阵形式与核心:二阶展开
泰勒公式在多元函数微积分中最重要的应用是其二阶展开形式。让我们明确写出当 时的泰勒公式(佩亚诺余项)。
设函数 在点 处具有二阶连续偏导数,其中 。记增量 ,则
这里:
- 是函数在 处的梯度向量(列向量)。
- 是函数在 处的海塞矩阵,它是一个 的对称矩阵,其第 行第 列元素为 。
- 是向量 的欧几里得范数。
这个二阶泰勒展开是理解最优化算法的核心:
- 一次项 :描述了函数在 处沿方向 的最速上升(或下降)趋势。梯度下降法的方向正是基于此项。
- 二次项 :描述了函数在 附近的曲率信息。牛顿法等二阶优化算法会利用此项来构造更优的搜索方向和步长。
import numpy as np
import sympy as sp
# 示例:计算二元函数在(1,1)处的二阶泰勒展开(佩亚诺余项)
x, y = sp.symbols('x y')
f_expr = sp.sin(sp.pi * x / 2) * sp.sin(sp.pi * y / 2) # f(x,y) = sin(πx/2)sin(πy/2)
x0, y0 = 1, 1
# 计算各阶偏导数在(1,1)处的值
f_val = f_expr.subs({x: x0, y: y0})
# 一阶偏导
f_x = sp.diff(f_expr, x)
f_y = sp.diff(f_expr, y)
f_x_val = f_x.subs({x: x0, y: y0})
f_y_val = f_y.subs({x: x0, y: y0})
# 二阶偏导
f_xx = sp.diff(f_x, x)
f_xy = sp.diff(f_x, y)
f_yy = sp.diff(f_y, y)
f_xx_val = f_xx.subs({x: x0, y: y0})
f_xy_val = f_xy.subs({x: x0, y: y0})
f_yy_val = f_yy.subs({x: x0, y: y0})
print("函数在 (1,1) 处的值: f(1,1) =", f_val)
print("\n一阶偏导数在 (1,1) 处的值:")
print("∂f/∂x =", f_x_val)
print("∂f/∂y =", f_y_val)
print("\n二阶偏导数在 (1,1) 处的值:")
print("∂²f/∂x² =", f_xx_val)
print("∂²f/∂x∂y =", f_xy_val)
print("∂²f/∂y² =", f_yy_val)
# 构建二阶泰勒多项式 T2(Δx, Δy)
Δx, Δy = sp.symbols('Δx Δy')
T2 = (f_val +
f_x_val * Δx + f_y_val * Δy +
(1/2) * (f_xx_val * Δx**2 + 2*f_xy_val * Δx*Δy + f_yy_val * Δy**2))
print(f"\n在点(1,1)处的二阶泰勒多项式(佩亚诺余项)为:")
print(f"T2(Δx, Δy) = {sp.simplify(T2)}")
print("其中 Δx = x-1, Δy = y-1,余项为 o(ρ²),ρ = sqrt(Δx² + Δy²)。")
# 数值验证:在(1.1, 0.9)点比较原函数与泰勒近似的值
test_x, test_y = 1.1, 0.9
Δx_val, Δy_val = test_x - x0, test_y - y0
ρ = np.sqrt(Δx_val**2 + Δy_val**2)
f_true = float(f_expr.subs({x: test_x, y: test_y}))
T2_approx = float(T2.subs({Δx: Δx_val, Δy: Δy_val}))
error = f_true - T2_approx
print(f"\n数值验证:")
print(f"在点 ({test_x}, {test_y}) 处:")
print(f" 原函数值 f = {f_true:.6f}")
print(f" 二阶泰勒近似值 T2 = {T2_approx:.6f}")
print(f" 绝对误差 |f - T2| = {abs(error):.6e}")
print(f" 距离 ρ = {ρ:.4f},误差与 ρ² ({ρ**2:.4f}) 的比值: {abs(error)/ρ**2:.6e}")
# 可以看到误差远小于 ρ²,符合 o(ρ²) 的阶泰勒展开的唯一性定理及其应用
计算高阶泰勒展开时,直接求高阶偏导数可能非常繁琐。泰勒展开的唯一性定理为我们提供了简化计算的强大工具。
定理(泰勒展开的唯一性):设函数 在点 的某邻域内有定义,且能表示为 其中 是关于 的 次多项式。那么, 必定是 在点 处的 阶泰勒多项式。
这个定理意味着,无论我们通过什么方法(例如,利用已知的一元展开式进行组合、乘法等)得到了一个符合上述形式的多项式,它就是我们要找的泰勒展开式。
应用示例:将函数 在点 处展开到二次项(佩亚诺余项)。
我们知道两个基本的一元展开式(在 处): 根据唯一性定理,我们可以直接将 分别替换为 和 ,然后相乘: 展开乘法,并保留所有次数不超过 2 的项(即
📝 动手练一练
直接求导练习:求函数
在点f ( x , y ) = ln ( 1 + x + y ) f(x, y) = \ln(1 + x + y) 处的二阶泰勒多项式(带佩亚诺余项)。 提示:先求出( 0 , 0 ) (0,0) ,f ( 0 , 0 ) f(0,0) ,∂ f ∂ x ( 0 , 0 ) \frac{\partial f}{\partial x}(0,0) 以及所有二阶偏导数在∂ f ∂ y ( 0 , 0 ) \frac{\partial f}{\partial y}(0,0) 的值,然后代入二阶泰勒公式。( 0 , 0 ) (0,0) 利用唯一性定理练习:将函数
在点g ( x , y ) = 1 1 − x − y g(x, y) = \frac{1}{1 - x - y} 处展开到二次项(佩亚诺余项)。 提示:回忆一元展开式( 0 , 0 ) (0,0) ,并令1 1 − t = 1 + t + t 2 + o ( t 2 ) \frac{1}{1-t} = 1 + t + t^2 + o(t^2) 。注意展开后合并同类项时,t = x + y t = x+y 的平方会产生x + y x+y 项。x 2 , 2 x y , y 2 x^2, 2xy, y^2
👉 点击查看参考答案
参考答案:
,f ( 0 , 0 ) = 0 f(0,0)=0 ,∂ f ∂ x ( 0 , 0 ) = 1 \frac{\partial f}{\partial x}(0,0)=1 ,∂ f ∂ y ( 0 , 0 ) = 1 \frac{\partial f}{\partial y}(0,0)=1 ,∂ 2 f ∂ x 2 ( 0 , 0 ) = − 1 \frac{\partial^2 f}{\partial x^2}(0,0)=-1 ,∂ 2 f ∂ y 2 ( 0 , 0 ) = − 1 \frac{\partial^2 f}{\partial y^2}(0,0)=-1 。∂ 2 f ∂ x ∂ y ( 0 , 0 ) = − 1 \frac{\partial^2 f}{\partial x \partial y}(0,0)=-1
二阶泰勒多项式为: ,余项T 2 ( x , y ) = x + y − 1 2 ( x 2 + 2 x y + y 2 ) T_2(x, y) = x + y - \frac{1}{2}(x^2 + 2xy + y^2) 。o ( x 2 + y 2 2 ) o(\sqrt{x^2+y^2}^2) - 利用
,令1 1 − t = 1 + t + t 2 + o ( t 2 ) \frac{1}{1-t}=1+t+t^2+o(t^2) ,则t = x + y t=x+y ,其中g ( x , y ) = 1 + ( x + y ) + ( x + y ) 2 + o ( ( x + y ) 2 ) = 1 + x + y + x 2 + 2 x y + y 2 + o ( ρ 2 ) g(x,y) = 1 + (x+y) + (x+y)^2 + o((x+y)^2) = 1 + x + y + x^2 + 2xy + y^2 + o(\rho^2) 。ρ = x 2 + y 2 \rho=\sqrt{x^2+y^2}
注意: ,且可以证明( x + y ) 2 = x 2 + 2 x y + y 2 (x+y)^2 = x^2+2xy+y^2 。o ( ( x + y ) 2 ) = o ( ρ 2 ) o((x+y)^2) = o(\rho^2)
本章小结
本节我们系统学习了多元函数的泰勒公式,这是连接微分学与最优化理论的核心桥梁。
要点回顾:
- 泰勒公式的本质:用多项式局部逼近光滑函数。二元及n元公式通过全微分算子
得到了统一而优雅的表达。( h ⋅ ∇ ) k \left( \mathbf{h} \cdot \nabla \right)^k - 两种余项:拉格朗日余项给出了逼近误差的精确表达式,适用于理论分析;佩亚诺余项
则更简洁地描述了误差阶数,适用于极限和近似计算。o ( ∥ h ∥ n ) o(\|\mathbf{h}\|^n) - 核心中的核心:二阶泰勒展开
。它清晰地分离了函数的线性部分(梯度)和曲率部分(海塞矩阵)。f ( x 0 + h ) = f ( x 0 ) + ∇ f T h + 1 2 h T H h + o ( ∥ h ∥ 2 ) f(\mathbf{x}_0+\mathbf{h}) = f(\mathbf{x}_0) + \nabla f^T \mathbf{h} + \frac{1}{2} \mathbf{h}^T \mathbf{H} \mathbf{h} + o(\|\mathbf{h}\|^2) - 实用技巧:泰勒展开的唯一性定理允许我们通过组合已知的简单展开式(如
,e x e^x ,sin x \sin x )来推导复杂函数的展开式,避免直接计算高阶偏导的麻烦。1 1 − x \frac{1}{1-x}
📋 行动清单
- 记忆二阶形式:务必熟记并理解二阶泰勒展开的矩阵形式,明确梯度向量和海塞矩阵在其中的角色。
- 练习展开技巧:选取几个二元函数(如
,e x + y e^{x+y} ),分别用直接求导法和唯一性定理法进行二阶展开,并验证结果一致。sin ( x y ) \sin(xy) - 代码验证:仿照示例代码,使用
sympy对你自己展开的结果进行符号求导验证,并使用numpy在几个具体点进行数值误差验证,直观感受 的含义。o ( ∥ h ∥ 2 ) o(\|\mathbf{h}\|^2)
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载第9章讲义(含板书):多元微分学PDF · 28.2MB