知经 KNOWECON · 卓越的经济金融统计数学学习平台

拉格朗日乘数法

# 拉格朗日乘数法 (Lagrange Multiplier Method)

**拉格朗日乘数法** 是一种在数学和经济学中寻找多元函数在满足一个或多个 **等式约束** 条件下极值的核心方法。它将一个有约束的{{{优化问题}}} (Constrained Optimization) 转化为一个更大、但无约束的优化问题,通过引入一个或多个被称为 **拉格朗日乘数** (Lagrange Multiplier) 的新变量来实现。

这种方法的应用极为广泛,从物理学中寻找能量最低态,到经济学中计算消费者的最优选择或企业的最低成本,都是其用武之地。它是由数学家 [[约瑟夫·拉格朗日]] 提出的。

## 核心思想与几何直观

想象一下,你正在一座山(代表一个函数 $f(x, y)$)上行走,你的目标是到达尽可能高的海拔。但是,你不能随意行走,必须沿着一条预先铺设好的小路(代表一个约束条件 $g(x, y) = c$)前进。那么,你在这条小路上能到达的最高点在哪里?

这个最高点(或最低点)一定具有一个非常特殊的性质:在该点,**小路的方向与山体等高线的方向是相切的**。

* **{{{等高线}}}** (Contour Line) 或 **{{{水平集}}}** (Level Set):在地图上,所有海拔相同的点连接起来的线。对于函数 $f(x, y)$,一条等高线是所有使得 $f(x, y)$ 等于某个常数的点的集合。 * **{{{梯度}}}** (Gradient):一个向量,指向函数值增长最快的方向。在任何一点,函数的梯度 $\nabla f$ 都与该点的等高线 **垂直** 。

让我们回到那个问题: * 如果小路的方向(约束曲线的切线方向)与等高线的方向不相切,而是横穿等高线,那么意味着你沿着小路还能继续往更高(或更低)的等高线走。此时,你显然还没有到达最高(或最低)点。 * 只有当小路的方向与等高线相切时,你沿着小路无论朝哪个方向移动,都将立刻走到更低海拔的等高线区域。这时,你就到达了在小路约束下的一个局部最高点。

**数学化表述** : 当两条曲线相切时,它们在切点的法向量是平行的。我们知道,函数 $f(x, y)$ 的梯度 $\nabla f$ 垂直于 $f$ 的等高线,而约束函数 $g(x, y)$ 的梯度 $\nabla g$ 垂直于 $g$ 的约束曲线。

因此,在最优点 $(x^*, y^*)$,两个梯度向量一定是平行的。用数学语言来说,一个梯度向量是另一个梯度向量的标量倍数。这个标量,我们通常用希腊字母 $\lambda$ (lambda) 表示。

$$ \nabla f(x^*, y^*) = \lambda \nabla g(x^*, y^*) $$

这就是拉格朗日乘数法的几何精髓。$\lambda$ 就是 **拉格朗日乘数** 。

## 拉格朗日函数与求解步骤

为了系统地求解这个问题,我们构造一个辅助函数,称为 **拉格朗日函数** (Lagrangian Function),用 $\mathcal{L}$ 表示。

假设我们的优化问题是: * **目标函数 (Objective Function)**:最大化或最小化 $f(x_1, x_2, \dots, x_n)$ * **约束条件 (Constraint Equation)**:满足 $g(x_1, x_2, \dots, x_n) = c$

我们可以构建如下的拉格朗日函数:

$$ \mathcal{L}(x_1, \dots, x_n, \lambda) = f(x_1, \dots, x_n) - \lambda (g(x_1, \dots, x_n) - c) $$

现在,原来的 **有约束** 优化问题就转化为了寻找拉格朗日函数 $\mathcal{L}$ 的 **无约束** {{{极值}}}问题。我们通过求解 $\mathcal{L}$ 对其所有变量(包括 $x_1, \dots, x_n$ 和 $\lambda$)的{{{偏导数}}} (Partial Derivatives) 为零的方程组,来找到可能的极值点(也称为{{{临界点}}} 或 {{{驻点}}})。

