一元函数里,站在点 上,离开的路只有两条:向左,或者向右。要是两边都往高处走,这里就是谷底;两边都往低处走,这里就是山顶。我们甚至很容易相信,只要先找到 ,再看一眼 ,事情就差不多结束了。
到了平面上,这套直觉突然少了一块。站在 上,你不再只有“左、右”两个离开方向,而是可以朝任意角度走。沿 轴看像谷底,沿 轴看也像谷底,斜着走却可能一路下降。多变量优化真正新增的困难,就是要同时管住这无穷多个方向。
上一章学过,梯度把所有方向的一阶变化都收进了一个向量:
这一章就从这里接着往前走。我们先用梯度找出“第一步暂时走不动”的点,再用 Hessian 判断附近往各个方向怎样弯;若题目还圈出一块可行区域,就把边界也当成正式候选来检查。最后你会看到,优化不是“令偏导数等于零”这一行计算,而是一套不会漏掉候选点的搜索与比较方法。

三个中心点的一阶斜率都可能为零。真正区分它们的,是离开中心以后曲面向各个方向怎样弯。
先把“最大”和“最小”说准确。若在 附近的所有点都满足
那么 是一个局部极小点;若附近都满足 ,它就是局部极大点。这里的“局部”很要紧:山腰上的一个小凹坑可以是局部谷底,却未必是整座山最低的地方。
如果不只附近,而是定义域内每个点都满足相应的不等式,我们才称它为绝对极小点或绝对极大点。点 是极值出现的位置, 才是极值;写答案时不要把这两件事混在一起。
假设 在定义域内部的 可微,而且这里是局部极小点。若 ,上一章告诉我们,沿负梯度方向的方向导数是
也就是说,只要朝负梯度方向迈出足够小的一步,函数值就会下降。这和“这里已经是附近最低点”矛盾。因此,可微的内部极值点一定满足
写成分量就是
局部极大点的理由完全相同:如果梯度不为零,沿梯度方向还能继续升高。
这个结论也可以用一元微积分来理解。把 钉住,函数变成 ;把 钉住,又得到 。若 是内部极值点,那么 和 分别是这两个截面函数的极值点,所以两个偏导数都必须为零。

梯度归零表示切平面水平,也表示所有方向的一阶变化暂时消失。它还没有告诉我们,这里究竟是山顶、谷底还是鞍点。
求极值时,需要检查两类内部点:
例如
的图像是一个圆锥。原点是整个平面上的绝对极小点,但尖端没有梯度,因此方程 根本抓不到它。完整的候选清单不能只写“解两个偏导方程”,还要检查不可微点。
边界点又是另一回事。若可行区域只允许 ,站在边界 时,你不能朝 的方向走,所以边界极值不必满足完整的梯度归零条件。后面处理绝对极值时,我们会把边界单独拿出来。
是可微内部极值的必要条件,不是充分条件。它只负责提供候选点,不能负责给候选点贴上“极大”或“极小”的标签。
求函数
的临界点,并判断其类型。
先求梯度:
配方在这里给出了比二阶判别更强的结论,因为它直接控制了整个平面。可是一般函数未必能漂亮地配方,我们需要一种只看临界点附近就能分类的办法。
在普通点附近,函数最显眼的变化来自线性部分:
这就是切平面近似。到了驻点,,线性部分整块消失。此时函数离开 以后是升是降,要看下一层的二次项:
这里所有二阶偏导数都在 处取值。把它们排成矩阵,就得到 Hessian:
当混合偏导在附近连续时,,Hessian 是对称矩阵。若用向量 表示一次很小的位移,二次变化可以压缩成
这行式子真正要问的是:对每一个非零方向 ,这个二次型是正、负,还是有时正有时负?

