拉格朗日乘数:带约束的最优化
几乎每个现实中的决定都是一个带约束的最大或最小值问题。工厂想要最大的利润,但原料有限。一个罐子要装 350 毫升,用的铝要尽量少。单摆想怎么动都行,只要小球一直拴在绳子上。拉格朗日为所有这些问题找到了一个统一的方法。它出现在 1788 年的《分析力学》中,用来处理力学系统的约束;也出现在 1797 年的《解析函数论》中,作为一条一般的计算规则。
围栏
先从一个希腊人就会解的问题开始。用 20 米长的围栏,围成的哪个矩形面积最大?设两边为 $x$ 和 $y$,我们要求
$$f(x,y)=xy\qquad\text{在约束}\qquad g(x,y)=x+y=10$$下的最大值。这里很容易解出 $y=10-x$,再求 $x(10-x)$ 的最大值。但在许多问题中,约束是一个复杂的方程,什么也解不出来。拉格朗日想要一种永远不需要这样做的方法。
一个新字母
拉格朗日的配方是增加一个新的未知数,今天我们叫它 $\lambda$,即乘数,并要求 $f$ 的导数与 $g$ 的导数成比例:
$$\begin{aligned}\frac{\partial f}{\partial x}&=\lambda\,\frac{\partial g}{\partial x},\\ \frac{\partial f}{\partial y}&=\lambda\,\frac{\partial g}{\partial y},\\ g(x,y)&=10.\end{aligned}$$在围栏问题中,$\frac{\partial f}{\partial x}=y$,$\frac{\partial f}{\partial y}=x$,$g$ 的导数都等于 $1$。方程变成
$$y=\lambda,\qquad x=\lambda,\qquad x+y=10,$$于是 $x=y=5$。最好的矩形是 5 乘 5 的正方形,面积 25 平方米。不需要解出任何东西:约束作为又一个方程进来,$\lambda$ 作为又一个未知数进来。
为什么管用
下图画出了面积 $xy$ 取固定值 9、16、25 和 36 的曲线,以及约束直线 $x+y=10$。沿着直线走,我们经过面积越来越大的曲线,直到面积为 25 的曲线。之后面积又开始减小。面积为 36 的曲线根本碰不到这条直线。
在最优点,直线与面积最大的曲线相切。如果它们相交,就可以沿直线再走一点,进入面积更大的曲线。相切的曲线方向相同,所以在那里 $f$ 和 $g$ 的导数成比例。乘数 $\lambda$ 就是这个比例的因子。
λ 说明了什么
拉格朗日引入 $\lambda$ 原本只是一个计算手段,但它有含义。在围栏问题中,$\lambda=5$。如果两边之和从 $s=10$ 变成任意值 $s$,最大面积就是边长为 $\frac s2$ 的正方形的面积,即 $\frac{s^2}{4}$。这个面积的变化率是
$$\frac{d}{ds}\left(\frac{s^2}{4}\right)=\frac s2=5=\lambda.$$乘数告诉你放宽约束能得到多少:两边之和每多 1 米,面积大约多 5 平方米。经济学家把 $\lambda$ 称为影子价格:稀缺资源多一个单位值多少。
在拉格朗日发明这个方法的力学中,乘数也有物理意义。它就是约束力。在单摆中,如果不用角度作坐标,而是用 $x$ 和 $y$ 加上约束 $x^2+y^2=\ell^2$,出现的乘数就与绳子的张力成正比。被拉格朗日的方法消去的力,在需要时又以字母 $\lambda$ 的形式回来了。
练习:直线 x + 2y = 5 上哪一点离原点最近?
我们最小化距离的平方 $f=x^2+y^2$,约束为 $g=x+2y=5$。方程是 $2x=\lambda$、$2y=2\lambda$ 和 $x+2y=5$。由前两个得 $y=2x$,约束给出 $5x=5$。所求点为 $(1,2)$,距离为 $\sqrt5\approx2.24$,$\lambda=2$。
练习:圆柱形罐子做成什么形状最省材料?
设半径为 $r$、高为 $h$,体积 $V=\pi r^2h$ 固定,要使表面积 $S=2\pi r^2+2\pi rh$ 最小。拉格朗日方程是
$$\begin{aligned}4\pi r+2\pi h&=\lambda\cdot2\pi rh,\\ 2\pi r&=\lambda\cdot\pi r^2.\end{aligned}$$由第二个得 $\lambda=\frac2r$。代入第一个,$4\pi r+2\pi h=4\pi h$,于是 $h=2r$:高应等于直径。罐头往往接近这个比例。饮料罐更高一些,因为罐盖比罐壁更厚、更贵,计算就变了。
资料来源: Joseph-Louis Lagrange,Méchanique analitique(1788)和 Théorie des fonctions analytiques(1797)· 拉格朗日传记,MacTutor · Harold W. Kuhn 与 Albert W. Tucker,“Nonlinear Programming”(1951)。
拉格朗日的全部主题 · ← 没有无穷小的导数与中值定理 · 拉格朗日的遗产 →
图片来源.