拉格朗日乘子

拉格朗日乘子


1 拉格朗日乘子又称未定乘子,用于求解有一个或多个约束条件的函数驻点。考虑求 (f(mathbf{x})) 的最大值,约束条件为 (g(mathbf{x})=0) ,我们观察这样的驻点 (mathbf{x}^*) 满足什么样的条件。显然 (mathbf{x}^*)(D) 维空间中由约束条件 (g(mathbf{x})=0) 确定的 (D-1) 维表面上,并且梯度 ( abla g(mathbf{x})) 必然垂直于该表面(该点处微平面的法向量)。

考虑 (g(mathbf{x})) 的泰勒展开,由于 (mathbf{x}) 在曲面 (g(mathbf{x})=0) 上,对于同在该曲面上的 (mathbf{x}+oldsymbolepsilon) ,有

[g(mathbf{x}+oldsymbolepsilon)= g(mathbf{x})+oldsymbolepsilon^ ext{T} abla g(mathbf{x})+o(VertoldsymbolepsilonVert), ]

另一方面

[g(mathbf{x}+oldsymbolepsilon)=g(mathbf x)=0, ]

从而

[lim_{VertoldsymbolepsilonVert ightarrow 0}oldsymbolepsilon^ ext{T} abla g(mathbf{x})=0. ]

值得注意的是,这里 (oldsymbolepsilon) 在微平面 ((mathbf x, abla g(mathbf x))) (点法式)上,因为我们已经限定 (g(mathbf x)equiv 0) ,从而 (oldsymbolepsilon) 的维度也受到了限制。

由于 (mathbf{x}^*)(f(mathbf{x})) 的驻点,且 (mathbf{x}^*) 在曲面 (g(mathbf{x})=0) 上,因此 ( abla f(mathbf{x}^*)) 必然也与该曲面垂直。故而存在某个常数 (lambda) 满足

[ abla f+lambda abla g=0, ]

这里 (lambda eq 0) 即为拉格朗日乘子,对应地,拉格朗日函数为

[L(mathbf{x},lambda)equiv f(mathbf{x})+lambda g(mathbf{x}), ]

( abla_{mathbf{x},lambda}L=0)等价表示了约束条件下函数驻点的求解。

直观上讲,所谓拉格朗日乘子和最简单的设未知数求方程没有本质区别。这里我们知道 (lambda) 存在,从而先设出来而不是直接求出来,再利用方程组隐式表达所有约束或最值条件。

考虑约束条件是不等式时的情况,不失一般性地,假定约束条件为(g(mathbf{x})geq 0),最大化函数为(f(mathbf{x}))。分别考虑等号是否取得,可构造相同的拉格朗日函数,约束条件如下

[egin{aligned} g(mathbf{x})&geq0\ lambda&geq 0\ lambda g(mathbf{x})&=0, end{aligned}]

即KKT(Karush-Kuhn-Tucker)条件。

显然这里对 (lambda) 符号的约束仍然是一阶条件。

若最小化函数是(f(mathbf{x})),此时拉格朗日函数为

[L(mathbf{x},lambda)equiv f(mathbf{x})-lambda g(mathbf{x}), ]

KKT条件不变。

原文地址:https://www.cnblogs.com/astoninfer/p/9318327.html