考虑
沿 轴,,原点像谷底;沿 轴,,原点仍像谷底。如果只检查这两个方向,我们会得到一个错误结论。
现在沿斜线 走:
而沿 走:
原点附近既有高于 的点,也有低于它的点,所以原点是鞍点。罪魁祸首是混合项 :它在坐标轴上恰好消失,却在斜方向上主导了曲面的弯曲。这正是 Hessian 必须把 算进去的原因。
为了不用逐一检查无穷多个方向,定义 Hessian 的判别式
在驻点 处,分类规则是:
表示两个主要弯曲方向同号,再由 判断它们一起向上还是一起向下。 表示两个主要方向异号,所以必有上升方向和下降方向。混合偏导在判别式里被平方,因此决定分类的是它的大小,不是它的正负。
二阶判别法要在驻点上使用。若 ,线性项还没有消失,函数会先沿某个方向倾斜;这时即使 Hessian 正定,也不能说 是局部极小点。
若二次型写成 ,它的 Hessian 行列式是 。因此有些题目会把判别式简写成 ;它和 Hessian 行列式只差一个正常数,符号与分类完全相同。
求
的驻点,并分类。
先解一阶方程:
这道题提醒我们:比较两个驻点的高低,不能代替局部分类。局部类型说的是每个点自己附近的形状,不是它在候选点排行榜上的名次。
“鞍点”这个词很形象:沿马背前后方向看,中心像最低点;沿左右方向看,中心又像最高点。用定义说,就是任意小的邻域里,都能找到函数值比中心大的点,也能找到比中心小的点。
最标准的例子是
沿 轴有 ,沿 轴有 。因此原点是鞍点。它的 Hessian 判别式为 ,二阶判别法很快就能认出来。
真正麻烦的是 。这不代表“没有极值”,也不代表“必是鞍点”;它只表示二次项里至少有一个方向太平,现有信息不够。
看三个函数:
它们在原点的一阶偏导和二阶偏导全都为零,所以二阶判别法给出的都是 。可原点分别是局部极小点、局部极大点和鞍点。决定答案的是四次项,Hessian 根本还没有看到它。
遇到 ,可以依次尝试:
最后一条很容易被忽略。找出两条异号路径可以迅速证明“不是极值”;但检查十条、二十条路径都没有发现负值,仍然不能证明局部极小,因为平面上还有无穷多条路径。
把 写成“鞍点”是错误的。正确表述是“二阶判别法失效”,然后换用原函数符号、路径、配方或更高阶项继续判断。
判断
在原点附近的行为。
一阶偏导数为
Hessian 回答的是“这个点附近像什么”。绝对极值问的却是“整个可行区域里谁最高、谁最低”。这两个问题不能混用。
若函数 在闭有界区域 上连续,那么它一定能在 上取得绝对最大值和绝对最小值。你可以把“闭”理解成边界也包含在内,把“有界”理解成区域不会无限延伸。这个结论保证最优点存在,却没有保证它在内部。
在闭区域上找绝对极值,需要检查三类候选:
最后把所有候选点代回原函数,直接比较函数值。只有这一步才能确定“绝对”最大和最小。
闭区域绝对极值题的主线可以记成四个动作:找内部、走边界、收角点、比函数值。Hessian 可以帮助理解内部驻点,但它不能代替边界检查,也不能代替最终比较。
以矩形
为例,边界由四条线段组成。在线段 上, 已经不能自由变化,原函数变成单变量函数
于是只需检查 的点和区间端点。其余三条边同理。角点经常会被相邻两条边重复算到,这没有关系;漏掉它们才是问题。
若边界是一条曲线,可以参数化为
然后研究
这仍然是熟悉的一元极值问题。只不过边界一复杂,参数化和求导很快会变得笨重,这正是下一章要引入约束优化方法的原因。
下面的交互会在矩形与三角形上,分别列出内部驻点、边界驻点和端点。切换函数以后,观察“内部局部形状”和“绝对极值位置”为什么不是同一件事。
求
在矩形
上的绝对极值。
先找内部候选。因为
这个例子恰好把最小值留在内部,把最大值推到角点。若只解 ,最大值会整块漏掉。
求线性函数
在单位圆盘 上的绝对极值。因为 永远不为零,内部没有驻点,极值只能到边界 上找。
令
边界上的目标函数变成
它的振幅为 ,因此绝对最大值和最小值分别是 与 ,对应点为
这里已经出现了一个很有用的几何现象:在最优点,圆的切线方向上不能再让 增加或减少,所以目标函数的等值线恰好与圆相切。下一章会把这种“相切”翻译成梯度平行的方程,从而不必每次都先猜一套参数化。
真正的应用题往往不难求导,难的是在求导以前。题目说“成本最低”“距离最短”或“产量最高”,你要先决定变量是什么、目标是什么、哪些方案真的允许。