这个方程组被称为一阶必要条件 (First-Order Necessary Conditions): $$ \begin{cases} \frac{\partial \mathcal{L}}{\partial x_1} = \frac{\partial f}{\partial x_1} - \lambda \frac{\partial g}{\partial x_1} = 0 \\ \frac{\partial \mathcal{L}}{\partial x_2} = \frac{\partial f}{\partial x_2} - \lambda \frac{\partial g}{\partial x_2} = 0 \\ \quad \vdots \\ \frac{\partial \mathcal{L}}{\partial x_n} = \frac{\partial f}{\partial x_n} - \lambda \frac{\partial g}{\partial x_n} = 0 \\ \frac{\partial \mathcal{L}}{\partial \lambda} = -(g(x_1, \dots, x_n) - c) = 0 \end{cases} $$

让我们来分析这个方程组: * 前 $n$ 个方程合在一起,就是向量形式的 $\nabla f = \lambda \nabla g$,这恰好是我们从几何直观中得到的梯度平行条件。 * 最后一个方程 $\frac{\partial \mathcal{L}}{\partial \lambda} = 0$ 等价于 $g(x_1, \dots, x_n) = c$,这恰好是我们要满足的原始约束条件。

因此,通过求解这个包含 $n+1$ 个方程和 $n+1$ 个未知数($x_1, \dots, x_n, \lambda$)的方程组,我们就能找到满足约束条件的最优候选点。

## 详细案例:经济学中的效用最大化

在{{{微观经济学}}}中,一个经典的拉格朗日乘数法应用是求解消费者的 **{{{效用最大化}}}** 问题。

**问题设定** : 一个消费者希望最大化其从消费两种商品(商品X和商品Y)中获得的{{{效用}}}。 * 其 **{{{效用函数}}}** 为 $U(x, y) = x y$,其中 $x$ 和 $y$ 分别是消费的两种商品的数量。 * 商品X的价格 $p_x = 2$ USD,商品Y的价格 $p_y = 5$ USD。 * 消费者的 **{{{预算约束}}}** 是总支出不能超过其收入 $M = 100$ USD。即 $2x + 5y = 100$。

目标:在约束 $2x + 5y = 100$ 下,求 $U(x, y) = xy$ 的最大值。

---

#### **第一步:确定目标函数和约束条件** * **目标函数**:$f(x, y) = U(x, y) = xy$ * **约束条件**:$g(x, y) - c = 2x + 5y - 100 = 0$

#### **第二步:构建拉格朗日函数** 根据公式 $\mathcal{L} = f - \lambda(g-c)$: $$ \mathcal{L}(x, y, \lambda) = xy - \lambda (2x + 5y - 100) $$

#### **第三步:求偏导数并令其为零** 我们对 $x$, $y$, 和 $\lambda$ 分别求偏导数,得到一阶条件: 1. $\frac{\partial \mathcal{L}}{\partial x} = y - 2\lambda = 0$ 2. $\frac{\partial \mathcal{L}}{\partial y} = x - 5\lambda = 0$ 3. $\frac{\partial \mathcal{L}}{\partial \lambda} = -(2x + 5y - 100) = 0$

#### **第四步:求解方程组** 现在我们有一个由三个方程组成的系统,需要解出三个未知数 $x, y, \lambda$。 * 从方程(1)和(2),我们可以得到: $y = 2\lambda$ $x = 5\lambda$ * 将上述两式相除,可以消去 $\lambda$ 并得到 $x$ 和 $y$ 之间的关系: $\frac{x}{y} = \frac{5\lambda}{2\lambda} = \frac{5}{2} \implies 2x = 5y$

*经济学解释*:从方程(1) $y = 2\lambda$ 可得 $\lambda = \frac{y}{2}$。这里的 $y$ 是效用函数对 $x$ 的偏导数,即商品X的{{{边际效用}}} ($MU_x$)。$2$ 是商品X的价格 $p_x$。所以 $\lambda = \frac{MU_x}{p_x}$。同理,从方程(2)可得 $\lambda = \frac{MU_y}{p_y}$。因此,在最优点,我们有 $\frac{MU_x}{p_x} = \frac{MU_y}{p_y}$。这个条件意味着,在最优选择点,消费者花费在两种商品上的最后一美元所带来的边际效用是相等的。

