基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,...)在g(x1,x2,...)=0的约束条件下的极值的方法。其主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。
具体方法:
假设需要求极值的目标函数 (objective function) 为 f(x,y),限制条件为 φ(x,y)=M
设g(x,y)=M-φ(x,y)
定义一个新函数
F(x,y,λ)=f(x,y)+λg(x,y)
则用偏导数方法列出方程:
∂F/∂x=0
∂F/∂y=0
∂F/∂λ=0
求出x,y,λ的值,代入即可得到目标函数的极值.
扩展为多个变量的式子为:
F(x1,x2,...λ)=f(x1,x2,...)+λg(x1,x2...)
则求极值点的方程为:
∂F/∂xi=0 (xi即为x1、x2……等自变量)
∂F/∂λ=g(x1,x2...)=0
以上内容在《数学手册》当中有。另外,可以将这种把约束条件乘以λ(即不定乘子)后加到待求函数上的求极值方法推广到变分极值问题及其它极值问题当中,理论力学当中对非完整约束的处理方法就是利用变分法当中的拉格朗日乘子法。
拉格朗日乘子法的用途:
从经济学的角度来看,λ代表当约束条件变动时,目标函数极值的变化。因为∂F/∂M=λ,当M增加或减少一个单位值时,F会相应变化λ。
例如,假设目标函数代表一个工厂生产产品的数量,约束条件限制了生产中投入的原料和人力的总成本,我们求目标函数的极值,就是要求在成本一定的条件下,如何分配利用人力和原料,从而使得生产量达到最大。此时λ便代表,当成本条件改变时,工厂可达到的生产量最大值的变化率。
---------------------------------------------------
在数学最优化问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个矢量的系数。
很简单的例子
求此方程的最大值:
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λxx2 + 2λyx2 + y2 − 1 = 0
---------------------------------------------------
在数学中,卡罗需-库恩-塔克条件(英文原名: Karush-Kuhn-Tucker Conditions常见别名: Kuhn-Tucker,KKT条件,Karush-Kuhn-Tucker最优化条件, Karush-Kuhn-Tucker条件,Kuhn-Tucker最优化条件,Kuhn-Tucker条件)是在满足一些有规则的条件下,一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件。这是一个广义化拉格朗日乘数的成果。
http://baike.baidu.com/view/2415642.htm
http://zh.wikipedia.org/wiki/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E6%95%B0