1、 这个东西看过,但是还是容易忘记,应该是用的比较少,理解也不够深入,因此记录一下。
2、首先,是谁发明的。通过名字,可以看出是“拉格朗日”,看百度百科的解释:
在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。 [1] 此方法的证明牵涉到偏微分,全微分或链法,从而找到能让设出的隐函数的微分为零的未知数的值。
3、上面的文字太抽象,直接看例子,出处在下面链接:
https://blog.csdn.net/The_lastest/article/details/78136692
https://blog.csdn.net/ccnt_2012/article/details/81326626
4、求解方法:
就是解方程组的方式,当然有梯度的概念在里面。
思路:其他人总结的更好。但是,还是要有自己的理解:
首先,目标函数f和约束g或者h等,从图形的理解上看,他们的梯度是要共线(共面)的,因此又上面的联立方程的第一个,因为变量比较多,因此要有约束的两个等式。 或者,从另外一个角度去理解。成立一个lagrange方程,将有约束的问题,变成无约束的问题,这样一来,直接求解无约束的极值,就是梯度等于0的解。那么,梯度等于0的话,就是上面的是哪个等式。
5、提问。
(1)目标函数是否一定要是凸函数?
(2)约束一定要是等式?
6、求解方法。
碰到了这种类型的模型,一般用什么软件求解呢?
现在想到的只有matlab了。
7、实用性的问题,一般在哪里会用到这个方法,如果变量比较多,或者约束比较多怎么办?