* 将 $2x = 5y$ (或 $x = 2.5y$) 代入方程(3)(预算约束): $2x + 5y = 100$ $(5y) + 5y = 100$ $10y = 100 \implies y = 10$

* 现在将 $y=10$ 代回 $x=2.5y$: $x = 2.5 \times 10 = 25$

* 我们还可以求出 $\lambda$ 的值: $\lambda = \frac{y}{2} = \frac{10}{2} = 5$

所以,该消费者为了最大化其效用,应该购买 25 单位的商品X和 10 单位的商品Y。此时的最大效用为 $U(25, 10) = 25 \times 10 = 250$。

#### **第五步:拉格朗日乘数 $\lambda$ 的经济学解释** 在约束优化问题中,$\lambda$ 自身有非常重要的解释。它代表了当约束放宽一个单位时,目标函数最优值的近似变化量。换句话说,$\lambda$ 是目标函数关于约束常数 $c$ 的{{{边际价值}}}。

在我们的例子中,$\lambda = 5$。这里的约束是收入 $M=100$。这意味着,如果消费者的收入 **增加 1 USD** (从 100 变为 101),那么他能获得的最大效用将大约 **增加 5** 。 数学上,这可以表示为: $$ \lambda = \frac{\partial U_{max}}{\partial M} $$ 这个 $\lambda$ 在经济学中被称为 **收入的边际效用** (Marginal Utility of Income)。

## 扩展:多约束与不等式约束

### 1. 多个等式约束

如果问题有多个等式约束,例如对于变量 $\mathbf{x} = (x_1, \dots, x_n)$ 有 $m$ 个约束: * $g_1(\mathbf{x}) = c_1$ * $g_2(\mathbf{x}) = c_2$ * $\vdots$ * $g_m(\mathbf{x}) = c_m$

方法可以自然地推广。我们为每一个约束引入一个单独的拉格朗日乘数 $\lambda_1, \lambda_2, \dots, \lambda_m$。 拉格朗日函数变为: $$ \mathcal{L}(\mathbf{x}, \boldsymbol{\lambda}) = f(\mathbf{x}) - \sum_{i=1}^{m} \lambda_i (g_i(\mathbf{x}) - c_i) $$ 几何上,这意味着在最优点,目标函数的梯度 $\nabla f$ 是所有约束函数梯度 $\nabla g_1, \nabla g_2, \dots, \nabla g_m$ 的{{{线性组合}}}。 $$ \nabla f = \sum_{i=1}^{m} \lambda_i \nabla g_i $$

### 2. 不等式约束与KKT条件

拉格朗日乘数法主要处理等式约束。当问题中出现不等式约束时,例如 $g(x) \le c$,我们需要使用其推广形式,即 **{{{卡鲁什-库恩-塔克 (Karush-Kuhn-Tucker, KKT) 条件}}}**。

KKT条件的核心思想是区分两种情况: 1. **约束不饱和/非绑定 (Non-binding)** :最优解在约束区域的内部,即 $g(x) < c$。在这种情况下,这个约束实际上没有起到限制作用,问题等价于一个无约束问题。此时,拉格朗日乘数 $\lambda = 0$。 2. **约束饱和/绑定 (Binding)** :最优解在约束区域的边界上,即 $g(x) = c$。在这种情况下,问题与等式约束问题完全相同,$\lambda$ 通常不为零(对于最大化问题,通常 $\lambda \ge 0$)。

为了将这两种情况统一起来,KKT条件引入了一个 **{{{互补松弛性}}} (Complementary Slackness)** 条件: $$ \lambda (g(x) - c) = 0 $$ 这个条件巧妙地指出,$\lambda$ 和 $(g(x) - c)$ 两者中必须至少有一个为零。 * 如果约束不饱和,$g(x) - c < 0$,那么必须 $\lambda = 0$。 * 如果 $\lambda > 0$,那么必须 $g(x) - c = 0$,即约束是饱和的。

KKT条件是解决更广泛非线性规划问题(包含不等式约束)的基石,在经济学和工程学的许多高级优化问题中都至关重要。