拉格朗日乘子法使用条件_拉格朗日乘子法的优点

莫娜号 1

拉格朗日乘子法及其对偶问题和KKT条件

如何理解拉格朗日乘子法?

拉格朗日乘子法使用条件_拉格朗日乘子法的优点拉格朗日乘子法使用条件_拉格朗日乘子法的优点


拉格朗日乘子法使用条件_拉格朗日乘子法的优点


在求解化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。 在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。

一般情况下,化问题会碰到一下三种情况:

(1)无约束条件

这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。

(2)等式约束条件

使用拉格朗日乘子法。

当 个等式约束, 时,求 的解。——这就是原问题

等价表达式为:

——这就是原问题

其中, 表示化,可能是最小化min,或化max; 表示subject to ,“受限于”的意思; 为目标函数(不是原问题,不是原函数); 是约束项。写成约束的形式更专业,但是还是题目描述的好理解。

拉格朗日乘子法定义:对于目标函数 以及 个约束条件 ,拉格朗日乘子法为每个约束条件添加一个“乘子” :

(1)如果对目标函数求最小化即

那么得到拉格朗日函数:

其中

(2)如果对目标函数求化即

那么得到拉格朗日函数:

其中

上面两种情况是可以通过对 和 取负互相转换。下面只就第(1)种情况进行讨论。

上面两种情况用拉格朗日乘子法对偶问题来解释。

对于种情况,如果对目标函数求最小化即 是凹函数,那么对 求最小值等同于 ,而 可分为两部分,部分即目标函数 ,第二部分为带有“乘子” 的约束部分;容易看出部分不包含 ,所以 也可以分成两部分优化:

基于公式(1),可以用 来表示 ,那么拉格朗日函数 就变成了一个关于 的函数,记为: ——该函数就是拉格朗日函数的对偶函数。所谓对偶函数就是求拉格朗日函数的解 等价于求对偶函数的解 ,求得 之后基于公式(1),就可以求得 。

对对偶函数求解,也是对 求偏导,并令其为0:

...

最终我们可以得到对偶函数的 个解 ,进而得到拉格朗日函数的解 ,再将 带入目标函数 即可得到 的解。

由求带约束的目标函数的解 求拉格朗日函数的解 求拉格朗日函数的对偶函数的解,再将解回溯回去。

练一练:已知 ,求 的值?

上面的问题,可以写成

思路:基本不等式、三角换元都太麻烦。用拉格朗日乘子法(也叫拉格朗日乘数法)来解决。

将等式约束下的目标函数转化成拉格朗日函数:

这里只有一个约束项。

要求解 的解,即对 求偏导,并使结果为0:

可以求得

也就是说当 时,目标函数 取得值,即

利用GeoGebra 软件进行验证,如图所示:

(3)不等式约束条件

当 个不等式约束, 时,求 的最小值。

等价表达式为:

采用拉格朗日乘子为每一个不等式约束分配一个“乘子” ,于是有拉格朗日函数:

其中不等式约束的“乘子”” 。

KKT条件是说, 的解 一定同时满足如下条件:

要同时满足第6、7个条件,那么就是要么 ,要么 ,或 和 都为0——这就是KKT所带来的重要结论。

练一练:

1、将上面的约束项变形如下:

2、拉格朗日函数为:

化拉格朗日函数

对 求偏导:

那么

对 求偏导:

那么

将 带入到 中得到的是之关于 的函数 ,该函数是 的对偶函数。

(4)既有等式约束条件又有不等式约束条件

使用拉格朗日乘子法结合KKT条件。

当 个等式约束, ; 个不等式约束, 时,求 的最小值。

等价表达式为:

采用拉格朗日乘子为每一个等式约束分配一个“乘子” ,也为每一个不等式约束分配一个“乘子” ,于是有拉格朗日函数:

其中等式约束的“乘子”” ;不等式约束的“乘子” 。

KKT条件是说, 的解 一定满足如下条件:

拉格朗日算子和乘子法是啥

声明:词条人人可编辑,创建、修改和认证均免费

详情

拉格朗日乘子法

基本的拉格朗日乘子法就是求函数f(x1,x2,...)在约束条件g(x1,x2,...)=0下的极值的方法。

其主要思想是将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。

中文名

拉格朗日乘子法

