多变量极值与优化 | 多变量微积分 I | 自在学多变量极值与优化
上一章我们用方向导数和梯度回答了一个局部问题:函数在某一点附近,沿哪个方向增长最快。本章换一个问题:如果把整块曲面看成一张地形图,哪里可能是山顶、谷底,哪里只是看起来平却并不稳定?
多变量极值问题的基本动作有两个。先用一阶导数找出“可能发生转折”的点,再用二阶导数或边界比较判断这些点到底是什么。这个过程比单变量多一个难点:在平面上离开一点有无穷多个方向,所以“斜率为零”只说明一阶变化消失,并不能直接说明那里一定有最大值或最小值。

局部极大、局部极小和鞍点都可能出现在曲面看起来“平”的位置。区别藏在附近所有方向的二阶弯曲里。
临界点
设 f(x,y) 在点 (a,b) 附近有定义。如果 fx 且 ,或者某个一阶偏导数在该点不存在,我们把 称为 的临界点。对可微函数来说,条件可以写成
(
a
,
b
)
=
0
fy(a,b)=0 ∇f(a,b)=⟨fx(a,b),fy(a,b)⟩=0 这句话的几何意思是:在这个点,所有方向导数的一阶线性部分都消失了。因为任意单位方向 u 上的方向导数是
Duf(a,b)=∇f(a,b)⋅u 临界点只是候选点,不是结论。单变量里 f′(a)=0 也可能只是拐点;多变量里类似的现象更常见,因为曲面可以在一个方向上向上弯,在另一个方向上向下弯。
局部极值的必要条件
如果 f 在 (a,b) 处可微,并且 (a,b) 是局部极大点或局部极小点,那么
∇f(a,b)=0 证明思路和单变量一致。固定 y=b,得到单变量函数 g(x)=f(x,b)。如果 (a,b) 是局部极值点,那么 x=a 也是 g 的局部极值点,所以 g′(a)=fx(a,b)=0。同理,固定 x=a,得到 fy(a,b)=0。
这个结论只给出必要条件。找极值时,它告诉我们该检查哪里;它不保证这些地方真的有极值。
例题:先找候选点
f(x,y)=x2+y2−4x+6y+10 先求一阶偏导数:
fx=2x−4,fy=2y+6令两个偏导数同时为零:
2x−4=0,2y+6=0得到唯一临界点 (2。
把原函数配方:
f(x,y)=(x−2)2+(y这个例子很温和,因为函数本身是一个向上开的椭圆抛物面。实际题目中,配方不总是方便;这时需要 Hessian。
Hessian 与二阶判别法
在一点附近,可微函数的一阶近似给出切平面。若临界点处梯度为零,切平面只剩常数项,下一层信息来自二阶近似。对二元函数来说,二阶偏导数组成的矩阵叫 Hessian:
Hf(x,y)=(fxx(x,y)fyx(x,y)fxy) 当二阶偏导连续时,fxy=fyx。在临界点 (a,b) 附近,函数的主要形状由下面这个二次型控制:
21(hk)Hf(a,b)(hk) 如果这个二次型在每个非零方向上都为正,曲面向各个方向上弯,是局部极小;如果每个非零方向上都为负,曲面向各个方向下弯,是局部极大;如果有的方向为正、有的方向为负,就是鞍点。
二阶判别法
对二元函数,常用一个判别式来压缩 Hessian 信息:
D(a,b)=fxx(a,b)fyy(a,b)−[fxy(a,b)]2 这里的 D 是 Hessian 行列式。D>0 表示两个主方向的弯曲同号,再用 fxx 的符号判断它们是同为正还是同为负。D<0 表示弯曲异号,所以必然是鞍点。
二阶判别法只在临界点上使用。若某点的梯度不为零,即使 D 的符号看起来很漂亮,也不能拿它来判断局部极值。
例题:用 Hessian 分类
f(x,y)=x3−3x+y2 先求一阶偏导数:
fx=3x2−3,fy=2y令一阶偏导数同时为零:
3x2−3=0,2y=0得到两个临界点 和 。
求二阶偏导数:
fxx=6x,fyy在 (1,0) 处,D=12>0 且 f,所以 是局部极小点。在 处,,所以 是鞍点。
注意这里没有局部极大点。一个函数可以有多个临界点,也可以某一类极值完全没有。
鞍点与不确定情形
鞍点的特点是:从某些方向看,点附近像谷底;从另一些方向看,又像山顶。最经典的例子是
f(x,y)=x2−y2 原点处 fx=2x,fy=−2y,所以 (0,0) 是临界点。沿 x 轴看,f(x,0)=x2≥0;沿 y 轴看,f(0,y)=−y2≤0。同一个点附近既有比 f(0,0) 大的函数值,也有比它小的函数值,因此原点是鞍点。
二阶判别法给出 D=0 时,结论是不确定,而不是“没有极值”。例如
f(x,y)=x4+y4 在原点处有局部极小,但二阶偏导给不出有效弯曲信息,因为最低阶的非零变化来自四次项。
g(x,y)=x4−y4 原点是鞍点,二阶判别式同样为零。这两个例子说明,当二阶项全部退化时,要回到定义、路径比较或更高阶项。
常见错误是把 D=0 当成“鞍点”或“没有极值”。它只说明二阶判别法在这个点失效。此时要看原函数在附近的符号、沿不同路径的表现,或者尝试配方与因式分解。
例题:用路径识别鞍点
f(x,y)=x2−y4 一阶偏导数为
fx=2x,fy=−4y3所以原点是临界点。
二阶偏导数为
fxx=2,fy沿 x 轴,f(x,0)=x2>0;沿 轴,。原点附近同时出现大于和小于 的值,所以原点是鞍点。
闭有界区域上的绝对极值
局部极值只看一个点附近。绝对极值要看整个区域。若 f 在闭有界区域 R 上连续,那么 f 一定在 R 上取得绝对最大值和绝对最小值。
这个结论给出存在性,但不告诉我们极值在哪里。实际计算时,要检查三类候选对象:
- 区域内部的临界点。
- 边界曲线上的候选点。
- 边界的端点、角点或分段连接点。
闭有界区域上的绝对极值问题,最后一步总是比较函数值。Hessian 可以帮助判断内部临界点的局部类型,但绝对最大值和绝对最小值来自候选值的整体比较。
处理边界
R=[a,b]×[c,d] 上,边界有四条线段。在线段 y=c 上,函数变成 f(x,c),只需要在 a≤x≤b 上找单变量极值;其他边界同理。
如果区域边界由曲线给出,例如 y=ϕ(x),就把边界上的函数写成
F(x)=f(x,ϕ(x)) 再按单变量方法找候选点。下一章的拉格朗日乘子会给出更统一的约束优化方法;本章先用“参数化边界并比较候选值”的方式。
例题:矩形区域上的绝对极值
f(x,y)=x2+y2−2x−4y R={(x,y)∣0≤x≤3, 0≤y≤4} 先找内部临界点。因为
fx=2x−2,fy=2y−4所以临界点是 (1,2)。它位于矩形内部,函数值为
f(1,2)=1+4−2−8=−5检查边界 x=0。此时
f(0,y)=y2检查边界 x=3。此时
f(3,y)=y2检查边界 y=0。此时
f(x,0)=x2检查边界 y=4。此时
f(x,4)=x2汇总候选值,最小值是 −5,在 (1,2) 处取得;最大值是 3,在 (3,0) 和 处取得。
边界检查看起来有重复,这是正常的。矩形四条边会共享角点,所以同一个点可能被算到两次;最终只要比较完整候选集合即可。
实际优化模型
优化题的数学难点常常不是求导,而是把问题翻译成函数。一个实际问题通常包含三个部分:变量、目标函数、可行区域。
建模步骤
先选变量。变量应当能独立描述方案,例如材料用量 x 和工时 y,或平面上一点的坐标 (x,y)。
写目标函数。题目要“最大产量”,目标函数可能是 P(x,y);要“最小成本”,目标函数可能是 C(x,y);要“最短距离”,目标函数常常可以写成距离平方,避免根号。
写可行区域。若变量没有限制,先做无约束优化;若有范围、边界或实际条件,就把区域写清楚。闭有界区域上可以按候选点比较法求绝对极值。
求候选点并解释结果。最后的答案不能只写一个坐标,还要说明这个坐标在原问题中代表什么,并检查它是否满足题目条件。
例题:最接近一点的平面点
上找一点,使它到点 P=(1,2,3) 的距离最短。
因为平面上的点可以写成 (x,y,2x−y+1),它到 P 的距离平方为
F(x,y)=(x−1)2+(y−2)2+(2x−y+1−3)2 F(x,y)=(x−1)2+(y−2)2+(2x−y−2)2 求一阶偏导数:
Fx=2(x−1)+4(2x−y−2)=10x−4y−10Fy=2(y−2)−2(2x−y−2)=解方程组
10x−4y−10=0,−4x+4y=0由第二个方程得 ,代入第一个方程得 ,所以 。
对应平面上的点为
(35,这个候选点是最短距离点。理由是 F 是三个平方项之和展开后的二次函数,Hessian 为正定矩阵;也可以从几何上理解为点到平面的垂足。
这个例题展示了优化建模中的一个常用技巧:若目标是最短距离,可以先最小化距离平方。平方函数在非负区间上单调增加,所以不会改变最优点。
常见误区
只求临界点,不分类
求出 ∇f=0 只是第一步。题目问局部极值时,还要用 Hessian、配方、路径比较或定义判断类型。
忘记检查边界
绝对极值题最容易漏的是边界。即使内部有局部最小点,绝对最大值也可能出现在边界角点;即使内部没有临界点,连续函数在闭有界区域上仍然会取得绝对极值。
在非闭有界区域上直接套存在性
若区域不是闭有界,绝对最大值或最小值可能不存在。例如 f(x,y)=x2+y2 在整个平面上有绝对最小值 0,但没有绝对最大值。
把应用题的变量范围漏掉
现实变量常常有范围限制,例如长度不能为负,材料不能超过库存,概率或比例必须在 [0,1] 内。范围决定了候选点集合,也会改变最优解。
练习
练习:临界点分类
f(x,y)=x2+xy+y2−3x+2y 先求偏导数:
fx=2x+y−3,fy=x+2y+2解方程组
2x+y−3=0,x+2y+2=0得到 x=38, y=−37。二阶偏导数为
fxx=2,fyy=2,f所以
D=2⋅2−12=3>0且 fxx>0,因此该临界点是局部极小点。
练习:识别鞍点
f(x,y)=xy 偏导数为 fx=y, fy=x,所以原点是临界点。二阶偏导数为 fxx=0, fyy=0, fxy=1,因此
D=0⋅0−12=−1<0原点是鞍点。也可以沿直线 y=x 得到 f(x,x)=x2>0,沿 y=− 得到 ,说明原点附近同时有更大值和更小值。
练习:闭区域绝对极值
f(x,y)=x+y−xy 0≤x≤2,0≤y≤2 内部临界点满足
fx=1−y=0,fy=1−x=0所以候选点是 (1,1),函数值为 1。
检查边界。若 x=0,f=y,在 [0,2] 上取值从 0 到 2。若 ,,在 上取值从 到 。若 ,,在 上取值从 到 。若 ,,在 上取值从 到 。
汇总可知,绝对最小值为 0,在 (0,0) 和 (2,2) 处取得;绝对最大值为 2,在 (2,0) 和 处取得。
练习:应用建模
C(x,y)=2x2+y2−2xy−8x−2y+30 其中 x 表示材料批量,y 表示工时批量。若暂不考虑边界限制,求使成本最小的 (x,y)。
求偏导数:
Cx=4x−2y−8,Cy=2y−2x−2令它们同时为零:
4x−2y−8=0,2y−2x−2=0第二个方程给出 y=x+1。代入第一个方程:
4x−2(x+1)−8=0得到 2x=10,所以 x=5, y=6。
Hessian 为
(4−2−22)其判别式为 D=4⋅2−(−2)2=4>0,且 C,所以这是局部极小点。由于该二次成本函数的 Hessian 正定,这个点也是无约束情况下的全局最小点。
,
−
3
)
+
3)2−
3
两个平方项都不小于零,所以 (2,−3) 处取得局部最小值,也是整个平面上的绝对最小值。
(
x
,
y
)
fyy(x,y)
(
1
,
0
)
=
2,fxy=
0
D=fxxfyy−fxy2=12x
xx
=
6>
0
y
=
−12y2,fxy=
0
在原点处 D=2⋅0−0=0,二阶判别法不确定。
y
f(0,y)=−y4<0
−
4y=
(y−
2)2−
4
在 0≤y≤4 上,候选点包括 y=2,0,4,函数值分别为 −4,0,0。
−
4y+
3=
(y−
2)2−
1
候选点包括 y=2,0,4,函数值分别为 −1,3,3。
−
2x=
(x−
1)2−
1
候选点包括 x=1,0,3,函数值分别为 −1,0,3。
−
2x=
(x−
1)2−
1
候选点包括 x=1,0,3,函数值分别为 −1,0,3。
(3,4)
−4x+
4y
y=x
3
5
,
2
⋅
35
−
35
+
1
)
=
(35,35,38)
xy
=
1
x
f(x,−x)=−x2<0 x=
2
(0,2)
xx
=
4>
0