优化算法:拉格朗日乘子法

拉格朗日乘子法

  (2011-09-14 10:18:01)
标签: 

转载

 
原文地址:拉格朗日乘子法 作者:asir

         拉格朗日乘数法 是一种寻找变量受一个或多个限制的多元方程极值的方法。这种方法将一个有n变量与 k 约束的问题转换为一个更易解的n k个变量的方程组,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的斜率(gradient)的线性组合里每个向量的系数。

[转载]拉格朗日乘子法



 

图:绿线标出的是约束 g( x, y) =   c的点的轨迹。蓝线是 f的等高线。箭头表示斜率,和等高线的法线平行。
介绍

先看一个二维的例子:假设有方程: f(x,y),要求其最大值,且

g(x,y) = c; 

c 为常数。对不同dn的值,不难想象出

f(x,y) = dn

的等高线。而方程g的等高线正好是g(x,y) = c。想象我们沿着g = c的等高线走;因为大部分情况下fg的等高线不会重合,但在有解的情况下,这两条线会相交。想象此时我们移动g = c上的点,因为f是连续的方程,我们因此能走到更高或更低的等高线上,也就是说dn可以变大或变小。只有当g = c和相切,也就是说,此时,我们正同时沿着g = c和走。这种情况下,会出现极值鞍点

向量的形式来表达的话,我们说相切的性质在此意味着fg的斜率在某点上平行。此时引入一个未知标量λ,并求解:

V[f(x,y)+λ(g(x,y)-c)]=0

且 λ ≠ 0.

例子

求此方程的最大值:

f(x,y) = x2y

同时未知数满足

x2 + y2 = 1

因为只有一个未知数的限制条件,我们只需要用一个乘数λ.

g(x,y) = x2 + y2 − 1
Φ(x,y,λ) = f(x,y) + λg(x,y) = x2y + λ(x2 + y2 − 1)

将所有Φ方程的偏微分设为零,得到一个方程组,最大值是以下方程组的解中的一个:

2xy + 2λx = 0
x2 + 2λy = 0
x2 + y2 − 1 = 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值