如何使用?
我们首先关注怎么调用这个方法。
一个二维的例子
求
解:
设 $g = x^2 + y^2 - 1$
设 $L (x,y,\lambda) = f + \lambda g = x^2y + \lambda (x^2 + y^2 - 1)$
令
解方程,得:
一个三维的例子
求
解:
设函数 $L (x,y,z,\lambda) = xyz - \lambda \left (\dfrac {1}{x}+\dfrac {1}{y}+\dfrac {1}{z}-\dfrac {1}{a}\right)$
求各参数的偏导,并令之为 0:
解得 $x = y = z= 3a$,代入,得到最小值:$27a^3$
为什么能求出最小值?
何时函数取极值? 我们可以想象函数作为一个标量场,是一个曲面。曲面上各点的 梯度向量,指向了函数增长最快的方向。如果各方向增长都一样,则 $\nabla f = \vec {0}$,函数无法向周围调整以取得更好的值。此时,函数一定在一个(局部)极值点。
推而广之,若函数取极值,必有切平面与梯度正交。即:梯度要么为零向量,要么与切平面法向同向。
设梯度为 $\nabla f$,切平面(切空间)的法向为 $n$,则 $\nabla f = kn$
当约束条件增加时,我们不能单纯求出 $f$ 的极值,因为这很可能不满足约束条件。怎么办?只有联立二者。
以第一题为例,首先我们放入 $f = x^2y$ 的曲面:
然后我们添加约束 $g (x) = x^2 + y^2 -1 = 0$,它与上面的曲面的交界如下图蓝色闭合曲线所示:
相当于问:如果点只能在上图蓝色空间(曲线)上移动,则点的最小 $z$ 坐标是多少?
为了直到怎么求极值点,我们看极值点有何性质。我们在曲线 $C$ 上移动,当 $z$ 不能再往下时,就达到最小值。这个时候,$f$ 与 $g$ 相切,(看下面的图)从切点的情况看,无法通过向周围调整使得函数值更小。即此时 $f,g$ 的梯度向量共线(下图绿线)(还问为什么?看本节开头第一句话)。
为什么取极值时一定相切?
再详细说说为什么相切。还是这个图,不过我们换个视角,从上往下去看:
我们将看到一个圆,这是 $g (x)$ 在 $xOy$ 平面的投影。可以很明显注意到相切。那么对于切点的两侧,梯度自然就是共线的:
则 $f,g$ 的梯度向量必须同向。即:
这就是拉格朗日乘数法的方程。
对于计算以下方程的解
相当于求解各分量为 0 的联立方程。由于梯度是向量,向量可以按分量做加减法,同时梯度又具有微分的性质,所以整体可以作为一个关于 {各维度分量、 $\lambda$} 的函数 $L = \vec {0}$,求解其各偏导为 0 时的解。
再来个例子
读者可能会不服,因为上面正好是个圆,太特殊了。下面,求函数 $f = (a+1)(b+2)$ 在约束 $a^2+2b^2 = 2$ 下的最大值和最小值。
约束联立形成的曲线如下图所示:
最小值点,二面相切:
最大值点,二面相切:
为什么相切的几何原理上面已经说过,再次重申:如果不相切,那么朝着切点调整,可以取到更优的值。
分析学证明
这里只是简单证明三维的情况,更高维度同理。设 $f$ 在约束曲面上有极值点 $P$,令 $\mathbf {r}(t)=\langle x (t), y (t), z (t)\rangle$ 使得 $P = (x (0),y (0),z (0))$
令 $h (t)=f (x (t), y (t), z (t))$. 这样 $h (t)$ 在 $t=0$ 时,$h (0) = f (\vec {P})$,即取到极值。根据多元函数链式法则:
因为 $t=0$ 取到局部极值,因此有(高中都学过,取到极值则导数为 0):
PS:实际上充分条件是邻域同号,但我们相当于已经直到了是极值,所以用必要条件导数为零即可。
Thus, $\left.\nabla f\right|_{P}$ is perpendicular to any curve on the constraint surface through $P$. This implies $\left.\nabla f\right|_{P}$ is perpendicular to the surface. Since $\left.\nabla g\right|_{P}$ is also perpendicular to the surface we have proved $\left.\nabla f\right|_{P}$ is parallel to $\left.\nabla g\right|_{P} . \quad$ QED
参考
(1)拉格朗日乘数法方程组四种解法 _哔哩哔哩 _bilibili
(2)calculus - Why do Lagrange Multipliers work? - Mathematics Stack Exchange
(3)Math3d: Online 3d Graphing Calculator / CalcPlot3D (libretexts.org) 自己画图试试~
(4)Lagrange multiplier - Wikipedia