在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。本文介绍拉格朗日乘数法(Lagrange multiplier)。
概述
-
我们擅长解决的是无约束极值求解问题,这类问题仅需对所有变量求偏导,使得所有偏导数为0,即可找到所有极值点和鞍点。我们解决带约束条件的问题时便会尝试将其转化为无约束优化问题
-
事实上如果我们可以通过g得到某个变量的表示,例如 x 1 = h ( x 2 , . . . , x n ) x_1 = h(x_2, ..., x_n) x1=h(x2,...,xn),将该式带入 y y y即可抓换为无约束优化(初高中就是这么做的,所谓消元法是也),但有的时候我们无法得到这样的表示,便需要借助拉格朗日乘数法来避免消元法的困境。
作为一种优化算法,拉格朗日乘数法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有 n n n个变量和 k 个 k个 k个约束条件的约束优化问题转化为含有 ( n + k ) (n+k) (n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。
思想
- 考虑二元函数 f ( x , y ) f(x,y) f(x,y),在约束 g ( x , y ) = c g(x,y)=c g(x,y)=c下的极值
- 首先我们可以绘制出 f ( x , y ) f(x,y) f(x,y)的一层层等高线,当等高线与 g ( x , y ) = c g(x,y)=c g(x,y)=c相切时即可能是该问题的极值点

拉格朗日乘数法
单个等式约束
考虑 n n n元函数 y = f ( x 1 , x 2 , . . . , x n ) y=f(x_1, x_2,...,x_n) y=f(x1,x2,...,xn),在等式约束 g ( x 1 , x 2 , . . . , x n ) = 0 g(x_1, x_2,...,x_n)=0 g(x1,x2,...,xn)=0 下的极值点求解问题
- 在极值点,必有 y y y和 g g g法向量平行
- y y y的法向量为:
[ ∂ y ∂ x 1 , ∂ y ∂ x 2 , . . . , ∂ y ∂ x n ] [\frac{ {\partial y}}{ {\partial {x_1}}},\frac{ {\partial y}}{ {\partial {x_2}}},...,\frac{ {\partial y}}{ {\partial {x_n}}}] [∂x1∂y,∂x2∂y,...,∂xn∂y]
- g g g的法向量为:
[ ∂ g ∂ x 1 , ∂ g ∂ x 2 , . . . , ∂ g ∂ x n ] [\frac{ {\partial g}}{ {\partial {x_1}}},\frac{ {\partial g}}{ {\partial {x_2}}},...,\frac{ {\partial g}}{ {\partial {x_n}}}] [∂x1∂g,∂x2∂g,...,∂xn∂g]
- 二者平行,则存在常数 λ \lambda λ使得:
[ ∂ y ∂ x 1 , ∂ y ∂ x 2 , . . . , ∂ y ∂ x n ] + λ [ ∂ g ∂ x 1 , ∂ g ∂ x 2 , . . . , ∂ g ∂ x n ] = 0 [\frac{ {\partial y}}{ {\partial {x_1}}},\frac{ {\partial y}}{ {\partial {x_2}}},...,\frac{ {\partial y}}{ {\partial {x_n}}}] + \lambda [\frac{ {\partial g}}{ {\partial {x_1}}},\frac{ {\partial g}}{ {\partial {x_2}}},...,\frac{ {\partial g}}{ {\partial {x_n}}}] = 0 [∂x1∂y,∂x2∂y,...,∂xn∂y]+λ[∂x1∂g,∂x2∂g,...,∂xn∂g]=0
- 即:
∂ y ∂ x i + λ ∂ g ∂ x i = 0 , 1 ≤ i ≤ n \frac{ {\partial y}}{ {\partial {x_i}}} + \lambda \frac{ {\partial g}}{ {\partial {x_i}}} = 0,1 \le i \le n ∂xi∂y+λ∂xi∂g=0,1≤i≤n
- 这样我们就得到了 n n n个等式方程,再加上 g ( x 1 , x 2 , . . . , x n ) = 0 g(x_1, x_2,...,x_n)=0 g(x1,x2,...,xn)=0一起构成 n + 1 n+1 n+1个方程的方程组,未知数为 [ x 1 , x 2 , . . . , x n , λ ] [x_1,x_2,...,x_n,\lambda] [x1,x


4万+

被折叠的 条评论
为什么被折叠?



