拉格朗日乘子法的通俗理解

拉格朗日乘子法的通俗理解


1. 举例

这里举个简单的例子吧
在家里做蛋糕,假如只计算鸡蛋和牛奶的价格
其中鸡蛋的价格为4.5¥/斤,牛奶为12¥/升,而预算刚好是20¥
那么就有:
在这里插入图片描述
经过分析,蛋糕的总量跟两种原材料(x1,x2)具有如下关系:
在这里插入图片描述
那么最少能做多少蛋糕


2. 求偏导

线性最小二乘法的通俗理解 中提到极值点可以通过求偏导来实现
函数 f f f(x1,x2) 对x1,x2分别求偏导,那么得出的结论是:x1,x2都为0的时候最小

单独看这个函数,这个结论对的,
但问题是它不满足预算为20的限制条件


3. 拉格朗日乘子法

拉格朗日想到 既然 h h h(x1,x2) = 0
那函数 f f f(x1,x2) 是否可以加上这个 h h h(x1,x2)再乘以一个系数也应该不变
任何数乘以0当然是0, f f f(x1,x2) 加上0当然保持不变

所以其实就可以等同于求下面这个函数的极值:

在这里插入图片描述
对x1,x2以及 λ 分别求偏导:
在这里插入图片描述
解上面的方程组得到 x1=0.8889,x2=1.3333
然后代入 f f f(x1,x2) 即可


4. 乘子

这里为什么要多加一个乘子λ呢
试想一下,如果 λ 是个固定的数(比如1),也能通过上面的前两条方程式求解得到x1,x2
但是就得不到第三条方程式,其实也就是没有 约束条件

在求偏导(极值点)以后,还能保留原有的约束条件
把约束条件带进来,跟求其他变量的偏导结果放在一起
既能满足约束条件,又能保证是约束条件下的极值

当然这是一个约束条件的情况,如果有多个约束条件呢?
那就要用多个不同的 λ,正如最上面的那个定义那样,把这些加起来(这些0加起来也是0)

最优问题,这个思维很重要,求 条件极值 转化为求 函数和条件 的极值


谢谢!

拉格朗日乘子法是一种优化算法,应用于具有约束条件的优化问题。它的原理是基于拉格朗日乘子的概念,在求解有约束问题的时候,将约束条件转化为目标函数的一部分,通过求解该新的目标函数,得到问题的最优解。 在使用拉格朗日乘子法时,首先根据问题的约束条件构造拉格朗日函数。拉格朗日函数是由目标函数和约束条件组成的,目标函数会被调整为加入拉格朗日乘子与约束条件的乘积,同时每个约束条件都会有一个对应的拉格朗日乘子。然后,通过求取拉格朗日函数的偏导数,将其等于0,可以得到一组方程,包括目标函数的梯度和约束条件的梯度。将这些方程联立求解,就可以得到问题的最优解。 对于拉格朗日函数的求解,可以采用数值方法,例如使用fmincon算法。fmincon是一种非线性约束最小化算法,可以求解具有非线性约束的优化问题。它的实现基于拉格朗日乘子法,通过迭代的方式逼近最优解。在每一次迭代中,通过求解一组子问题,不断调整拉格朗日乘子的值,直到找到最优解为止。 总之,拉格朗日乘子法是一种基于拉格朗日函数的优化算法,通过将约束条件转化为目标函数的一部分,再利用数值方法求解最优解。而fmincon算法则是一种具体的数值方法实现,可以应用于求解具有非线性约束的优化问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氢键H-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值