先选变量,并写清单位。变量应当足以描述一个方案,又不要彼此重复。例如 表示材料批量, 表示工时批量。
把“最好”写成目标函数。成本最低就写 ,收益最高就写 。若目标是最短距离,通常先最小化距离平方,这样能去掉根号,又不会改变最优点。
某项生产流程的近似成本为
其中 、 是两种可连续调节的投入批量。先不加上限,只要求 、,求成本最低的投入组合。
求一阶偏导数:
如果现实条件再加一条 ,原来的最优点就不再可行,答案会移动到边界 上。此时你应把 当成单变量函数继续优化。这个小变化说明:约束不是题目末尾的附注,它会直接改变最优解。
只说明一阶变化消失。后面还要用 Hessian、原式符号、配方或路径判断类型。
多元函数有无穷多个离开方向。混合项可能在坐标轴上消失,却在斜方向上制造下降。二阶判别式正是用来同时管住这些方向的。
的正确结论只有“二阶判别法无法决定”。它后面可能是极大、极小或鞍点。
Hessian 给出局部形状。绝对极值必须汇总内部、边界、角点等全部候选,再比较原函数值。
圆锥尖端可以是最小点,边界角点可以是最大点,它们都可能不满足 。候选清单不完整,后面的计算再准确也没有用。
连续函数在闭有界区域上一定取得绝对极值;少掉这些条件,结论就不再自动成立。例如 在整个平面上有绝对最小值,却没有绝对最大值。
求
的驻点,并判断其类型。
判断函数
在原点的局部类型。
求
在正方形 、 上的绝对最大值和绝对最小值。
在平面
上找一点,使它到 的距离最短。
判断
在区域 上是否有绝对最大值。
走到这里,我们已经能处理无约束的内部驻点,也能把简单边界参数化后逐段搜索。下一章面对的是更一般的限制:可行点被锁在 上时,怎样不先解出 ,就直接写出最优条件。答案会再次用到梯度,不过这一次,是两个梯度之间的关系。
令两个分量同时为零:
得到唯一驻点 。
这个函数可以直接配方:
两个平方项永远不小于零,所以 。因此 不只是局部极小点,还是绝对极小点,绝对最小值为 。
| 局部极大点 |
| 鞍点 |
| 二阶判别法无法决定 |
因此 、,驻点是 和 。
求二阶偏导数:
所以判别式为
在 处, 且 ,因此这里是局部极小点,函数值为 。
在 处,,因此这里是鞍点,函数值为 。它虽然比前一个点高,却不是局部极大点,因为附近仍有上升和下降两个方向。
所以原点是驻点。
二阶偏导数为
在原点,,二阶判别法无法分类。
沿 轴,
沿 轴,
原点任意近处都有正值和负值,因此原点是鞍点。
所以唯一驻点是 ,它确实在矩形内部,函数值为
在左边界 上,
区间 上要检查 以及两个端点,得到候选值 。
在右边界 上,
检查 ,候选值为 。
在下边界 上,
检查 ,候选值为 。上边界 给出同一个单变量式子,因此候选值也为 。
汇总所有值:最小的是 ,在 处取得;最大的是 ,在 与 处取得。
写出可行区域。非负条件、库存上限、预算线和几何边界都属于模型本身,不能算完以后再补。它们会决定内部驻点是否可用,也会带来新的边界候选。
找候选、分类并比较。无约束问题先解梯度方程;闭区域问题还要检查边界。最后把坐标翻译回原问题,并确认单位与限制都满足。
解驻点方程:
第二个方程给出 ,代回第一个方程得到 、。两个变量都非负,所以这个点可行。
Hessian 为
它的判别式是 ,且 ,所以 是局部极小点。
由于这个成本函数本身是正定二次函数,曲面整体像一只向上的碗,不会在远处再出现更低点。因此 是可行象限内的绝对极小点,最低成本为
解方程组
得到
二阶偏导数为
因此
并且 ,所以 是局部极小点。由于原函数是正定二次函数,它也是整个平面上的绝对极小点。
所以原点是局部极小点,也是绝对极小点。它不是严格极小点,因为在两条直线 和 上,原点附近还有无穷多个点也使 。
所以内部候选点是 ,函数值为 。它的二阶判别式是
因此它是鞍点,不过仍应保留在绝对极值的候选表中。
检查四条边:
这些都是区间 上的线性函数,极值出现在端点。四个角点的函数值分别是
与内部候选值 比较后,绝对最小值为 ,在 和 处取得;绝对最大值为 ,在 和 处取得。
求偏导数:
解方程组
得到 。对应的 坐标是
因此最近点是
Hessian 为
其判别式为 ,且 。所以这个驻点是极小点;又因为 是正定二次函数,它也是绝对极小点。