外文名

Lagrange multiplier

别名

拉格朗日乘数法

主要思想

引入一个新的参数λ

求的内容

极值

定义

对于具有l个等式约束的n维优化问题

,把原目标函数 改造成为如下形式的新的目标函数

式中的 就是原目标函数 的等式约束条件,而待定系数 称为拉格朗日乘子。这种方法称为拉格朗日乘子法。

在极值点处,有 和 ,共有n+l个方程,足以算出这n+l个变量,此法也称为升维法。[1]

基本原理

拉格朗日乘子法是一种经典的求解条件极值的解析方法,可将所有约束的优化模型问题转化为无约束极值问题的求解。一般带不等式约束的化问题求解如下式:

拉格朗日乘子法是用于变量无关的是常数 分别乘各约束函数 并与目标函数相加得到如下的拉格朗日函数: ,式中: 为自变量; 为拉格朗日乘子量; 为松弛变量。

则 在 处取极值的必要条件为: ,依据上式求得 即为解。[2]

计算过程

1.设需要求极值的目标函数(objective function)为f(x,y),限制条件为φ(x,y)=M

2.设

3.定义一个新函数

4.用偏导数方法列出方程:

5.求出x,y,λ的值,代入即可得到目标函数的极值[1]

关键参数含义

(1) 是由参数M所引起的约束条件变化时,对目标函数值影响的度量;或者说表示了值的“灵敏度”。

(2)当约束条件M增加一个单位时,目标函数值f将近单位。

(3)在经济学上参数 表示产品或资源M增加一个单位时,所带来的效益f,常称为“边际效益”或“临界值”,在商业经营决策中很有用处。[3]

直观意义

引理一

如果函数 是光滑的,并且 是 的一个正则点(即 ),那么, 垂直于过 的 的等值线。[4]

引理二

在等值面 上的每个正则点 ,向量 垂直于等值面,并且这个向量是[4]的(不计其某一常数倍)。

定理

设 在曲面S: 上的点 有(小)值,并且 不是 的临界点(g

拉格朗日乘子法和KKT条件

首先,拉格朗日乘子法和kkt条件都是解决数学中化问题的方法。什么时候会用到这种方法呢?

比如,求解函数 ,直接求 关于x的一阶导数,让一阶导数为0,便得到 取最小值时的解为1。但要是x有限制条件呢?那么就会用到上面的两种方法。

一、限制条件为等式

这是一个有等式约束的优化问题,如果不借助其他工具是不是很难求解,尤其是 或g(x,y)都比较复杂的情况下。拉格朗日乘子法将这个问题转化成了无约束问题,那么就可以用求偏导的方法去求解。拉格朗日函数为:

求 分别关于 的偏导(没有找到偏导符号,用d代替):

通过求解 的偏导数为0,便可获得 取极值时的解。

那么为什么这样做呢?即 取极值时的解是否就是 的解呢?其实在等式约束条件这里是非常容易理解的,因为 的后半分 恒等于0,那么自然 和 的解是一致的。

从另一个角度来看,下图是对原问题的几何描述,只有当 和 的切线重合的时候,原问题能够取得解。那么在切点的梯度有

那么限制条件为不等式呢?下面来看

二、限制条件为不等式

当解问题是:

那么如果同样用拉格朗日函数将上述有约束问题化解为无约束问题,是否可以直接通过求 分别关于 的偏导,令偏导数为0来获得解呢?是不能。为什么不能呢?看下图就明白了:

所以我们采用广义拉格朗日乘子法,先求 关于乘子的,再求关于x,y的最小。原始问题的拉格朗日函数为:

这个问题很难求解,所以想要将问题转化为原问题的对偶问题:

那么原问题和对偶问题的解是否等价呢?

所以这里我们引入KKT条件, 同时是原始问题和对偶问题的解的充分必要条件就是满足以下条件:

当 满足上述的kkt条件时,对偶问题的解就是原始问题的解。当约束如图1所示,那么 ;当约束如图2所示,实际上约束已经不起作用,那么 。

拉格朗日乘数法

拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,...)在(9x1,x2,...)=0的约束条件下的极值的方法。其主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。前提是:只有当目标函数为凸函数时,使用这两种方法才保证求得的是解

