If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

拉格朗日乘数的解释

拉格朗日乘数不仅仅是帮助解决约束优化问题的神秘变量..。

拉格朗日乘数技巧, 快速回顾

约束优化
图片来源: 作者Nexcis (本人作品) [公共领域], 维基共享
多元函数 f(x,y,) 的约束条件是, 另一个多元函数 g(x,y,)=c 等于一个常数. 如果你想最大化(或最小化)这个多元函数f, 你可以遵照下面的步骤进行:
  • 步骤 1: 引入一个新的变量 λ, 并定义一个新的函数 L , 如下所示:
L(x,y,,λ)=f(x,y,)λ(g(x,y,)c)
函数 L 叫做 "拉格朗日函数", 新的变量 λ 即所谓的 "拉格朗日乘数"
  • 步骤 2: 将 L 的梯度设置为零向量.
    L(x,y,,λ)=0零向量
换句话说, 我们要求解 L临界点 .
  • 步骤 3: 考虑每个解 (x0,y0,,λ0). 将每个解代入 f. 或者, 先去掉 λ0 分量, 然后代入 f, 这是因为 λ 不是 f 的一个输入. 那个使函数值最大 (最小) 的解 就是你要求的最大 (或最小) 的点.

重新温习预算约束

上一篇文章 中,我们给出了应用拉格朗日乘数的例子, 其中包括下面这个问题.
  • 问题: 假设你经营一家工厂, 工厂生产某种以钢材为原料的零件. 成本主要是人工, 工人的工资是每小时 $20 , 钢材每吨 $170. 假设工厂的收益 R 可粗略用这个式子表示:
    R(h,s)=200h2/3s1/3
这里
  • h 代表工人工作的小时数
  • s 代表消耗钢材的吨数
如果你的预算是 $20,000, 那么最大可能收益是多少?
下面这张交互关系图有助于你理解这个问题, 这张图让你知道哪些 (h,s) 值可以让你取得给定的收益 (蓝色曲线), 又是哪些个值满足约束条件 (红线).
求解的全部细节可在上篇文章中找到. 这里我们的目的是让你知道, 当我们遵照拉格朗日乘数方法的步骤求解这道题时, 我们会得到什么.
  • 我们根据函数 R(h,s) 及其约束条件 20h+170s=20,000, 写出拉格朗日函数 L(h,s,λ) .
    L(h,s,λ)=200h2/3s1/3λ(20h+170s20000)
  • 然后我们求 L 的临界点,也就是下面这个方程的解
    L(h,s,λ)=0
  • 这个方程可能有好几个解 (h,s,λ) ,
    (h0,s0,λ0)(h1,s1,λ1)(h2,s2,λ2)
对于每个解, 你把 hs 分量代入收益函数 R(h,s), 看看哪一个能得到最大值.
通常我们把使函数取得最大值的临界点写成 (h,s,λ), 用星号上标表示这是一个解. 也就是说, hs 表示你应该采纳的人工小时数和钢材吨数, 从而让你在预算内能获得最大的收益. 但是我们怎样理解使函数取得最大值的拉格朗日乘数 λ? 这是本文所要讨论的核心议题.
原来 λ 让我们知道通过改变预算我们能多赚多少钱.
我们来了解一下改变预算意味着什么. 下面的方法与上面的类似, 红线表示满足预算约束的点 (h,s) , 但当预算在 $20,000 附近变化时, 红线也随之移动. 预算用变量 b 表示.
对于每个预算 b 的值, 确保两曲线仍有交点的情况下, 让 R 最大化. 注意, 如果b 发生变化, R 的最大值也随之发生改变. 我们要研究的是改变发生的细节.
M 表示你实现的最大收入. 在下一个交互关系图中, 你能改变的唯一变量是 b, 你会看到 M 的值如何随 b 发生变化.
换句话说, 最大收入 M 是预算 b 的函数, 所以把它写成:
M(b)
我们现在给出一个让人惊讶的事实: 拉格朗日乘数 λ(b)M 的导数:
dMdb(b)=λ(b)
根据上面的交互关系图, 这意味着当你移动代表 b 的绿点时, 代表 M 的黑点的变化率就是 λ(b).
要证明这一点有点儿麻烦, 但首先, 我们花点儿时间解释一下. 例如, 如果我们知道 λ(b)=2.59, 这意味着你花在预算上的钱每增加一元, 你的收益会增加 $2.59 . 相反, 预算每减少一元, 那么你的收益也将减少那么多钱.
这种对 λ 的解释在经济学中非常常见, 人们给它起了个名字: "影子价格". 它表示约束条件的放松或加强对收益的影响: 即预算增加(约束放松)一元, 你多赚的钱; 或者相反, 当预算减少(约束强化)一元, 你少赚的钱.

总结

