ARTICLE

拉格朗日乘数

拉格朗日乘数 (Lagrange Multiplier) 拉格朗日乘数法 (Method of Lagrange Multipliers) 是一种在 多元微积分 中寻找一个或多个变量的函数在受到一个或多个 等式约束 条件下的 极值(最大值或最小值)的策略。通过引入一个或多个被称为 拉格朗日乘数 的新标量,此方法可以将一个有约束的 优化问题 转化为一个无约束的

浏览 47 更新 2025-10-26

拉格朗日乘数 (Lagrange Multiplier)

拉格朗日乘数法 (Method of Lagrange Multipliers) 是一种在 多元微积分 中寻找一个或多个变量的函数在受到一个或多个 等式约束 条件下的 极值(最大值或最小值)的策略。通过引入一个或多个被称为 拉格朗日乘数 的新标量,此方法可以将一个有约束的 优化问题 转化为一个无约束的优化问题,从而使其更容易求解。

这一方法由数学家 约瑟夫·拉格朗日 提出,是 最优化理论数理经济学、工程学以及其他定量学科中的一个基本工具。

问题的提出与几何直观

考虑一个典型的约束优化问题:

目标: 寻找函数 f(x,y)f(x, y) 的最大值或最小值。

约束: 变量 xxyy 必须满足方程 g(x,y)=cg(x, y) = c,其中 cc 是一个常数。

我们可以从几何上直观地理解这个问题。

  1. 目标函数 f(x,y)f(x, y):可以想象成一个三维空间中的地貌图,其中 f(x,y)f(x, y) 的值代表在点 (x,y)(x, y) 处的海拔高度。我们的目标是找到最高或最低点。
  2. 约束条件 g(x,y)=cg(x, y) = c:这个方程在 xyxy 平面上定义了一条曲线。这相当于在地貌图上画出的一条必须遵循的路径。

因此,约束优化问题就变成了:在一个固定的路径上,能达到的最高或最低海拔是多少?

现在,引入目标函数 f(x,y)f(x, y)等高线(Level Sets)。等高线是所有使得 f(x,y)f(x, y) 等于某个常数值 dd 的点 (x,y)(x, y) 的集合。在这些线上,函数值(海拔)是恒定的。

关键的洞见在于:当我们在约束路径 g(x,y)=cg(x, y) = c 上移动并到达一个局部最大值或最小值点时,这条路径曲线必然与该点所在的 ff 的等高线相切。

为什么?假设在最优点,约束路径与等高线相交而不是相切。这意味着我们可以沿着约束路径再走一小步,从而移动到一条不同的、更高(或更低)的等高线上,这就与我们已经处于最优点相矛盾。只有当两者相切时,沿着约束路径的任何微小移动都不会立即改变 ff 的值(在一阶近似下),这正是达到极值的条件。

数学表述:梯度的平行关系

"相切"这个几何概念在数学上可以用 梯度 (Gradient) 来精确描述。

  • 一个函数在某点的 梯度 向量 f(x,y)\nabla f(x,y) 指向该函数值增长最快的方向,并且与该点的等高线 垂直
  • 同理,函数 g(x,y)g(x,y) 的梯度 g(x,y)\nabla g(x,y) 与其等高线 g(x,y)=cg(x,y)=c 垂直

当约束曲线 g(x,y)=cg(x, y) = c 与目标函数的等高线 f(x,y)=df(x, y) = d 在某一点 (x0,y0)(x_0, y_0) 相切时,它们在该点拥有共同的切线,因此它们的法线(即梯度向量)也必须是平行的。

这意味着,在最优点 (x0,y0)(x_0, y_0),两个梯度向量 f\nabla fg\nabla g 指向相同或完全相反的方向。用数学语言来说,一个梯度向量是另一个梯度向量的标量倍。用希腊字母 λ\lambda (lambda) 来表示这个标量:

f(x0,y0)=λg(x0,y0)\nabla f(x_0, y_0) = \lambda \nabla g(x_0, y_0)

这个标量 λ\lambda 就是 拉格朗日乘数

拉格朗日函数

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

L(x,y,λ)=f(x,y)λ(g(x,y)c)\mathcal{L}(x, y, \lambda) = f(x, y) - \lambda (g(x, y) - c)

这个函数巧妙地将原约束问题转化为了一个无约束问题。寻找 L\mathcal{L}临界点(即所有偏导数都为零的点)的过程,等价于同时满足梯度平行条件和原约束条件。

计算 L\mathcal{L}偏导数 并令它们等于零:

  1. Lx=fxλgx=0\frac{\partial \mathcal{L}}{\partial x} = \frac{\partial f}{\partial x} - \lambda \frac{\partial g}{\partial x} = 0
  2. Ly=fyλgy=0\frac{\partial \mathcal{L}}{\partial y} = \frac{\partial f}{\partial y} - \lambda \frac{\partial g}{\partial y} = 0
  3. Lλ=(g(x,y)c)=0\frac{\partial \mathcal{L}}{\partial \lambda} = -(g(x, y) - c) = 0

