1 引例
我想大多数人对于朗格朗日乘数法的学习已经是好多年前的事情,其中的细节也自然是慢慢模糊了起来,但是对于它的作用我想几乎是不会忘记的,那就是用来求解条件极值。既然大多数人的记忆都停留在这个地方,那么我们就从这个开始重新拾起拉格朗日乘数法。下面就以一个例题来重温一下求解过程:
求解目标函数z=xyz=xyz=xy在约束条件下x+y=1x+y=1x+y=1的条件极值。
解:作拉格朗日函数
F(x,y,λ)=xy+λ(x+y−1)(1) F(x,y,\lambda)=xy+\lambda(x+y-1)\tag 1 F(x,y,λ)=xy+λ(x+y−1)(1)
由式子(1)(1)(1)可得FFF的驻点:
Fx=y+λ=0Fy=x+λ=0Fλ=x+y−1=0(2) \begin{aligned} F_x&=y+\lambda=0\\ F_y&=x+\lambda=0\\ F_{\lambda}&=x+y-1=0 \end{aligned}\tag 2 FxFyFλ=y+λ=0=x+λ=0=x+y−1=0(2)
解方程组(2)(2)(2)便可以求得x,y,λx,y,\lambdax,y,λ:
⟹ x=12;y=12;λ=−12 \implies x=\frac{1}{2};y=\frac{1}{2};\lambda=-\frac{1}{2} ⟹x=21;y=21;λ=−21
由此我们便可以知道,目标函数z=xyz=xyz=xy在约束条件下x+y=1x+y=1x+y=1的条件极值为z=12∗12=14z=\frac{1}{2}\ast\frac{1}{2}=\frac{1}{4}z=21∗21=41。那为什么可以通过这样的方法来求得条件极值呢?
2 什么是拉格朗日乘数法
在数学优化问题中,拉格朗日乘数法(Lagrange multipliers )是一种用于求解等式约束条件下局部最小(最大)值的策略。它的基本思想是通过将含约束条件的优化问题转化为无约束条件下的优化问题,以便于得到各个未知变量的梯度,进而求得极值点[1]。因此,一句话就是拉格朗日乘数法是一种用来求解条件极值的工具。那么什么又是条件极值呢?
2.1 条件极值
所谓条件极值是指,在一定约束条件下(通常为方程)目标函数的极值就称为条件极值。

如图所示,函数z=f(x,y)z=f(x,y)z=f(x,y)在其定义域上的极大值(也是最大值)为z=f(x1,y1)z=f(x_1,y_1)z=f(x1,y1);但如果此时对其施加一个约束条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0,那这就等价的告诉函数z=f(x,y)z=f(x,y)z=f(x,y)极值点同时还要满足约束条件。因此,z=f(x,y)z=f(x,y)z=f(x,y)在约束条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0下的极值点只能在(x0,y0)(x_0,y_0)(x0,y0)处获得(因为此时的φ(x0,y0)=0\varphi(x_0,y_0)=0φ(x0,y0)=0,而φ(x1,y1)≠0\varphi(x_1,y_1)\neq0φ(x1,y1)=0即不满足约束条件)。现在我们已经对条件极值有了一个直观上的理解,那么接下来要探究的就是怎么才能找到这个极值。
2.2 如何求解条件极值
我们知道在一元函数f(x)f(x)f(x)中可以利用极值的必要条件来求解f(x)f(x)f(x)的极值。一元函