拉格朗日乘数法

在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数极值的方法。这种方法将一个有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}}}] [x1y,x2y,...,xny]

  • 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}}}] [x1g,x2g,...,xng]

  • 二者平行,则存在常数 λ \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 [x1y,x2y,...,xny]+λ[x1g,x2g,...,xng]=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 xiy+λxig=0,1in

  • 这样我们就得到了 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值