观察这个方程组:

  • 前两个方程可以合并写成向量形式:f(x,y)=λg(x,y)\nabla f(x, y) = \lambda \nabla g(x, y),这正是从几何直观中得到的梯度平行条件。
  • 第三个方程就是原问题的约束条件:g(x,y)=cg(x, y) = c

因此,通过求解这个关于变量 x,yx, yλ\lambda 的方程组,就能找到所有可能的极值点(候选点)。

求解步骤

  1. 确定目标和约束: 写出目标函数 f(x)f(\mathbf{x}) 和约束方程 g(x)=cg(\mathbf{x}) = c。(这里用向量 x\mathbf{x} 代表所有变量)。
  2. 构造拉格朗日函数: L(x,λ)=f(x)λ(g(x)c)\mathcal{L}(\mathbf{x}, \lambda) = f(\mathbf{x}) - \lambda(g(\mathbf{x}) - c)
  3. 求偏导数: 计算 L\mathcal{L} 对所有变量 x\mathbf{x}λ\lambda 的偏导数。
  4. 建立方程组: 令所有偏导数等于零,得到一个方程组。
  5. 求解方程组: 解出所有满足条件的点 (x,λ)(\mathbf{x}, \lambda)。其中的 x\mathbf{x} 就是约束极值的候选点。
  6. 评估候选点: 将所有候选点 x\mathbf{x} 代入原目标函数 f(x)f(\mathbf{x}),比较函数值,从而确定最大值和最小值。

拉格朗日乘数 λ\lambda 的经济学解释

在经济学和金融学中,拉格朗日乘数 λ\lambda 具有非常重要的解释,通常被称为 影子价格 (Shadow Price) 或边际价值。

它衡量的是当约束条件被稍微放宽一点时,目标函数的最大值会发生多大的变化。具体来说:

λ=dfmaxdc\lambda = \frac{df_{\text{max}}}{dc}

其中 fmaxf_{\text{max}} 是目标函数的优化值。

示例:效用最大化 问题

一个消费者希望从购买两种商品(数量分别为 x1,x2x_1, x_2)中最大化其 效用 U(x1,x2)U(x_1, x_2)。他的 预算约束p1x1+p2x2=Mp_1 x_1 + p_2 x_2 = M,其中 p1,p2p_1, p_2 是价格,MM 是总收入。

  • 目标函数: f(x1,x2)=U(x1,x2)f(x_1, x_2) = U(x_1, x_2)
  • 约束条件: g(x1,x2)=p1x1+p2x2=Mg(x_1, x_2) = p_1 x_1 + p_2 x_2 = M
  • 拉格朗日函数: L(x1,x2,λ)=U(x1,x2)λ(p1x1+p2x2M)\mathcal{L}(x_1, x_2, \lambda) = U(x_1, x_2) - \lambda(p_1 x_1 + p_2 x_2 - M)

在这里,解出的拉格朗日乘数 λ\lambda 代表 收入的边际效用 (Marginal Utility of Income)。它的值表示如果消费者的收入 MM 增加一个单位,他所能获得的最大效用将增加大约 λ\lambda 个单位。

推广到多个约束

拉格朗日乘数法可以自然地推广到处理多个约束的情况。假设问题是最大化或最小化 f(x)f(\mathbf{x}),但受到 kk 个约束: g1(x)=c1,g2(x)=c2,,gk(x)=ckg_1(\mathbf{x}) = c_1, g_2(\mathbf{x}) = c_2, \ldots, g_k(\mathbf{x}) = c_k

此时,需要为每一个约束引入一个单独的拉格朗日乘数 λ1,λ2,,λk\lambda_1, \lambda_2, \ldots, \lambda_k。拉格朗日函数变为:

L(x,λ1,,λk)=f(x)i=1kλi(gi(x)ci)\mathcal{L}(\mathbf{x}, \lambda_1, \ldots, \lambda_k) = f(\mathbf{x}) - \sum_{i=1}^{k} \lambda_i (g_i(\mathbf{x}) - c_i)

梯度条件也相应地变为,目标函数的梯度是所有约束函数梯度的 线性组合

f(x)=i=1kλigi(x)\nabla f(\mathbf{x}) = \sum_{i=1}^{k} \lambda_i \nabla g_i(\mathbf{x})

求解过程与单个约束的情况类似,只是需要求解一个更大的方程组。

局限性与扩展

  • 不等式约束: 标准的拉格朗日乘数法只适用于 等式约束。对于包含 不等式约束(例如 g(x)cg(\mathbf{x}) \le c)的更一般性的优化问题,需要使用其扩展理论,即 卡罗需-库恩-塔克条件 (Karush-Kuhn-Tucker, KKT)
  • 充分条件: 拉格朗日乘数法给出的是极值的必要条件,而非充分条件。要确定一个候选点确实是最大值还是最小值,需要考察二阶条件,这通常涉及分析 带边海森矩阵 (Bordered Hessian) 的性质。