# 9.8多元函数的极值及其求法

## 阅读入口

* [多元函数的极值](/knowledge/maths/multivariable-calculus/multivariable-extrema/)
* [偏导数](/knowledge/maths/multivariable-calculus/partial-derivative/)（驻点由一阶偏导数定义）
* [泰勒公式](/knowledge/maths/derivatives/taylor-formula/)（二阶充分条件的展开依据）

## 学习安排

教材依次给出极值定义、必要条件、二阶充分条件，再把极值问题推广到有界闭区域上的最值，最后用拉格朗日乘数法处理条件极值。必要条件与一元费马引理是同一件事：固定一个变量，极值点处的偏导数必须为零。充分条件把驻点处的二阶偏导数排成 $A$、$B$、$C$，用 $\Delta=AC-B^2$ 的符号判断曲面在驻点附近的弯曲方向。

最值部分要紧的是候选点的来源：内部驻点、偏导数不存在的点、边界上的点，三类都要收集。条件极值则把约束写进拉格朗日函数，化为无条件极值来解。

## 极值存在的条件

### 必要条件与驻点

设 $f$ 在 $P_0(x_0,y_0)$ 处具有偏导数，并在该点取得极值，则

$$
f_x(x_0,y_0)=0,\qquad f_y(x_0,y_0)=0 .
$$

一阶偏导数同时为零的点称为 $f$ 的**驻点**。偏导数存在时，驻点就是梯度为零向量的点，梯度的定义见[梯度](/knowledge/maths/multivariable-calculus/gradient/)。

**证明**

只对 $x$ 论证。固定 $y=y_0$，令 $g(x)=f(x,y_0)$。$g$ 在 $x_0$ 处可导，且由 $f$ 在 $P_0$ 取得极值可知 $x_0$ 是 $g$ 的极值点。由一元函数的费马引理（见[费马引理](/knowledge/maths/derivatives/fermat-extremum/)），$g'(x_0)=0$，即

$$
f_x(x_0,y_0)=0 .
$$

对 $y$ 的偏导数同理。

> [!WARNING]
> 驻点只是极值的必要条件。$f(x,y)=x^2-y^2$ 在原点两个偏导数都为零，但沿 $x$ 轴 $f>0$、沿 $y$ 轴 $f<0$，原点不是极值点，这类点称为鞍点。反过来，极值点也可能不是驻点：$f(x,y)=\sqrt{x^2+y^2}$ 在原点取得极小值，但两个偏导数都不存在。

### 充分条件

设 $f$ 在驻点 $P_0(x_0,y_0)$ 的某邻域内具有连续的二阶偏导数，记

$$
A=f_{xx}(x_0,y_0),\qquad
B=f_{xy}(x_0,y_0),\qquad
C=f_{yy}(x_0,y_0),
$$

$$
\Delta=AC-B^2 .
$$

则：

1. 当 $\Delta>0$ 时，$f$ 在 $P_0$ 取得极值；其中 $A<0$ 时取极大值，$A>0$ 时取极小值。
2. 当 $\Delta<0$ 时，$f$ 在 $P_0$ 不取得极值。
3. 当 $\Delta=0$ 时，本定理无法判定，需要另行讨论。

**证明**

把 $P_0$ 处的函数值增量按二阶泰勒公式展开（见[泰勒公式](/knowledge/maths/derivatives/taylor-formula/)）。$P_0$ 是驻点，一阶项为零，所以

$$
\Delta z=f(P_0+\Delta P)-f(P_0)
=\frac12\left(A\Delta x^2+2B\Delta x\Delta y+C\Delta y^2\right)
+o(\rho^2),
$$

其中 $\rho=\sqrt{\Delta x^2+\Delta y^2}$。令 $\Delta x=\rho\cos\theta$、$\Delta y=\rho\sin\theta$，则

$$
\Delta z=\frac{\rho^2}{2}\,g(\theta)+o(\rho^2),\qquad
g(\theta)=A\cos^2\theta+2B\cos\theta\sin\theta+C\sin^2\theta .
$$

二次型 $Q(h,k)=Ah^2+2Bhk+Ck^2$ 的矩阵行列式为 $AC-B^2=\Delta$。

* 当 $\Delta>0$、$A>0$ 时，$Q$ 正定，$g(\theta)$ 在单位圆上有正的下界，于是 $\rho$ 充分小时 $\Delta z>0$，$P_0$ 是极小值点。
* 当 $\Delta>0$、$A<0$ 时，$Q$ 负定，同理 $\Delta z<0$，$P_0$ 是极大值点。
* 当 $\Delta<0$ 时，$Q$ 不定，存在方向使 $g(\theta)>0$，也存在方向使 $g(\theta)<0$。在 $P_0$ 的任意小邻域内，函数值既有大于 $f(P_0)$ 的，也有小于 $f(P_0)$ 的，所以 $P_0$ 不是极值点。

$\Delta=0$ 时 $g(\theta)$ 可能非负、非正或恒为零，符号由 $o(\rho^2)$ 决定，因此这个定理不能判定。

