第10章 多元函数的微分 Tip
多元函数的微分是一元函数微分的推广, 它的一个非常重要的应用是求多元函数的极值. 例如 (P115例6) 有一块宽为 24cm 的方形铁板, 把它两边折起来做成一个断面为等腰梯形的水槽, 问怎样的折法才能使得截面面积最大? 设折出来的梯形底边长度为 x , 斜边的角度为 θ , 则截面积可写成
S ( x , θ ) = 24 x sin θ − 2 x 2 sin θ + x 2 sin θ cos θ 这是一个关于 x , θ 的二元函数, 如何求它的最大值呢? 我们可以带着这个问题开始本章的学习.
10.1 多元函数的连续性 Tip
在一元微积分中, 连续函数是我们的主要研究对象, 在多元微积分中同样也是这样. 下面我们先介绍一些准备知识作为铺垫, 然后给出多元函数极限和连续的定义.
10.1.1 区域 Tip
在一元函数中, 我们经常 区间 的概念, 如开区间 ( a , b ) , 闭区间 [ a , b ] . 区域 是区间在高维空间中的推广. 下面我们以 R 2 为例进行介绍, 但所有的概念都可以推广到 R n 中.
Important
邻域
设 P 0 ( x , y ) 是 R 2 中的一点, 给定 δ > 0 , R 2 中所有与点 P 0 距离小于 δ 的点构成一个集合, 称为点 P 0 的 δ -邻域 , 记作 U ( P 0 , δ ) , 即
U ( P 0 , δ ) = { ( x , y ) | ( x − x 0 ) 2 + ( y − y 0 ) 2 < δ } . P 0 与其自己的距离为0, 所以根据上述定义, P 0 ∈ U ( P 0 , δ ) . 但有时候我们希望排除掉 P 0 这一点, 在集合 U ( P 0 , δ ) 中把 P 0 去掉, 由此得到的集合称为 P 0 的 δ -去心邻域 , 记作 U ∘ ( P 0 , δ ) , 即
U ∘ ( P 0 , δ ) = { ( x , y ) | 0 < ( x − x 0 ) 2 + ( y − y 0 ) 2 < δ } . 有时候我们不关心 δ 的具体取值 (比如接下来的问题中), 往往简单用 U ( P 0 ) 和 U ∘ ( P 0 ) 分别表示 P 0 的 邻域 和 去心邻域 .
Important
内点
任意给定一个 R 2 中的集合 D , 任意一点 P 与 D 的关系比符合以下三种关系中的一种:
内点 : 存在点 P 的某个邻域 U ( P ) , 使得 U ( P ) ⊂ D .
外点 : 存在点 P 的某个邻域 U ( P ) , 使得 U ( P ) ∩ D = ∅ .
边界点 : 点 P 的任一邻域内既有属于 D 的点, 又有不属于 D 的点.
集合 D 的全体 边界点 所构成的集合称为 D 的 边界 , 记作 ∂ D .
Note
例
判断 1 < x 2 + y 2 < 2 的内点, 外点和边界点.
Important
开集与闭集
开集 : 集合中的所有点都是其内点
闭集 : 集合的边界属于该集合, ∂ D ∈ D
Important
连通集
顾名思义, 如果集合 D 中的任意两点都可以用折线连接起来, 且该折线上的点都属于 D , 则称 D 为 连通集 .
Important
区域
连通开集 称为 区域 (或 开区域 ); 开区域连同它的边界一起所构成的集合称为 闭区域 .
Note
例子
集合 { ( x , y ) ∣ 1 < x 2 + y 2 < 2 } 是开区域,而集合 { ( x , y ) ∣ 1 ≤ x 2 + y 2 ≤ 2 } 是闭区域.
Important
有界集与无界集
有界集 : 对于平面点集 E ,如果存在正数 r ,使得 E ⊂ U ( O , r ) ,其中 O 为坐标原点,则称 E 为有界集,
无界集 : 如果一个集合不是有界集,则称其为无界集,
10.1.2 多元函数的极限 Tip
下面我们以含有两个自变量的函数, 即二元函数为例引入多元函数及其极限的概念. 相关概念可以很容易推广到含有三个或更多自变量的多元函数中去.
Important
二元函数的定义
设 D 是 R 2 中的非空子集,称映射 f : D → R 为定义在 D 上的 二元函数 ,记为
其中 D 称为函数的 定义域 , x 和 y 称为 自变量 .
Important
二元函数的极限
设 f ( x , y ) 的定义在 D 上的二元函数, P 0 ( x 0 , y 0 ) 是 D 的聚点,如果存在常数 A ,对于任意给定的正数 ε ,总存在正数 δ ,使得当 ( x , y ) ∈ U ( P 0 , δ ) 时,有 | f ( x , y ) − A | < ε ,则称 A 为函数 f ( x , y ) 当 ( x , y ) 趋于 ( x 0 , y 0 ) 时的极限,记作
lim ( x , y ) → ( x 0 , y 0 ) f ( x , y ) = A . Warning
注意从 ( x , y ) 趋于 ( x 0 , y 0 ) 有无数条路径, 极限存在要求 任意一条路径都成立 , 不能仅仅验证从 x -轴趋近和从 y -轴趋近就断言极限存在.
Note
例1: 设 f ( x , y ) = ( x 2 + y 2 ) sin 1 x 2 + y 2 ,求证: lim ( x , y ) → ( 0 , 0 ) f ( x , y ) = 0.
证: 这里函数 f ( x , y ) 的定义域为 D = R 2 ∖ { ( 0 , 0 ) } ,点 O ( 0 , 0 ) 为 D 的聚点,
因为 | f ( x , y ) − 0 | = | ( x 2 + y 2 ) sin 1 x 2 + y 2 − 0 | ≤ x 2 + y 2 ,
可见, ∀ ε > 0 ,取 δ = ε ,则当 0 < ( x − 0 ) 2 + ( y − 0 ) 2 < δ ,
即 P ( x , y ) ∈ D ∩ U ( 0 , δ ) 时,总有 | f ( x , y ) − 0 | < ε 成立,所以 lim ( x , y ) → ( 0 , 0 ) f ( x , y ) = 0.
例2: 考察函数在 ( 0 , 0 ) 处的极限, f ( x , y ) = { x y x 2 + y 2 , x 2 + y 2 ≠ 0 , 0 , x 2 + y 2 = 0. .
解: 首先, 我们看当点 P ( x , y ) 沿 x 轴趋于点 ( 0 , 0 ) 时有,
又当点 P ( x , y ) 沿 y 轴趋于点 ( 0 , 0 ) 时,
虽然以上述两种特殊方式(沿 x 轴或沿 y 轴)趋于原点时函数的极限存在且相等,但是不能以此断言该函数的极限存在. 例如, 当点 P ( x , y ) 沿着直线 y = k x 趋于点 ( 0 , 0 ) 时,有
k 不同极限也不同, 由此可以断言函数在 ( 0 , 0 ) 处的极限不存在.
例3: 求 lim ( x , y ) → ( 0 , 2 ) sin ( x y ) x .
解: 函数 sin ( x y ) x 的定义域为 D = { ( x , y ) | x ≠ 0 , y ∈ R } , P 0 ( 0 , 2 ) 为 D 的聚点,
lim ( x , y ) → ( 0 , 2 ) sin ( x y ) x = lim ( x , y ) → ( 0 , 2 ) [ sin ( x y ) x y ⋅ y ] = lim x y → 0 sin ( x y ) x y ⋅ lim y → 2 y = 1 ⋅ 2 = 2 10.1.3 多元函数的连续性 Tip
下面我们仍然以二元函数为例引入多元函数连续的概念. 相关概念可以很容易推广到含有三个或更多自变量的多元函数中去.
Important
二元函数连续性
设 f ( x , y ) 为定义在 D 上的二元函数, P 0 ( x 0 , y 0 ) 为 D 的聚点,且 P 0 ∈ D ,如果 lim ( x , y ) → ( x 0 , y 0 ) f ( x , y ) = f ( x 0 , y 0 ) , 则称函数 f ( x , y ) 在点 P 0 ( x 0 , y 0 ) 连续, 进一步, 如果函数 f ( x , y ) 在 D 内 每一点都连续 ,则称函数 f ( x , y ) 为 D 上的 连续函数 .
间断点
设函数 f ( x , y ) 的定义域为 D , P 0 ( x 0 , y 0 ) 是 D 的聚点,如果函数 f ( x , y ) 在点 P 0 ( x 0 , y 0 ) 不连续 ,那么称 P 0 ( x 0 , y 0 ) 为函数 f ( x , y ) 的 间断点 ,
Important
连续函数的性质
与 闭区间 上一元连续函数的性质相类似,在 有界闭区域 上连续的多元函数具有如下性质:
性质1: 最大值与最小值 有界闭区域 D 上的多元连续函数必定在 D 上有界,且能取到它的最大值和最小值,
性质2: 介值定理 有界闭区域 D 上的多元连续函数能取到介于最大值和最小值之间的任何值,
10.2 偏导数 Tip固定其它变量, 看一个变量变化对函数值的影响.
Important偏导数
设函数 z = f ( x , y ) 在点 ( x 0 , y 0 ) 的某一邻域内有定义,固定 y = y 0 让 x 在 x 0 附近变化, 若极限
(2-1) lim Δ x → 0 f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) Δ x 存在, 则称此极限为函数 z = f ( x , y ) 在点 ( x 0 , y 0 ) 处对 x 的 偏导数 ,记作:
或 ∂ z ∂ x | x = x 0 , ∂ f ∂ x | x = x 0 , z x | x = x 0 或 f x ( x 0 , y 0 ) 类似地, 函数 z = f ( x , y ) 对 y 的偏导数为:
lim Δ y → 0 f ( x 0 , y 0 + Δ y ) − f ( x 0 , y 0 ) Δ y 记作:
或 ∂ z ∂ y | y = y 0 , ∂ f ∂ y | y = y 0 , z y | y = y 0 或 f y ( x 0 , y 0 ) Warning偏导函数
若 z = f ( x , y ) 在区域 D 内每一点 ( x , y ) 处对 x 的偏导数存在, 则由此构成的函数称为 偏导函数 ,记作:
对 y 的偏导函数记为:
Note
例1:求分段函 z = f ( x , y ) = { x y x 2 + y 2 , x 2 + y 2 ≠ 0 0 , x 2 + y 2 = 0 在点 (0,0) 处的偏导数.
解:
f x ( 0 , 0 ) = lim Δ x → 0 f ( 0 + Δ x , 0 ) − f ( 0 , 0 ) Δ x = lim Δ x → 0 0 − 0 Δ x = 0
f y ( 0 , 0 ) = lim Δ y → 0 f ( 0 , 0 + Δ y ) − f ( 0 , 0 ) Δ y = lim Δ y → 0 0 − 0 Δ y = 0
Important
高阶偏导数
对偏导函数再求偏导数称为 二阶偏导数 , 以此类推还有三阶偏导数和更高阶的偏导数.
Warning
二阶偏导数的四种形式
对 x 的二阶偏导:
∂ ∂ x ( ∂ z ∂ x ) = ∂ 2 z ∂ x 2 = f x x ( x , y )
先对 x 后对 y 的混合偏导:
∂ ∂ y ( ∂ z ∂ x ) = ∂ 2 z ∂ x ∂ y = f x y ( x , y )
先对 y 后对 x 的混合偏导:
∂ ∂ x ( ∂ z ∂ y ) = ∂ 2 z ∂ y ∂ x = f y x ( x , y )
对 y 的二阶偏导:
∂ ∂ y ( ∂ z ∂ y ) = ∂ 2 z ∂ y 2 = f y y ( x , y )
Note
例:设函数 z = x 3 y 2 − 3 x y 3 − x y + 1 ,求下列高阶偏导数:
及 ∂ 2 z ∂ x 2 , ∂ 2 z ∂ y ∂ x , ∂ 2 z ∂ x ∂ y , ∂ 2 z ∂ y 2 及 ∂ 3 z ∂ x 3 .
解: 先求一阶偏导数:
∂ z ∂ x = 3 x 2 y 2 − 3 y 3 − y
∂ z ∂ y = 2 x 3 y − 9 x y 2 − x
然后求二阶偏导数:
∂ 2 z ∂ x 2 = ∂ ∂ x ( 3 x 2 y 2 − 3 y 3 − y ) = 6 x y 2
∂ 2 z ∂ y ∂ x = ∂ ∂ y ( 3 x 2 y 2 − 3 y 3 − y ) = 6 x 2 y − 9 y 2 − 1
∂ 2 z ∂ x ∂ y = ∂ ∂ x ( 2 x 3 y − 9 x y 2 − x ) = 6 x 2 y − 9 y 2 − 1
∂ 2 z ∂ y 2 = ∂ ∂ y ( 2 x 3 y − 9 x y 2 − x ) = 2 x 3 − 18 x y
最后求三阶偏导数
∂ 3 z ∂ x 3 = ∂ ∂ x ( 6 x y 2 ) = 6 y 2
Important
二阶混合偏导数定理
如果函数 z = f ( x , y ) 的二阶混合偏导数 和 ∂ 2 z ∂ y ∂ x 和 ∂ 2 z ∂ x ∂ y 在区域 D 内连续,那么在该区域内必有:
即: 二阶混合偏导数在连续条件下与求导次序无关 ,
Note
例1:验证函数 z = ln x 2 + y 2 满足拉普拉斯方程 ∂ 2 z ∂ x 2 + ∂ 2 z ∂ y 2 = 0 .
证明: 首先将函数化简为:
z = 1 2 ln ( x 2 + y 2 ) ∂ z ∂ x = x x 2 + y 2
∂ z ∂ y = y x 2 + y 2
∂ 2 z ∂ x 2 = y 2 − x 2 ( x 2 + y 2 ) 2
∂ 2 z ∂ y 2 = x 2 − y 2 ( x 2 + y 2 ) 2
验证方程
将二阶偏导数相加:
∂ 2 z ∂ x 2 + ∂ 2 z ∂ y 2 = y 2 − x 2 + x 2 − y 2 ( x 2 + y 2 ) 2 = 0
例2:证明函数 u = 1 r 满足拉普拉斯方程 ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 + ∂ 2 u ∂ z 2 = 0 ,其中 r = x 2 + y 2 + z 2 .
证明:
∂ u ∂ x = − 1 r 2 ⋅ ∂ r ∂ x = − x r 3
∂ 2 u ∂ x 2 = − 1 r 3 + 3 x 2 r 5
由对称性可得:
∂ 2 u ∂ y 2 = − 1 r 3 + 3 y 2 r 5 , ∂ 2 u ∂ z 2 = − 1 r 3 + 3 z 2 r 5
验证方程 ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 + ∂ 2 u ∂ z 2 = − 3 r 3 + 3 ( x 2 + y 2 + z 2 ) r 5 = − 3 r 3 + 3 r 2 r 5 = 0
10.3 全微分 Tip
在学习全微分的知识之前, 我们来回顾一下 一元函数微分 , 对于函数 y = f ( x ) , 其增量可表示为
接下来我们要把上述关系推广多元函数, 从而将函数值的变化于自变量的变化联系起来.
Warning
全微分的几何理解
Note
例1: z ( x , y ) = x + y .
解:
变量变化: x → x + Δ x , y → y + Δ y
函数增量计算: z ( x + Δ x , y + Δ y ) = ( x + Δ x ) + ( y + Δ y )
增量分解: Δ z = z ( x + Δ x , y + Δ y ) − z ( x , y ) = Δ x + Δ y
偏导数表示: ∂ z ∂ x = 1 , ∂ z ∂ y = 1
全微分公式: d z = d x + d y
例2:函数 z ( x , y ) = x 2 + 2 y 3 .
解:
考虑自变量的微小变化:
{ x → x + d x y → y + d y
函数增量计算: 高 阶 无 穷 小 项 z ( x + d x , y + d y ) = ( x + d x ) 2 + 2 ( y + d y ) 3 = x 2 + 2 x d x + d x 2 + 2 ( y 3 + 3 y 2 d y + 3 y d y 2 + d y 3 ) = x 2 + 2 y 3 + 2 x d x + 6 y 2 d y + d x 2 + 6 y d y 2 + 2 d y 3 ⏟ 高阶无穷小项
线性主部提取: 保留一阶增量项
Δ z ≈ 2 x d x + 6 y 2 d y
偏导数计算:
和 ∂ z ∂ x = 2 x 和 ∂ z ∂ y = 6 y 2
全微分公式: d z = ∂ z ∂ x d x + ∂ z ∂ y d y = 2 x d x + 6 y 2 d y
例3: S = 1 2 ( L − 2 x + L − 2 x + 2 x cos θ ) x sin θ .
解:
化简: S ( x , θ ) = L x sin θ − 2 x 2 sin θ + x 2 sin θ cos θ
变量代换过程: x → x + Δ x , θ → θ + Δ θ
函数增量展开:
S ( x + Δ x , θ + Δ θ ) = L ( x + Δ x ) sin ( θ + Δ θ ) − 2 ( x + Δ x ) 2 sin ( θ + Δ θ ) + ( x + Δ x ) 2 sin ( θ + Δ θ ) cos ( θ + Δ θ )
线性近似处理(保留一阶项):
Δ S ≈ ( L sin θ − 4 x sin θ + 2 x sin θ cos θ ) Δ x + ( L x cos θ − 2 x 2 cos θ − x 2 sin 2 θ + x 2 cos 2 θ ) Δ θ
偏导数提取:
{ ∂ S ∂ x = L sin θ − 4 x sin θ + x sin θ cos θ ∂ S ∂ θ = L x cos θ − 2 x 2 cos θ + x 2 ( cos 2 θ − sin 2 θ )
全微分公式: d S = ∂ S ∂ x d x + ∂ S ∂ θ d θ
最终结果: d S = sin θ ( L − 4 x + 2 x cos θ ) d x + [ x cos θ ( L − 2 x ) + x 2 cos 2 θ ] d θ
10.3.1 链式法则 Tip
全微分公式能够表示因变量 z 对自变量 x , y 的依赖关系。如果我们把全微分公式稍微变形,就能非常自然地推导出多元微积分中极其重要的 链式法则 (Chain Rule) 。无论是物理学中寻找随时间变化的变化率,还是在不同坐标系(如直角坐标与极坐标)之间进行变量替换,链式法则都不可或缺。
Important
一元函数与多元函数复合的情形
设 z = f ( u , v ) ,而 u = u ( t ) , v = v ( t ) 。
则复合函数 z 对 t 的全导数公式为:
多元函数与多元函数复合的情形
更一般地,如果中间变量本身又是多个变量的函数,例如 u = u ( x , y ) , v = v ( x , y ) 。
则复合函数分别对 x 和 y 的偏导数法则为:
Note
同济教材 P78 例3: 设 z = u v + sin t ,而 u = e t , v = cos t ,求全导数 d z d t .
解:
注意这里 z 不仅通过 u , v 依赖于 t ,还直接依赖于 t 。根据链式法则:
d z d t = ∂ z ∂ u d u d t + ∂ z ∂ v d v d t + ∂ z ∂ t = v ⋅ e t + u ⋅ ( − sin t ) + cos t = e t cos t − e t sin t + cos t = e t ( cos t − sin t ) + cos t .
同济教材 P78 例2: 设 u = e x 2 + y 2 + z 2 ,而 z = x 2 sin y ,求 ∂ u ∂ x 与 ∂ u ∂ y .
解:
这里的 z 是中间变量,将其视为 z ( x , y ) 。应用链式法则:
∂ u ∂ x = ∂ f ∂ x + ∂ f ∂ z ∂ z ∂ x = 2 x e x 2 + y 2 + z 2 + 2 z e x 2 + y 2 + z 2 ⋅ ( 2 x sin y ) = 2 x ( 1 + 2 z sin y ) e x 2 + y 2 + z 2 .
同理求对 y 的偏导:
∂ u ∂ y = ∂ f ∂ y + ∂ f ∂ z ∂ z ∂ y = 2 y e x 2 + y 2 + z 2 + 2 z e x 2 + y 2 + z 2 ⋅ ( x 2 cos y ) = 2 ( y + x 2 z cos y ) e x 2 + y 2 + z 2 .
10.3.2 全微分形式不变性 Tip
微分符号的奇妙之处在于,无论 u , v 是作为 最终自变量 ,还是作为进一步依赖其他变量的 中间变量 ,全微分的表达式 d z = ∂ z ∂ u d u + ∂ z ∂ v d v 始终保持形式上的一致。这个深刻的性质被称为 全微分形式不变性 。它能帮我们绕开繁琐的链式法则,直接通过代数代入来求导!
Note
同济教材 P81 例6: 设 z = e u sin v ,而 u = x y , v = x + y ,利用全微分形式不变性求偏导数.
解:
先写出外层函数的全微分:
d z = d ( e u sin v ) = e u sin v d u + e u cos v d v
再计算中间变量的微分:
d u = d ( x y ) = y d x + x d y
d v = d ( x + y ) = d x + d y
将 d u , d v 直接代入 d z 并合并同类项(像初中代数一样合并 d x 和 d y ):
d z = e u sin v ( y d x + x d y ) + e u cos v ( d x + d y ) = [ y e u sin v + e u cos v ] d x + [ x e u sin v + e u cos v ] d y
比较等式两端 d x 和 d y 的系数,直接就能读出偏导数:
∂ z ∂ x = e x y [ y sin ( x + y ) + cos ( x + y ) ]
∂ z ∂ y = e x y [ x sin ( x + y ) + cos ( x + y ) ]
这个方法比死记链式法则公式要直观、安全得多!
10.3.3 隐函数求导 Tip
在实际问题中,变量之间的关系常常以隐式方程 F ( x , y ) = 0 或 F ( x , y , z ) = 0 的形式给出,直接解出因变量(即求反函数)往往非常繁琐甚至不可能。利用全微分的性质,我们可以极其优雅地绕过这一困难,直接求出隐函数的导数。因为方程恒为零,对其取全微分也必为零。
Important
一元隐函数的求导公式
设方程 F ( x , y ) = 0 确定了隐函数 y = f ( x ) 。
对方程两端取全微分得:
d F = F x d x + F y d y = 0
只要 F y ≠ 0 ,直接移项即可得到一阶导数:
二元隐函数的求导公式
若方程 F ( x , y , z ) = 0 确定了二元隐函数 z = f ( x , y ) 。
当需要计算偏导数 ∂ z ∂ x 时,意味着 y 为常数(即 d y = 0 ),全微分退化为 F x d x + F z d z = 0 :
同理可得:
这个自带负号的公式,正是全微分移项产生的自然结果。
Note
同济教材 P84 例1 (修改版): 验证方程 x 2 + y 2 − 1 = 0 确定了一个隐函数,并求其一阶与二阶导数 d y d x 和 d 2 y d x 2 .
解:
设 F ( x , y ) = x 2 + y 2 − 1 。
容易算得 F x = 2 x , F y = 2 y 。
根据一元隐函数求导公式,得一阶导数:
d y d x = − F x F y = − 2 x 2 y = − x y
进一步求二阶导数(对一阶导数关于 x 再求一次导,注意 y 是 x 的函数):
d 2 y d x 2 = d d x ( − x y ) = − 1 ⋅ y − x ⋅ d y d x y 2 = − y − x ( − x y ) y 2 = − y 2 + x 2 y 3
因为原方程 x 2 + y 2 = 1 ,所以代入后得到最简结果: d 2 y d x 2 = − 1 y 3 。
同济教材 P85 例2: 设 x 2 + y 2 + z 2 − 4 z = 0 ,求 ∂ z ∂ x 及 ∂ 2 z ∂ x 2 .
解:
设 F ( x , y , z ) = x 2 + y 2 + z 2 − 4 z 。
分别求偏导数: F x = 2 x , F z = 2 z − 4 。
当 F z ≠ 0 (即 z ≠ 2 )时,利用公式得:
∂ z ∂ x = − F x F z = − 2 x 2 z − 4 = x 2 − z
再对 x 求一次偏导数得到二阶导(注意把 y 看作常量,而 z 是 x 的函数):
∂ 2 z ∂ x 2 = ∂ ∂ x ( x 2 − z ) = 1 ⋅ ( 2 − z ) − x ⋅ ( − ∂ z ∂ x ) ( 2 − z ) 2 = ( 2 − z ) + x ( x 2 − z ) ( 2 − z ) 2 = ( 2 − z ) 2 + x 2 ( 2 − z ) 3
10.4 梯度与方向导数 10.4.1 梯度 Important
梯度的定义
设二元函数 f ( x , y ) 在区域 D 内具有一阶连续偏导数,则对于任意点 P 0 ( x 0 , y 0 ) ∈ D ,其梯度定义为:
grad f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) j
其中微分算子 ∇ = ∂ ∂ x i + ∂ ∂ y j ,
Note
例3:求 grad 1 x 2 + y 2 .
解: 这里 f ( x , y ) = 1 x 2 + y 2 ,因为
∂ f ∂ x = − 2 x ( x 2 + y 2 ) 2 , ∂ f ∂ y = − 2 y ( x 2 + y 2 ) 2 ,
所以 grad 1 x 2 + y 2 = − 2 x ( x 2 + y 2 ) 2 i − 2 y ( x 2 + y 2 ) 2 j .
例5:设 f ( x , y , z ) = x 3 − x y 2 − z 2 , P 0 ( 1 , 1 , 0 ) ,问 f ( x , y , z ) 在 P 0 处沿什么方向变化最快, 在这个方向的变化率是多少?
解: ∇ f = ∂ f ∂ x i + ∂ f ∂ y j + ∂ f ∂ z k = ( 3 x 2 − y 2 ) i − 2 x y j − 2 z k , ∇ f ( 1 , 1 , 0 ) = 2 i − 2 j − k . f ( x , y , z ) 在 P 0 处沿 ∇ f ( 1 , 1 , 0 ) 的方向增加最快,沿 − ∇ f ( 1 , 1 , 0 ) 的方向减少最快,在这两个方向的变化率分别是 | ∇ f ( 1 , 1 , 0 ) | = 2 2 + ( − 2 ) 2 + 1 2 = 3 , − | ∇ f ( 1 , 1 , 0 ) | = − 3.
例6:求曲面 x 2 + y 2 + z = 9 在点 P 0 ( 1 , 2 , 4 ) 的切平面和法线方程.
解: 设 f ( x , y , z ) = x 2 + y 2 + z ,由梯度与等值面的关系可知,梯度 ∇ f | P 0 = ( 2 x i + 2 y j + k ) | ( 1 , 2 , 4 ) = 2 i + 4 j + k 的方向是等值面 f ( x , y , z ) = 9 在点 P 0 的法线方向,因此切平面方程是 2 ( x − 1 ) + 4 ( y − 2 ) + ( z − 4 ) = 0 ,
即 2 x + 4 y + z = 14 ,
曲面在 P 0 处的法线方程是 为 任 意 常 数 x = 1 + 2 t , y = 2 + 4 t , z = 4 + t ( t 为任意常数 ) .
Important
三元函数的梯度定义与性质
设三元函数 f ( x , y , z ) 在空间区域 G 内具有一阶连续偏导数,则对于点 P 0 ( x 0 , y 0 , z 0 ) i n G ) ,其梯度为:
grad f ( x 0 , y 0 , z 0 ) = ∇ f ( x 0 , y 0 , z 0 ) = f x i + f y j + f z k
其中三维Nabla算子:
∇ = ∂ ∂ x i + ∂ ∂ y j + ∂ ∂ z k
Note
例:对 f ( x , y , z ) = x 2 + y z 在点 ( 1 , 2 , 3 ) 的梯度.
∇ f = ( 2 x , z , y ) | ( 1 , 2 , 3 ) = ( 2 , 3 , 2 )
10.4.2 方向导数 Important
方向导数的定义
设函数 f ( x , y , z ) 在点 P 0 ( x 0 , y 0 , z 0 ) 的某邻域内有定义, l 为从 P 0 出发的给定方向向量, P ( x , y , z ) 为 l 上邻近 P 0 的点,若极限
lim ρ → 0 + f ( P ) − f ( P 0 ) ρ = ∂ f ∂ l | P 0 存在,则称此极限为 f 在 P 0 点沿方向 l 的 方向导数 ,其中 ρ = | P P 0 | .
Warning方向导数与梯度的关系
方向导数等于梯度在该方向上的投影.
10.5 多元函数的极值 10.5.1 无约束极值问题 Note例1:有一宽为24 cm的长方形铁板,把它两边折起来做成一断面为等腰梯形的水槽,问怎样折法才能使断面的面积最大?
解: 设折起来的边长为 x cm,倾角为 α (如图),则梯形断面的下底长为 ( 24 − 2 x ) cm,上底长为 ( 24 − 2 x + 2 x cos α ) cm,高为 ( x sin α ) cm,所以断面面积
A = 1 2 [ ( 24 − 2 x + 2 x cos α ) + ( 24 − 2 x ) ] ⋅ x sin α
即
A = ( 24 x sin α − 2 x 2 sin α + x 2 sin α cos α ) ( 0 < x < 12 , 0 < α ≤ π 2 )
可见断面面积 A = A ( x , α ) ,这就是目标函数,下面求使该函数取得最大值的点 ( x , α ) ,令 { A x = 24 sin α − 4 x sin α + 2 x sin α cos α = 0 A α = 24 x cos α − 2 x 2 cos α + x 2 ( cos 2 α − sin 2 α ) = 0
由于 sin α ≠ 0 , x ≠ 0 ,上述方程组可化为 { 12 − 2 x + x cos α = 0 24 cos α − 2 x cos α + x ( cos 2 α − sin 2 α ) = 0
解这方程组,得 α = π 3 = 60 ∘ , x = 8
根据题意可知断面面积的最大值一定存在,并且在 D = { ( x , α ) | 0 < x < 12 , 0 < α ≤ π 2 } 内取得,通过计算得知 α = π 2 时的函数值比 α = 60 ∘ , x = 8 时的函数值小,又函数在D内只有一个驻点,因此可以断定,当 x = 8 , α = 60 ∘ 时,就能使断面的面积最大.
例2:某厂要用铁板做成一个体积为2 m³的有盖长方体水箱,问当长、宽和高各取怎样的尺寸时,才能使用料最省?
解: 设水箱的长为 x m, 宽为 y m, 则其高应为 2 x y m. 此水箱所用材料的面积为 A = 2 ( x y + y ⋅ 2 x y + x ⋅ 2 x y ) , 即 A = 2 ( x y + 2 x + 2 y ) ( x > 0 , y > 0 ) .
可见材料面积 A = A ( x , y ) 是 x 和 y 的二元函数, 这就是目标函数, 下面求使该函数取得最小值的点 ( x , y ) ,
令 A x = 2 ( y − 2 x 2 ) = 0 , A y = 2 ( x − 2 y 2 ) = 0.
解这方程组, 得 x = 2 3 , y = 2 3 .
根据题意可以知道, 水箱所用材料面积的最小值一定存在, 并在开区域 D = { ( x , y ) | x > 0 , y > 0 } 内取得,又函数在 D 内只有唯一的驻点 ( 2 3 , 2 3 ) , 因此可断定当 x = 2 3 , y = 2 3 时, A 取得最小值,就是说, 当水箱的长为 2 3 m, 宽为 2 3 m, 高为 2 2 3 ⋅ 2 3 = 2 3 m 时, 水箱所用的材料最省.
从这个例子还可看出, 在体积一定的长方体中, 以立方体的表面积为最小,
10.5.1.1 无约束极值的判别法 Tip我们知道,在一元函数中,通过令一阶导数 f ′ ( x ) = 0 我们可以找到驻点,然后通过二阶导数 f ″ ( x ) 的符号可以判断该点是极大值还是极小值。
对于多元函数,我们同样通过令所有一阶偏导数为零来寻找 临界点(驻点) 。但是,多元函数的临界点除了极大值和极小值之外,还有可能是 鞍点(Saddle Point,即在某些方向上是极大,在另一些方向上是极小) 。如何准确对临界点进行分类呢?我们需要用到二阶导数判别法。
Important二元函数的极值充分条件
设函数 z = f ( x , y ) 在临界点 ( x 0 , y 0 ) 的某邻域内连续,且具有一阶及二阶连续偏导数,且满足一阶必要条件: f x ( x 0 , y 0 ) = 0 , f y ( x 0 , y 0 ) = 0 。
我们计算该点处的三个二阶偏导数值,并记为:
A = f x x ( x 0 , y 0 )
B = f x y ( x 0 , y 0 )
C = f y y ( x 0 , y 0 )
构造判别式 Δ = A C − B 2 。则在 ( x 0 , y 0 ) 处是否取得极值的判断准则如下:
当 Δ = A C − B 2 > 0 时,具有极值 。具体而言:
当 Δ = A C − B 2 < 0 时,没有极值 。该点是一个 鞍点 (Saddle Point)。
当 Δ = A C − B 2 = 0 时,无法判断 (退化情形)。该点可能有极值,也可能没有极值,需要借助其他方法或更高阶的导数来另作讨论。
10.5.2 条件极值 Important条件极值 是指函数 f ( x , y , … ) 在满足约束条件 g ( x , y , … ) = 0 的前提下取得的极大值或极小值.
拉格朗日乘数法 (Lagrange Multipliers) 是用于求 带有约束条件的极值问题 的一种重要方法. 假设要求函数 f ( x , y ) 在约束条件 g ( x , y ) = 0 下的极值,
方法
构造拉格朗日函数 L ( x , y , λ ) = f ( x , y ) + λ g ( x , y )
求偏导并列方程组 ∂ L ∂ x = 0 , ∂ L ∂ y = 0 , ∂ L ∂ λ = 0
解这个方程组,得到可疑点(驻点);
将这些点代入 f ( x , y ) ,比较函数值,判断极值.
TipWHY:为什么拉格朗日乘数法有效?
想象我们要最小化(或最大化)函数 f ( x , y ) ,但我们的活动范围被严格限制在约束曲线 g ( x , y ) = c 上。
等高线与相切 :我们在平面上画出固定的约束曲线 g ( x , y ) = c ,然后再画出目标函数 f ( x , y ) 的 等高线 (Level curves) 。当我们改变 f 的值时,等高线会一圈圈扩大或缩小。当 f 的等高线刚好 触碰(相切) 到约束曲线的那一瞬间,我们就找到了这条线上的最小值或最大值!
梯度的平行 :在切点处,两条曲线完全相切,这意味着它们的法线是同一条。我们之前学过, 函数的梯度向量(Gradient)总是垂直于它的等高线 。既然在极值点两曲线相切,那么 f 的梯度 ∇ f 必须与 g 的梯度 ∇ g 平行!
方程的诞生 :数学上,我们用一个比例常数 λ (拉格朗日乘子)来表示两个向量的平行关系:
∇ f = λ ∇ g
将其拆解为分量形式,也就是 f x = λ g x 和 f y = λ g y 。这正是拉格朗日函数 L x = 0 和 L y = 0 移项后所表达的核心本质!
(图注:在极值点处,蓝色的 f 等高线与黄色的约束曲线相切,此时两者的梯度向量 ∇ f 与 ∇ g 必然平行。)
Warning
拉格朗日乘数法只会给你提供 临界点(候选点) 。方程本身 并不会 告诉你它是最大值还是最小值(此时无法使用二阶导数判别法)。你必须将解出来的这些点统一代入原函数 f ( x , y ) 中,通过比较数值的大小,或者结合实际几何背景,来最终敲定谁是极小值,谁是极大值。
Note经典例题
例:求函数 u = x y z 在附加条件 1 x + 1 y + 1 z = 1 a ( x , y , z , a > 0 )下的极值.
解: 构造拉格朗日函数:
L ( x , y , z ) = x y z + λ ( 1 x + 1 y + 1 z − 1 a )
求偏导并令其为零:
{ L x = y z − λ x 2 = 0 L y = x z − λ y 2 = 0 L z = x y − λ z 2 = 0
将各方程分别乘以对应的变量 x , y , z 后相加,代入原条件得:
3 x y z = λ ( 1 x + 1 y + 1 z ) ⟹ 3 x y z = λ a
即:
x y z = λ 3 a
将 λ = 3 a x y z 回代入原偏导方程(因为 x , y , z > 0 ,除以 x y z 不为零),解得唯一驻点:
x = y = z = 3 a
结论 因为问题在给定区域内只有一个驻点,结合问题的实际意义(或者通过比较边界极限),可知函数在点 ( 3 a , 3 a , 3 a ) 处取得极小值:
极 小 u 极小 = ( 3 a ) ( 3 a ) ( 3 a ) = 27 a 3
10.5.3 人工智能中的优化问题 Tip
引例:如何让机器学会画一条“完美”的曲线?
想象我们在做一个科学实验。我们观察到一个隐藏的真实物理规律(比如一个正弦波 y = sin ( 2 π x ) ),但我们在实验室里用仪器测出来的数据往往是不精确的。
假设我们采集到了 N 个数据点 ( x 1 , t 1 ) , ( x 2 , t 2 ) , … , ( x N , t N ) 。由于测量误差(随机噪声)的存在,这些点会在真实的 sin ( 2 π x ) 曲线上下随机波动。
现在,我们要求计算机(AI模型)在 不知道真实规律是正弦函数 的前提下,仅凭这 N 个带噪声的散点,去“猜”并画出一条能够最好地穿过这些点的曲线。
最自然的想法是,我们用一个 M 阶多项式 去拟合它:
y ( x , w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w M x M = ∑ j = 0 M w j x j
这里的 x 是输入, w 0 , w 1 , … , w M 是多项式的系数(在人工智能中通常称为 权重参数 )。
问题来了 :对于给定的数据点,我们到底该怎么确定这组参数 w ,才能让这条多项式曲线“最完美”地贴合数据呢?这就需要引入一种衡量误差的数学标准,也就是接下来要讲的 最小二乘法 。
10.5.3.1 数据拟合与最小二乘法 Important
最小二乘法的核心思想 (Least Squares)
在工程与科学计算中,当我们面对一组实验数据时,我们要找的并不是能 完美穿过 每一个点的曲线(那往往会导致严重的“过拟合”),而是寻找一条使得 整体误差最小 的曲线。
什么样的误差定义最好?最通用且拥有极好数学性质的方法是:测量每一个真实数据点 t i 与模型预测值 y ( x i , w ) 之间的偏差(Deviation),并将这些 偏差的平方和 作为总误差:
E ( w ) = 1 2 ∑ i = 1 N ( y ( x i , w ) − t i ) 2
(注:前面乘上 1 2 是为了后续求导时刚好能和平方项的 2 抵消,方便计算,不影响极值点的位置。)
这就是大名鼎鼎的 最小二乘法 (Method of Least Squares) 。通过寻找使得误差函数 E ( w ) 达到 极小值 的权重参数 w ∗ ,我们就找到了“最佳拟合”曲线!
Note
从多元微积分看最小二乘法的求解
结合我们在前几节学过的 多元函数极值 知识,最小二乘法本质上就是一个 无约束的多元函数求极小值问题 !
为了直观,我们退回最简单的线性拟合(即用直线 f ( x ) = a x + b 来拟合数据)。此时,误差函数 D 是关于参数 a 和 b 的二元函数:
D ( a , b ) = ∑ i = 1 N ( y i − ( a x i + b ) ) 2
如何求它的极小值点?我们只需要让它对 a 和对 b 的 偏导数分别等于 0 即可找到临界点(驻点):
∂ D ∂ a = − 2 ∑ i = 1 N x i ( y i − a x i − b ) = 0
∂ D ∂ b = − 2 ∑ i = 1 N ( y i − a x i − b ) = 0
将上述方程组展开并合并同类项,你会发现它完全变成了一个关于 a 和 b 的 二元一次线性方程组 :
{ ( ∑ x i 2 ) a + ( ∑ x i ) b = ∑ x i y i ( ∑ x i ) a + n b = ∑ y i
只要数据点给定了, ∑ x i , ∑ y i , ∑ x i 2 这些求和项就全是确定的常数数字。利用矩阵或消元法瞬间就能解出最佳的 a 和 b !即使扩展到前面的 M 阶多项式,原理也是完全相同的(偏导数等于0,解线性方程组)。这正是最小二乘法如此被广泛使用且高效的数学底层逻辑。
10.5.3.2 正则化与带约束极值问题 [!extension]
带约束极值问题与人工智能中的正则化 (Regularization)
在人工智能和机器学习中,我们经常面临一个核心痛点: 过拟合 (Overfitting) 。如果仅仅为了让模型在训练数据上误差(Loss)最小,模型往往会变得异常复杂,甚至把数据里的“随机噪声”也死记硬背下来,导致在面对新数据时表现极差。
为了防止过拟合,AI 工程师们会给模型加上一道“紧箍咒”:要求模型的参数(权重 w 1 , w 2 , … )不能太大。这样一来,一个纯粹的 无约束极小化问题 ,就顺理成章地变成了一个 带约束的极值问题 !
1. 从约束极值到拉格朗日函数
假设我们的原本目标是最小化损失函数 f ( w 1 , w 2 ) 。现在加上一个参数大小的限制,比如要求权重向量的长度不能超过某个常数: g ( w 1 , w 2 ) = w 1 2 + w 2 2 ≤ C (这在几何上被限制在一个圆盘内)。
根据本节学过的 拉格朗日乘数法 ,为了求解这个处于边界上的约束极值问题,我们需要构造拉格朗日函数:
L ( w 1 , w 2 , λ ) = f ( w 1 , w 2 ) + λ ( w 1 2 + w 2 2 − C )
2. 机器学习中的 L2 正则化 (权重衰减)
在对权重 w 求偏导时,常数 C 并不会产生影响。因此,在实际的深度学习代码(如 PyTorch 或 TensorFlow)中,优化目标常常被直接写为以下形式:
原 目 标 函 数 拉 格 朗 日 约 束 项 Loss total = Loss data ( w ) ⏟ 原目标函数 f + λ ( w 1 2 + w 2 2 ) ⏟ 拉格朗日约束项 λ g
这就是机器学习中赫赫有名的 L2 正则化 (L2 Regularization) ,在神经网络中也常被称为 权重衰减 (Weight Decay) !
这里的 λ 正是我们刚才在微积分中引入的 拉格朗日乘子 。在 AI 中,它被称为 惩罚系数 (或正则化系数)。它就像是一个调节器: λ 越大,表示我们对模型复杂度的惩罚越重,强迫权重向零收缩。
3. 几何直观的重现
如果没有约束,损失函数 f ( w ) 的极小值(谷底)可能在一个极远的高风险位置。加上约束后,我们的搜索范围被死死锁在了原点附近的圆形栅栏内( w 1 2 + w 2 2 ≤ C )。损失函数的等高线一圈圈向外膨胀,直到与这个圆 刚好相切 的那一点,就是正则化后的最优权重。此时,损失函数的梯度与惩罚项的梯度再次满足了 平行 的拉格朗日核心条件!
10.6 多元函数的泰勒展开 Tip
在一元微积分中,泰勒展开(Taylor Expansion)为我们提供了一种用多项式来局部逼近复杂函数的强大工具。在多元微积分中,这一思想同样适用。特别是当我们想要了解一个多元函数(例如三维空间中的曲面)在某一点附近的弯曲形状时,多元函数的泰勒展开是不可或缺的。
更重要的是,在人工智能中,寻找损失函数的极小值往往依赖于多元泰勒展开提供的局部几何信息。
10.6.1 多元函数的泰勒展开公式 Important
二元函数的泰勒公式
设二元函数 z = f ( x , y ) 在点 ( x 0 , y 0 ) 的某一邻域内连续且有直到 ( n + 1 ) 阶的连续偏导数。为了方便,我们记自变量的增量为 h = x − x 0 , k = y − y 0 。
则函数在该点附近的二阶泰勒展开式为:
一 阶 项 线 性 逼 近 二 阶 项 二 次 逼 近 f ( x , y ) ≈ f ( x 0 , y 0 ) + ( h ∂ f ∂ x + k ∂ f ∂ y ) ⏟ 一阶项 (线性逼近) + 1 2 ! ( h 2 ∂ 2 f ∂ x 2 + 2 h k ∂ 2 f ∂ x ∂ y + k 2 ∂ 2 f ∂ y 2 ) ⏟ 二阶项 (二次逼近) 如果回顾前面的知识,你会发现: 一阶项其实就是全微分 d f (几何上对应切平面),而二阶项则描述了曲面偏离切平面的弯曲程度。
Warning
向量与矩阵形式 (极其重要!)
当变量数量增多时,写出一大堆偏导数是非常繁琐的。在机器学习中,我们通常将自变量写成向量 x ,并将泰勒展开改写为极其优雅的 矩阵形式 。
设 x = ( x , y ) T ,增量 Δ x = x − x 0 = ( h , k ) T 。
一阶导数向量 被称为 梯度 (Gradient) : ∇ f = ( ∂ f ∂ x , ∂ f ∂ y ) T
二阶导数矩阵 被称为 海森矩阵 (Hessian Matrix) : H = ( f x x f x y f y x f y y )
于是,多元函数的二阶泰勒展开可以紧凑地写为:
f ( x ) ≈ f ( x 0 ) + ∇ f ( x 0 ) T Δ x + 1 2 Δ x T H Δ x 这正是现代优化算法(如牛顿法)推导的起点!
10.6.2 多元函数泰勒展开的应用 Tip
泰勒展开之所以重要,是因为它能把复杂的非线性函数在局部"降维打击"成简单的多项式。以下是它在数学理论与人工智能中的两个核心应用。
Note
应用一:证明极值的充分条件 (第二阶导数测试)
在前面的章节中,我们给出了判断多元函数极值的结论:在驻点处(即一阶偏导数 f x = 0 , f y = 0 ),若 A C − B 2 > 0 且 A > 0 ,则有极小值。这个结论是怎么来的?
MIT 18.02 课程视角:
我们可以用泰勒展开轻松证明它。在驻点 ( x 0 , y 0 ) 处,梯度为零,因此一阶项消失了。函数值的变化量 Δ f = f ( x , y ) − f ( x 0 , y 0 ) 完全由 二阶项 主导:
Δ f ≈ 1 2 ( f x x h 2 + 2 f x y h k + f y y k 2 ) = 1 2 ( A h 2 + 2 B h k + C k 2 ) 这是一个关于 h 和 k 的二次型。通过初等代数的配方,我们可以将其改写为:
Δ f ≈ 1 2 A [ ( A h + B k ) 2 + ( A C − B 2 ) k 2 ] 显然,当 A C − B 2 > 0 且 A > 0 时,无论 h , k 取何值(不全为零),中括号内的值永远为正,这意味着 Δ f > 0 恒成立。因此函数值在这一点比周围都小,这正是一个 局部极小值 !
Caution
应用二:神经网络训练中的局部二次近似 (Bishop 教材经典内容)
在人工智能(特别是深度学习)中,我们需要训练神经网络,本质上就是寻找一组庞大的权重参数 w ,使得误差函数 E ( w ) 达到极小值。
根据 Bishop 的《Pattern Recognition and Machine Learning (PRML)》一书,我们很难直接找到解析解,而是必须在权重空间中进行迭代漫游: w ( τ + 1 ) = w ( τ ) + Δ w 。
为了决定往哪个方向走最好,我们会利用泰勒展开对误差函数进行 局部二次近似 (Local quadratic approximation) :
E ( w ) ≃ E ( w ^ ) + ( w − w ^ ) T b + 1 2 ( w − w ^ ) T H ( w − w ^ ) 其中 b 是误差梯度的向量, H 是海森矩阵。