全微分
小象实战讲义 · 人工智能数学基础
在上一节中,我们学习了如何从多个方向考察二元函数的变化率,即偏导数。然而,偏导数只描述了沿坐标轴方向的局部变化。本节我们将引入一个更强大的工具——全微分,它能用一个线性表达式来整体近似函数在任意方向上的微小变化,这是理解多元函数局部线性化、梯度下降等优化算法的基础。学完本节,你将能计算多元函数的全微分,并理解其与偏导数的深刻联系与区别。
💡 核心导读
本节将带你从熟悉的“一元微分”出发,逐步构建“多元全微分”的完整知识体系:
- 概念迁移:回顾一元函数微分的几何意义(线性近似),将其思想推广到二元函数的曲面,理解全微分的核心是“用切平面近似曲面”。
- 严格定义:学习二元函数全微分的数学定义,掌握“全增量”、“线性主部”和“高阶无穷小”等关键术语。
- 核心公式:推导并掌握可微函数全微分的计算公式:dz=fx(x0,y0)dx+fy(x0,y0)dy,并理解其向量形式(梯度点乘位移向量)。
- 重要关系:辨析“可微”、“偏导数存在”与“偏导数连续”三者之间的关系,明确可微是更强的条件。
- 计算实战:通过具体例题,掌握计算给定函数在某点全微分的标准流程。
从一元微分到多元微分
我们先回顾一元函数 y=f(x) 在点 x0 处可微的定义。当自变量从 x0 变化 Δx 时,函数值的增量 Δy 可以表示为:
Δy=f(x0+Δx)−f(x0)=AΔx+o(Δx)
其中 A 是一个与 Δx 无关的常数(即导数 f′(x0)),AΔx 称为线性主部,o(Δx) 是比 Δx 更高阶的无穷小量。其几何意义是,在点 (x0,f(x0)) 附近,曲线可以用其切线 y=f(x0)+f′(x0)(x−x0) 来近似。
对于二元函数 z=f(x,y),其图像是一个曲面。我们自然要问:能否在点 (x0,y0) 附近,用一个平面来近似这个曲面?答案是肯定的,这正是全微分的几何内涵。
与一元情形类似,我们考虑自变量的全增量 (Δx,Δy) 所引起的函数值的全增量 Δz:
Δz=f(x0+Δx,y0+Δy)−f(x0,y0)
如果这个全增量 Δz 也能被分解为一个关于 Δx,Δy 的线性部分,再加上一个更高阶的无穷小量,那么我们就说函数在该点可微,这个线性部分就是全微分。
二元函数全微分的定义
定义(全微分):设函数 z=f(x,y) 在点 P0(x0,y0) 的某邻域内有定义。若函数在点 P0 处的全增量 Δz 可表示为
Δz=AΔx+BΔy+o(ρ)
其中 A,B 是与 Δx,Δy 无关的常数(仅与点 P0 有关),ρ=(Δx)2+(Δy)2 表示自变量变化点 (x0+Δx,y0+Δy) 到 P0 的距离,o(ρ) 是当 ρ→0 时比 ρ 更高阶的无穷小量,即 limρ→0ρo(ρ)=0。
则称函数 f(x,y) 在点 P0 可微,并称线性主部 AΔx+BΔy 为函数在点 P0 的全微分,记作 dz 或 df,即
dz=AΔx+BΔy
通常,我们将自变量的增量 Δx,Δy 分别记作 dx,dy,并称之为自变量的微分。因此,全微分也写作:
dz=Adx+Bdy
这个定义的几何解释非常直观:曲面 z=f(x,y) 在点 (x0,y0,z0) 附近,可以被一个平面 z=z0+A(x−x0)+B(y−y0) 很好地近似。这个平面就是曲面在该点的切平面。
可微的条件与全微分公式
定义中的常数 A 和 B 究竟是什么?与一元函数类似,它们就是函数在该点的偏导数。
定理(可微的必要条件):如果函数 z=f(x,y) 在点 (x0,y0) 可微,则
- 函数在该点连续。
- 函数在该点的两个偏导数 fx(x0,y0) 和 fy(x0,y0) 必定存在,且 A=fx(x0,y0),B=fy(x0,y0)
证明思路:在可微定义式 Δz=AΔx+BΔy+o(ρ) 中,令 Δy=0,则 ρ=∣Δx∣。此时, Δz=f(x0+Δx,y0)−f(x0,y0)=AΔx+o(∣Δx∣) 两边同除以 Δx 并取极限 Δx→0,即得 fx(x0,y0)=Δx→0limΔxΔz=A 同理可证 B=fy(x0,y0)。
由此,我们得到了全微分公式:若 z=f(x,y) 在点 (x0,y0) 可微,则其全微分为
dz=fx(x0,y0)dx+fy(x0,y0)dy
这个公式可以自然地推广到 n 元函数 u=f(x1,x2,…,xn):
du=∂x1∂fdx1+∂x2∂fdx2+⋯+∂xn∂fdxn
向量形式:全微分公式有非常简洁的向量表示。记位移向量 dx=(dx,dy)T,并定义函数在点 x0 的梯度(Gradient)为向量 ∇f(x0)=(∂x∂f(x0),∂y∂f(x0))T 则全微分可以写成梯度与位移向量的内积: dz=∇f(x0)⋅dx 这个形式在高维空间和优化理论中至关重要。
那么,偏导数存在是否就意味着函数可微呢?在一元函数中,可导等价于可微。但在多元函数中,情况更为复杂。
定理(可微的充分条件):如果函数 z=f(x,y) 在点 (x0,y0) 的某一邻域内偏导数 fx,fy 存在且连续,则函数在该点可微。
关键区别:
- 一元函数:可微 ⟺ 可导。
- 多元函数:偏导数存在(可导) ⇏ 可微。 可微要求更强,一阶偏导数连续是可微的充分条件(即属于 C1 类的函数一定可微)。
对于我们在分析和人工智能中遇到的大多数初等函数(如多项式、指数、对数、三角函数及其复合函数),它们在其定义域内通常是无限次可微的(C∞ 类),自然满足偏导数连续的条件。因此,对于这些“性质良好”的函数,只要偏导数存在,我们就可以放心地使用全微分公式。但我们必须从概念上牢记:全微分(可微)是一个比偏导数存在更强的局部性质。
全微分的计算示例
计算全微分的步骤非常直接:
- 求出函数的所有一阶偏导数。
- 将指定点的坐标代入偏导数,得到数值。
- 代入全微分公式 dz=fxdx+fydy。
例:设函数 u=(xy)z,求其在点 P(1,2,−1) 处的全微分 du。
解: 首先计算三个一阶偏导数。将 u 写为 u=yzx−z 更便于求导。
- 对 x 求偏导,将 y,z 视为常数: ∂x∂u=−zyzx−z−1=−z(xy)zx1
- 对 y 求偏导,将 x,z 视为常数: ∂y∂u=zyz−1x−z=z(xy)z−1x1
- 对 z 求偏导,将 x,y 视为常数。此时 u=az,其中 a=y/x,故: ∂z∂u=(xy)zln(xy)
接下来,将点 P(1,2,−1) 的坐标 (x,y,z)=(1,2,−1) 代入各偏导数:
- ∂x∂uP=−(−1)⋅(12)−1⋅11=1⋅21⋅1=21
- ∂y∂uP=(−1)⋅(12)−2⋅11=−1⋅41⋅1=−41
- ∂z∂uP=(12)−1⋅ln(12)=21ln2
最后,代入 n 元函数全微分公式: du=∂x∂udx+∂y∂udy+∂z∂udz 得到在点 P 处的全微分为: du∣P=21dx−41dy+21ln2dz
用 Python 验证全微分计算
我们可以使用 sympy 符号计算库来验证上述偏导数和全微分的计算过程。
import sympy as sp
# 定义符号变量
x, y, z = sp.symbols('x y z')
# 定义函数 u = (y/x)^z
u = (y / x) ** z
print("函数 u =", u)
print("\n1. 计算偏导数:")
# 计算关于x的偏导数
u_x = sp.diff(u, x)
print("∂u/∂x =", u_x.simplify())
# 计算关于y的偏导数
u_y = sp.diff(u, y)
print("∂u/∂y =", u_y.simplify())
# 计算关于z的偏导数
u_z = sp.diff(u, z)
print("∂u/∂z =", u_z.simplify())
print("\n2. 在点 P(1, 2, -1) 处求值:")
# 代入点 P(1, 2, -1)
P = {x: 1, y: 2, z: -1}
u_x_val = u_x.subs(P).evalf()
u_y_val = u_y.subs(P).evalf()
u_z_val = u_z.subs(P).evalf()
print(f"∂u/∂x|_P = {u_x_val}")
print(f"∂u/∂y|_P = {u_y_val}")
print(f"∂u/∂z|_P = {u_z_val}")
print("\n3. 写出在点 P 的全微分表达式:")
# 定义自变量的微分符号
dx, dy, dz = sp.symbols('dx dy dz')
du = u_x_val*dx + u_y_val*dy + u_z_val*dz
print(f"du|_P = {du}")
📝 动手练一练
概念辨析:判断下列说法是否正确,并说明理由。
- (a) 若二元函数 f(x,y) 在点 (x0,y0) 处偏导数 fx 和 fy 都存在,则 f 在该点可微。
- (b) 若二元函数 f(x,y) 在点 (x0,y0) 处可微,则 f 在该点的两个偏导数必定连续。
- (c) 函数 f(x,y)=∣xy∣ 在原点 (0,0) 处的偏导数存在,但不可微。
计算全微分:求函数 z=ex2−y2sin(2xy) 在点 (0,π/4) 处的全微分 dz。
参考答案:
- (a) 错误。偏导数存在是可微的必要条件,而非充分条件。需要偏导数连续才能保证可微。
- (b) 错误。可微可以推出偏导数存在,但不能推出偏导数连续。存在可微但偏导数不连续的函数。
- (c) 正确。可以验证 fx(0,0)=fy(0,0)=0。但考虑增量 Δz=f(Δx,Δx)−f(0,0)=∣Δx∣,它与 ρ=2∣Δx∣ 是同阶无穷小,无法写成 0⋅Δx+0⋅Δy+o(ρ) 的形式,故不可微。
- 首先计算偏导数: fx=ex2−y2[2xsin(2xy)+2ycos(2xy)],fy=ex2−y2[−2ysin(2xy)+2xcos(2xy)] 在点 (0,π/4) 处:fx(0,π/4)=e0−π2/16[0+2⋅(π/4)cos(0)]=(π/2)e−π2/16,fy(0,π/4)=e−π2/16[−2⋅(π/4)sin(0)+0]=0。 因此,全微分 dz∣(0,π/4)=2πe−π2/16dx+0⋅dy=2πe−π2/16dx。
本章小结
本节我们深入探讨了多元函数微分的核心概念——全微分。
- 核心思想:全微分是函数局部线性化的数学描述。对于二元函数,就是用切平面来近似曲面。
- 数学定义:函数可微意味着全增量 Δz 能分解为线性主部 AΔx+BΔy 与一个关于距离 ρ=(Δx)2+(Δy)2 的高阶无穷小量 o(ρ) 之和。
- 核心公式:若函数可微,则 dz=fxdx+fydy。其向量形式为梯度与自变量微分向量的内积。
- 关键关系:理清了“可微”、“偏导存在”、“偏导连续”三者的关系。可微最强,它要求偏导存在,但偏导存在推不出可微;偏导连续是保证可微的一个常用充分条件。
行动清单 学完本节,你可以立即:
- 练习计算:找2-3个多元函数(如 z=x3y+ln(xy)),手动计算其在某点的偏导数和全微分,并用 Python (sympy) 验证结果。
- 几何验证:对于简单函数如 z=x2+y2,在一点(如 (1,1))写出其切平面方程(即全微分定义的线性部分),并与曲面图形对比,直观理解“线性近似”。
- 概念自测:尝试构造或查找一个“偏导数存在但不可微”的二元函数例子,加深对多元微分复杂性的理解。
— 小象教研组