根据拉格朗日函数L=z+λ(x+y-230)=[2x+3y-(8x^2-12xy+3y^2+2x+3y)]+λ(x+y-230)

分别对x,y求偏导,联立两个偏导函数都等于0的方程,求出x,y值,进而带入函数求值即可

拉格朗日乘子法和KKT条件

拉格朗日乘子法要解决的就是有 等式 限制条件的凸优化问题。形式如下:

例如:

令令 导数为0,得到:

求解出x, y, z即为解,同时也会求出λ,但是没什么用。

关于拉格朗日乘子法的直观理解网上已经有很多解释了,此处仅简要描述。如下图中的f和g,虚线为f的等高线,g限制条件,可以看出,f一定是在和g相切的地方取到(小)值,所以两者在此处的梯度方向相同,仅相一个比例因子(即公式中的λ)。

注意g(x)=0是一条曲线,如果有多个限制条件则有多条曲线,此时将g(x)看做一个函数,则g(x)=0是g的一个等高线,函数与等高线垂直的方向一定是增加最快的方向,即梯度方向。f和g梯度方向一样,所以有:

然后再外加一个所求的点一定在曲线g上的方程(即F(x)对λ的导数为0),以上公式和拉格朗日乘子法得出的公式是等价的。

拉格朗日乘子法仅适用于等式约束条件,那如果约束条件为不等式怎么办呢?

答: 当约束条件为不等式时候,结合KKT条件,依然可以用拉格朗日乘子法求解,实际上KKT条件可以把不等式约束转化为等式约束。即,KKT条件求解的问题的形式为:

待续。。。

条件极值拉格朗日乘数法

条件极值拉格朗日乘数法

该方法只是利用:如果一个函数可导,并且在某一点取极值,在这一点的导数必定为零。这只是一个必要条件,而不是充分条件。

所以拉格朗日乘子法,在设计的时候,都会只能解出来的驻点,写的时候只需要加上一句话,由实际意义得这个问题有值或者是最小值,这个点就是值点或者是最小点。

如果解出来多个导数等于0的点,这个时候只需相互比较大小就可以了。

求函数f(x,y,z)在条件φ(x,y,z)=0下的极值。

方法(步骤)是:

1、做拉格朗日函数L=f(x,y,z)+λφ(x,y,z),λ称拉格朗日乘数;

2、求L分别对x,y,z,λ求偏导,得方程组,求出驻点P(x,y,z);

如果这个实际问题的或最小值存在,一般说来驻点只有一个,于是最值可求。

条件极值问题也可以化为无条件极值求解,但有些条件关系比较复杂,代换和运算很繁,而相对来说“拉格朗日乘数法”不需代换,运算简单一点,这就是优势。

条件极值是限制在一个子流形上的极值,条件极值存在时无条件极值不一定存在,即使存在二者也不一定相等。

设在约束条件之下求函数的极值。满足约束条件的点是函数的条件极值点,且在该点函数满足隐函数存在条件时, 由方程定隐函数 ,于是点就是一元函数的极限点。

拉格朗日乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值方法。

上图中

与椭圆体相交平面上直线 如果高度上没有限制那么 就形成一个面,这个面与椭圆体相交可以表示为 ,我们就可以在这个曲线找到最小值。然后我们可以将这等高线投影到二维平面上来简化问题

在上图中,我们可以推断出其实最小(或值)就位于限制条件g(x,y)和方程f(x,y)等号线相切的位置。而且有共同切线的斜率,那么他们法线方向是 成比例 的。这个比例系数就是拉格朗日乘子

我们现在来简单推导一下,这里将 y 表示为对于 x 的函数,那么就有 y(x),然后分别带入下面两个方程就得到。

下面我么这个两个方程都对x 进行偏微分,通过链式法则我们就得到下面式子

因为我们知道他们斜率是成比例的,所有就可以得到这样结论,这就是拉格朗日乘子法,其中 就是乘子

我们就可以利用这个三个条件来求在有限制条件下方程极值问题

设 ,在 的条件限制下有极值。

利用上面知识来求极值

然后他们带入到 得到

那么结果就是最小值和值分别是 5 和 -5

最后修改时间:
阿玛拉王国怎么做装备(阿玛拉王国锻造攻略)
上一篇
小型水力发电机 溪流_家用小型水力发电
下一篇

相关文章