> [!NOTE]
> 判别式也可以写成 $B^2-AC$，此时结论中的不等号方向相反。本页统一使用 $\Delta=AC-B^2$，使用公式前先确认符号约定。

[来源：多元函数的局部极值](/knowledge/maths/multivariable-calculus/multivariable-extrema/#properties)

极值的判定只处理内部点，放到有界闭区域上还要加上边界，这就是下一段的最值问题。

## 最值

在有界闭区域 $D$ 上连续的多元函数一定取得最大值和最小值，见[多元函数的连续性](/knowledge/maths/multivariable-calculus/multivariable-continuity/)中的有界闭区域性质。求连续函数 $f(x,y)$ 在有界闭区域 $D$ 上的最值，一般按以下步骤进行：

1. **收集区域内部的候选点**

   求出 $D$ 内部的所有驻点，以及偏导数不存在但函数有定义的点，计算这些点处的函数值。

2. **求边界上的最值**

   把边界曲线代入 $f$，化为一元函数的最值问题；边界也可以按条件极值处理。

3. **比较所有候选值**

   内部候选值与边界最值中，最大的就是 $D$ 上的最大值，最小的就是最小值。

> [!IMPORTANT]
> 最值可能出现在边界上，只在内部驻点中寻找会漏解。极值是局部概念，最值是整体概念：一个函数可以有多个极大值，但最大值至多一个。

[来源：多元函数在区域上的最值](/knowledge/maths/multivariable-calculus/global-extrema/#definition)

最值解决的是自由取值的情形，带约束的问题要换一套办法，见下一段。

## 条件极值与拉格朗日乘数法

无条件极值问题只要求自变量落在定义域内，称为**无条件极值**。若还要求自变量满足附加约束，例如点必须在一条确定的曲线或一张确定的曲面上，对应的极值称为**条件极值**。

求 $z=f(x,y)$ 在约束 $\varphi(x,y)=0$ 下的极值点，常用**拉格朗日乘数法**。它的做法是引入参数 $\lambda$，构造**拉格朗日函数**

$$
L(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y),
$$

其中 $\lambda$ 称为**拉格朗日乘子**，再用乘子方程寻找候选点。若约束函数在候选点可微且梯度非零，约束极值点必须满足这些方程；$L$ 作为所有变量的函数不必在该点取得无条件极值。

1. **构造拉格朗日函数**

   把约束写成 $\varphi(x,y)=0$，取 $L=f+\lambda\varphi$。

2. **令一阶偏导数全为零**

   解方程组

   $$
   \begin{cases}
   L_x=f_x+\lambda\varphi_x=0,\\
   L_y=f_y+\lambda\varphi_y=0,\\
   L_\lambda=\varphi(x,y)=0.
   \end{cases}
   $$

3. **解出候选点并判断**

   方程组给出正则约束上的候选点；约束梯度为零的点和约束集合的边界也要单独检查。再根据问题的实际意义、边界上的取值或更高阶的条件，确定它是否为极值或最值。

方法可以直接推广到三元及更多元的函数，也可以处理多个约束：每个约束乘一个乘子，把所有 $\lambda_j\varphi_j$ 都加进 $L$。

> [!TIP]
> 乘子 $\lambda$ 本身通常不需要求出具体值，它的作用是让约束条件进入方程组。若题目只问最值，解出候选点后直接比较函数值即可。

[来源：条件极值与拉格朗日乘数法](/knowledge/maths/multivariable-calculus/constrained-extrema/#definition)

两种极值都齐了；课程约定把 $A,B,C$ 与 $\Delta$ 的记号收在一起。

## 课程约定

* 教材令 $A=f_{xx}(x_0,y_0)$、$B=f_{xy}(x_0,y_0)$、$C=f_{yy}(x_0,y_0)$，判别式记作 $\Delta=AC-B^2$。有些书用 $B^2-AC$，符号相反，判据要跟着一起换。
* 极值定义使用严格不等式；极值点与极值（函数值）是两个不同的对象。
* 拉格朗日函数写作 $L=f+\lambda\varphi$，约束为 $\varphi(x,y)=0$；偏导数不存在的点也属于最值候选。

## 易错点

* 把驻点直接当成极值点。鞍点也满足 $f_x=f_y=0$，还要用充分条件或定义再判断一次。
* 看到 $\Delta=0$ 就下结论。这个情形定理失效，要回到定义或改用其他方法。
* 求有界闭区域上的最值时只在内部找驻点，漏掉边界；或者只比较极值，忘记比较所有候选点的函数值。
* 用拉格朗日乘数法时漏写 $L_\lambda=\varphi(x,y)=0$，或者解出 $(x,y,\lambda)$ 后没有回代约束检验。
* 把条件极值当成无条件极值处理。约束不同，候选点一般也不同。

## 复习要点

判断极值时按“求驻点—算 $A,B,C,\Delta$—看 $A$ 的符号”的顺序走，$\Delta=0$ 的情形单独留到最后处理。做最值题先标出区域的边界，再决定边界用代入还是乘数法。条件极值解完方程组后，用实际意义或边界上的取值确认最大最小。
