码迷,mamicode.com
首页 > 其他好文 > 详细

拉格朗日乘子法学习笔记

时间:2016-08-12 11:45:36      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

  在数学中的最优化问题中,拉格朗日乘数法(以数学家约瑟夫·拉格朗日命名)是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法。这种方法可以将一个有n个变量与k个约束条件的最优化问题转换为一个解有n + k个变量的方程组的解的问题。这种方法中引入了一个或一组新的未知数,即拉格朗日乘数,又称拉格朗日乘子,或拉氏乘子,它们是在转换后的方程,即约束方程中作为梯度(gradient)的线性组合中各个向量的系数。

  比如,要求 f(x,y)在g(x, y) = c 时的最大值,c为常数。先来看图

技术分享

 

绿线标出的是约束g(x,y) = c的点的轨迹,也是g(x,y)的一条等高线。蓝线是f的等高线,f(x,y)分别取d1 ,  d2 ,.....dn。箭头表示梯度,和等高线的法线平行。

假设g(x,y) = c 等高线 与 f(x,y) = dn 等高线相交,交点就是同时满足等式约束条件和目标函数的可行域的值,但肯定不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值,即等高线和目标函数的曲线在该点的法向量必须有相同方向,所以最优值必须满足:f(x,y)的梯度 = λ * g(x,y)的梯度,λ是常数,表示左右两边同向。这个等式就是拉格朗日函数L(x,y,λ)对参数求导的结果。 

我们先写出拉格朗日函数,

 L(x,y,λ) = f(x,y) + λ * (g(x,y) - c)

求解L(x,y,λ) 的梯度为0。L(x,y,λ)梯度为0时,则L(x,y,λ)对参数λ的偏导为0,即g(x,y) - c = 0,也是就满足了我们的约束条件g(x,y) = c。这就是拉格朗日乘子λ的神奇之处。另外L(x,y,λ) 的梯度为0,必须满足

f(x,y)的梯度 = λ * g(x,y)的梯度。若L(x,y,λ) 的梯度为0的点为(x0, y0),则L(x,y,λ)取极值,而且这个极值点为f(x,y)在约束g(x,y) = c下的极值点。

拉格朗日乘子法学习笔记

标签:

原文地址:http://www.cnblogs.com/chyl411/p/5763952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!