第2章 · 多元函数的导数
2.6 拉格朗日乘数法
在初等微积分中,求函数在约束条件下的极值是一个经典问题。例如,求 $f(x,y)$ 在曲线 $g(x,y)=0$ 上的最大值。拉格朗日乘数法提供了解决这类问题的系统方法。在多元情形,这一方法有自然的推广,并且可以从隐函数定理严格导出。
2.6.1 问题陈述
设 $f: \mathbb{R}^n \to \mathbb{R}$ 和 $g: \mathbb{R}^n \to \mathbb{R}^m$(其中 $m < n$)是 $C^1$ 函数。我们希望求 $f(\boldsymbol{x})$ 在约束条件 $g(\boldsymbol{x}) = \boldsymbol{0}$ 下的局部极值。用几何语言说:我们在水平集 $M = g^{-1}(\boldsymbol{0})$(一个 $(n-m)$ 维曲面)上寻找 $f$ 的极值点。
$m < n$ 是自然的:如果 $m = n$,则约束 $g(\boldsymbol{x}) = \boldsymbol{0}$ 通常只确定孤立点,没有“优化”的余地。$m$ 个方程确定一个 $(n-m)$ 维曲面,在其上还有自由度可以优化 $f$。
设 $f: \mathbb{R}^n \to \mathbb{R}$ 和 $g: \mathbb{R}^n \to \mathbb{R}^m$($m < n$)在包含 $\boldsymbol{a}$ 的开集上是 $C^1$ 的。假设 $\boldsymbol{a}$ 是 $f$ 在约束 $g(\boldsymbol{x}) = \boldsymbol{0}$ 下的局部极值点(即存在 $\boldsymbol{a}$ 的邻域 $U$,使得对任意 $\boldsymbol{x} \in U \cap g^{-1}(\boldsymbol{0})$,有 $f(\boldsymbol{x}) \ge f(\boldsymbol{a})$ 或 $f(\boldsymbol{x}) \le f(\boldsymbol{a})$)。若 $g'(\boldsymbol{a})$($m \times n$ 雅可比矩阵)的秩为 $m$(即它的 $m$ 行线性无关),则存在唯一的 $\boldsymbol{\lambda} = (\lambda^1, \dots, \lambda^m) \in \mathbb{R}^m$,使得
向量 $\boldsymbol{\lambda}$ 称为拉格朗日乘数。
条件 $\nabla f(\boldsymbol{a}) = \sum \lambda^i \nabla g^i(\boldsymbol{a})$ 表示 $\nabla f(\boldsymbol{a})$ 落在各约束梯度张成的 $m$ 维子空间中。换句话说,$f$ 的梯度在 $\boldsymbol{a}$ 处与约束曲面 $g^{-1}(\boldsymbol{0})$ 正交——这正是约束极值的必要条件。在一维约束($m=1$)时,这退化为 $\nabla f(\boldsymbol{a}) = \lambda \nabla g(\boldsymbol{a})$,即两个梯度平行。
2.6.2 证明思想:利用隐函数定理消去约束
证明的核心思想是:在秩条件 $g'(\boldsymbol{a})$ 满行秩的前提下,隐函数定理保证约束 $g(\boldsymbol{x}) = \boldsymbol{0}$ 在 $\boldsymbol{a}$ 附近可以解出 $m$ 个变量作为其余 $n-m$ 个变量的函数。将这些函数代入 $f$,就将约束极值问题转化为无约束极值问题,从而可以使用 §2.3 中偏导数为零的必要条件。
第一步:运用隐函数定理参数化约束曲面。
由于 $g'(\boldsymbol{a})$ 的秩为 $m$,存在 $m$ 列线性无关。为简化记号,不妨设这 $m$ 列是后 $m$ 列(必要时重排变量顺序)。将 $\boldsymbol{x}$ 写为 $\boldsymbol{x} = (\boldsymbol{u}, \boldsymbol{v})$,其中 $\boldsymbol{u} \in \mathbb{R}^{n-m}$,$\boldsymbol{v} \in \mathbb{R}^m$,且 $g'(\boldsymbol{a})$ 关于 $\boldsymbol{v}$ 的偏导数矩阵 $D_{\boldsymbol{v}} g(\boldsymbol{a})$ 是 $m \times m$ 可逆矩阵。由隐函数定理(定理 2.5.1),存在包含 $\boldsymbol{u}_0$($\boldsymbol{a}$ 的前 $n-m$ 个坐标)的开集 $U \subset \mathbb{R}^{n-m}$ 和 $C^1$ 函数 $\boldsymbol{h}: U \to \mathbb{R}^m$,使得在 $\boldsymbol{a}$ 附近,
且 $\boldsymbol{h}(\boldsymbol{u}_0) = \boldsymbol{v}_0$($\boldsymbol{a}$ 的后 $m$ 个坐标)。
隐函数定理将约束条件“解”了出来,将约束曲面 $g^{-1}(\boldsymbol{0})$ 在局部表示为一个图 $\boldsymbol{v} = \boldsymbol{h}(\boldsymbol{u})$。这意味着在 $\boldsymbol{a}$ 附近,约束曲面上的点可以用 $\boldsymbol{u}$ 自由参数化。
第二步:化为无约束极值问题。
定义函数 $F: U \to \mathbb{R}$ 为
由于在 $\boldsymbol{a}$ 附近约束曲面上的点对应于 $(\boldsymbol{u}, \boldsymbol{h}(\boldsymbol{u}))$,$\boldsymbol{a}$ 是 $f$ 在约束下的局部极值点等价于 $\boldsymbol{u}_0$ 是 $F$ 的(无约束)局部极值点。由 §2.3 定理 2.3.2 的必要条件,在极值点处各偏导数为零:
由链式法则,
因此在 $\boldsymbol{a}$ 处,
第三步:消去 $\boldsymbol{h}'$,引入乘数。
由隐函数定理的导数公式,
代入 (1) 式,得
定义 $\boldsymbol{\lambda}^{\mathrm{T}} = D_{\boldsymbol{v}} f(\boldsymbol{a}) \cdot [D_{\boldsymbol{v}} g(\boldsymbol{a})]^{-1}$(这是一个 $m$ 维行向量,写成列向量即为 $\boldsymbol{\lambda}$)。则上式变为
另一方面,由 $\boldsymbol{\lambda}$ 的定义直接有
将 (2) 和 (3) 合并,即得
或其转置形式
乘数 $\boldsymbol{\lambda}$ 由公式 $\boldsymbol{\lambda}^{\mathrm{T}} = D_{\boldsymbol{v}} f(\boldsymbol{a}) \cdot [D_{\boldsymbol{v}} g(\boldsymbol{a})]^{-1}$ 显式给出。这个推导也证明了 $\boldsymbol{\lambda}$ 的唯一性——给定变量分划,乘数由导数值唯一确定。
这就完成了定理的证明。 ∎
2.6.3 应用与几何解释
设 $p_1, \dots, p_n > 0$,$\sum_{i=1}^n p_i = 1$。求 $f(p_1, \dots, p_n) = -\sum p_i \ln p_i$(熵)在约束 $\sum p_i = 1$ 下的最大值。
这里 $m=1$,$g(p_1, \dots, p_n) = \sum p_i - 1$。拉格朗日条件 $\nabla f = \lambda \nabla g$ 给出
因此各 $p_i$ 相等,由约束得 $p_i = 1/n$。由于当某个 $p_i \to 0$ 时,熵函数趋向负无穷(或由熵函数的严格凹性),该内部驻点即为全局最大值。此时熵的最大值为 $\ln n$。
设 $A$ 是 $n \times n$ 对称矩阵,求二次型 $f(\boldsymbol{x}) = \boldsymbol{x}^{\mathrm{T}} A \boldsymbol{x}$ 在单位球面 $g(\boldsymbol{x}) = \|\boldsymbol{x}\|^2 - 1 = 0$ 上的极值。
拉格朗日条件给出 $\nabla f(\boldsymbol{x}) = \lambda \nabla g(\boldsymbol{x})$,即 $2A\boldsymbol{x} = 2\lambda \boldsymbol{x}$,所以 $A\boldsymbol{x} = \lambda \boldsymbol{x}$。因此极值点 $\boldsymbol{x}$ 必为 $A$ 的特征向量,对应的乘数 $\lambda$ 就是特征值。二次型在单位球面上的最大值等于 $A$ 的代数最大特征值,最小值等于代数最小特征值。
2.6.4 概念翻译器(第 2 章)
| 初等微积分中的概念 | 本书中的对应概念 | 说明 |
|---|---|---|
| 导数 $f'(a)$ | 线性映射 $Df(\boldsymbol{a})$ | 高维推广;其矩阵为雅可比矩阵 |
| 链式法则 | $D(g \circ f)(\boldsymbol{a}) = Dg(f(\boldsymbol{a})) \circ Df(\boldsymbol{a})$ | 映射复合对应于矩阵乘法 |
| 乘积法则 | $D(f \cdot g)(\boldsymbol{a}) = g(\boldsymbol{a}) Df(\boldsymbol{a}) + f(\boldsymbol{a}) Dg(\boldsymbol{a})$ | 可推广到一般双线性映射 |
| 偏导数存在且连续 $\Rightarrow$ 可微 | 定理 2.3.3 | 判断可微性的常用充分条件 |
| 混合偏导数连续 $\Rightarrow$ 相等 | 定理 2.3.2(克莱里罗定理) | 对 $C^2$ 函数求导顺序可交换 |
| 隐函数求导 | 隐函数定理(§2.5) | 从 $f(\boldsymbol{x}, \boldsymbol{y}) = \boldsymbol{0}$ 解出 $\boldsymbol{y} = g(\boldsymbol{x})$ 并求导 |
| 拉格朗日乘数法 | 定理 2.6.1 | 隐函数定理在约束极值问题的应用 |
| $o(h)$ 记号 | $o(\|\boldsymbol{h}\|)$ 正式定义 | 用于紧凑表达可微性 |
练习 2.6
- 求 $f(x,y) = x + y$ 在约束 $x^2 + y^2 = 1$ 下的最大值和最小值。
- 设 $A$ 是 $n \times n$ 对称正定矩阵,$\boldsymbol{b} \in \mathbb{R}^n$。求 $f(\boldsymbol{x}) = \frac{1}{2}\boldsymbol{x}^{\mathrm{T}}A\boldsymbol{x} - \boldsymbol{b}^{\mathrm{T}}\boldsymbol{x}$ 在约束 $\|\boldsymbol{x}\|^2 = 1$ 下的极值点满足的方程。
- 求 $f(x,y,z) = xyz$ 在约束 $x + y + z = 1$,$x, y, z > 0$ 下的最大值。
- 解释拉格朗日乘数法的几何意义:为什么 $\nabla f$ 必须落在各 $\nabla g^i$ 张成的子空间中?提示:考虑约束曲面在 $\boldsymbol{a}$ 处的切空间——任何与曲面相切的方向 $\boldsymbol{v}$ 必须满足 $\nabla g^i(\boldsymbol{a}) \cdot \boldsymbol{v} = 0$,且沿这些方向 $f$ 的变化率应为零。
- 判断下列命题的真伪,并给出理由或反例:
- (a) 若 $\boldsymbol{a}$ 是 $f$ 在约束 $g(\boldsymbol{x}) = \boldsymbol{0}$ 下的局部极值点,则 $\nabla f(\boldsymbol{a}) = \boldsymbol{0}$。
- (b) 若 $g'(\boldsymbol{a})$ 的秩小于 $m$,则拉格朗日乘数法的结论一定不成立。
- (c) 拉格朗日乘数 $\boldsymbol{\lambda}$ 的值依赖于约束函数 $g$ 的选取——即使约束曲面 $g^{-1}(\boldsymbol{0})$ 相同,不同的 $g$ 可能给出不同的 $\boldsymbol{\lambda}$。
- 设 $f(x,y) = x^2 - y^2$,约束为 $y = 0$。用两种方式写出约束:$g_1(x,y) = y = 0$ 和 $g_2(x,y) = y^3 = 0$。计算两种情形下的拉格朗日乘数,并解释为何乘数不同。这与命题 5(c) 有何关系?