我们来总结一下上述关于预算的例子, 看看为什么它是对的. 讲清楚来龙去脉需要很长的篇幅, 但你应该始终在脑子里想着这个问题: "当约束条件改变时, 答案如何变化?".
我们从拉格朗日乘数的引入开始讲起. 我们想要让这个函数取得最大值.
f(x,y)
但约束条件是,
g(x,y)=c
我们先写下拉格朗日函数,
L(x,y,λ)=f(x,y)λ(g(x,y)c).
(x,y,λ) 表示 L 的临界点, 他们其实就是预算优化问题的解. 换言之,
L(x,y,λ)=0
并且 (x,y) 使 f 取得最大值(取决于约束条件).
当我们把 c 视为变量时, 我们必须考虑到这样一个事实: 解 (x,y,λ) 随约束条件 c 的变化而变化. 为此, 我们将每个分量作为 c 的一个函数:
x(c)y(c)λ(c)
换言之, 当约束等于某一值 c 的时候, 拉格朗日乘数问题的解是 (x(c),y(c),λ(c)).
现在我们让 M(c) 表示作为c的函数的f的 (受限制的) 最大值, 它可以用 f, x(c)y(c) 表示如下:
M(c)=f(x(c),y(c))
我们最终要证明的结果是
dMdc=λ(c)
这是一个有约束条件的函数的极值问题, 而拉格朗日乘数 λ 给出了这个极值问题的解的变化率.

想要比老师聪明吗?

证明这个结果可能让你会做噩梦, 因为没有给出函数 x(c), y(c), λ(c)M(c) 的确切的公式. 这意味着你要从 x, yλ 的定义着手, 即 L(x,y,λ)=0, 然后找到 dMdc. 这不是一件容易事 (但值得一试!).
有一个有趣的故事, 说一个教授被问及他从学生那儿学到的最严酷的事实是什么. 这位教授回忆起一个经历, 他曾经教过一节课, 在课上他要完成一项冗长复杂的数学证明. 结果有个学生提出了一个简单得多的证明方法. 他说, 那节课让他意识到他并不像他想像得那么聪明.
他提到的这个证明恰巧是我们现在要证明的. 尽管学生的方法并不 简单, 像故事说的那样, 但这个方法仍然是解决这个问题的一个简洁的方法. 更重要的是, 相比其他证明方法, 它更易被记住, 因此我这里会详细说明这种方法. 在数学中经常会发生这样的情况, 一点洞察就能让我们免于复杂的代数过程.

洞察

这个关键的洞察就是拉格朗日函数的解 (x,y,λ) 使其实现最大值 M. 这是因为拉格朗日函数中的项 "g(x,y)c" 等于零 (因为解必须满足约束条件), 因此我们有:
L(x,y,λ)=f(x,y)λ(g(x,y)c)=f(x,y)+0=M
考虑到我们要求解 dMdc, 这表明我们应该找到一种方法使 L 成为 c 的函数. 那么我们就有可能将该导数与函数Lc 上的导数联系起来.

后续操作

首先将 L 视为四个变量而不是三个变量的函数, 因为 c 现在是一个变化的值:
L(x,y,λ,c)=f(x,y)λ(g(x,y)c).
深度思考: 当 L 被写成四变量函数时, Lc 是多少?
选出正确答案:

这个偏导数很有用, 因为我们的目标是证明 dMdc=λ, 而且我们知道极值的解满足 M=L . 然而我们还有工作要做.
对于给定的值 c, 我们其实只关心当解是(x,y,λ)时, L 的值, 因此我们用x(c),y(c)λ(c) 代替 x,yλ. 他们是 c 的函数, 是给定一个 "常数" c 时, 对应的拉格朗日函数问题的解.
因此我们可以把 M 写成 c 的函数, 如下所示:
M(c)=L(x(c),y(c),λ(c),c)
尽管这个表达式只有一个变量 c, 但四变量函数 L 充当了媒介. 因此, 为了求它在 c 上的 (普通) 导数, 我们运用 多变量链式法则:
dMdc=ddcL(x(c),y(c),λ(c),c)=Lxdxdc+Lydydc+Lλdλdc+Lcdcdc
请注意, 上述表达式中的每个偏导数应该是其在极值点 (x(c),y(c),λ(c),c) 上的值, 但那样写的话会让这个表达式比现在的形式乱得多.
这个表达式可能看起来有点儿长, 但记住每个项 x, yλ 的定义是什么. 每个偏导数 Lx, Ly, 和 Lλ 在极值点(x,y,λ) 上的值为零. 极值解 (x,y,λ) 正是这样被定义的 ! 这意味着前三项都为零.
Lxdxdc+Lydydc+Lλdλdc+Lcdcdc
此外, 由于 dcdc=1, 整个表达式简化为
dMdc=Lc
请务必注意, 这样简化的原因在于解 (x,y,λ) 所具有的特殊性质. 否则, 根据多变量链式法则计算全导数简直是一场噩梦!
为了表达上的简洁, 上面的表达式略去了求导函数的输入(自变量), 现在我们把他们写进去.
dMdc(c)=Lc(x(c),y(c),λ(c),c)
根据上面深度思考问题的答案 Lc=λ, 我们得到
dMdc(c)=λ(c)
已完成

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.