拉格朗日乘数法(等式约束条件极值)

基础用法

设,若 x , y x,y x,y满足 x + 3 y = 5 x y x+3y=5xy x+3y=5xy,求 3 x + 4 y 3x+4y 3x+4y的最小值:

构建拉格朗日函数:

L ( x , y , λ ) = 3 x + 4 y + λ ( x + 3 y − 5 x y ) L(x,y,\lambda)=3x+4y+\lambda(x+3y-5xy) L(x,y,λ)=3x+4y+λ(x+3y−5xy)
分别对 L ( x , y , λ ) L(x,y,\lambda) L(x,y,λ)中的 x , y , λ x,y,\lambda x,y,λ求导,并令偏导数等于0,用于求出拉格朗日函数的驻点.

注意:驻点不一定就是极值点
则得到一下方程组
{ L x ′ = 3 + λ ( 1 − 5 y ) = 0 ( 1 ) L y ′ = 4 + λ ( 3 − 5 x ) = 0 ( 2 ) L λ ′ = x + 3 y + 5 x y = 0 ( 3 ) \begin{cases} L'_x=3 + \lambda(1-5y)=0 &&& (1)\\ L'_y=4 + \lambda(3-5x)=0 &&& (2)\\ L'_\lambda=x+3y+5xy=0 &&& (3)\\ \end{cases} ⎩⎪⎨⎪⎧​Lx′​=3+λ(1−5y)=0Ly′​=4+λ(3−5x)=0Lλ′​=x+3y+5xy=0​​​(1)(2)(3)​
由上式 ( 1 ) ( 2 ) (1)(2) (1)(2)消去 λ \lambda λ,可求得:
3 x − 1 = 4 y ( 4 ) 3x-1=4y \kern{2em} (4) 3x−1=4y(4)
将 ( 4 ) (4) (4)式带入到 ( 3 ) (3) (3)中求得:
{ x = 1 y = 1 2 或 { x = 1 5 y = − 1 10 \begin{cases} x=1\\ \kern{2em}\\ y=\dfrac{1}{2} \end{cases} \kern{2em} 或 \kern{2em} \begin{cases} x=\dfrac{1}{5}\\ \kern{2em}\\ y=-\dfrac{1}{10}\\ \end{cases} ⎩⎪⎪⎨⎪⎪⎧​x=1y=21​​或⎩⎪⎪⎪⎨⎪⎪⎪⎧​x=51​y=−101​​
分别将两组解(也是拉格朗日函数的驻点)带入到 3 x + 4 y 3x+4y 3x+4y中,分别得到:
3 ∗ 1 + 4 ∗ 1 2 = 5 或 3 ∗ 1 5 + 4 ∗ ( − 1 10 ) = 1 5 3*1 + 4 * \dfrac{1}{2}=5\\ 或\\ 3*\dfrac{1}{5} + 4*(-\dfrac{1}{10})=\dfrac{1}{5} 3∗1+4∗21​=5或3∗51​+4∗(−101​)=51​
所以最小值为: 1 5 \dfrac{1}{5} 51​

多条件情况

例如:在满足条件 g ( x , y ) = 0 ψ ( x , y ) = 0 g(x,y)=0 \kern{1em} \psi(x,y)=0 g(x,y)=0ψ(x,y)=0的条件下,求 f ( x , y ) f(x,y) f(x,y)的极值,可以构建拉格朗日函数:

L ( x , y , λ , η ) = f ( x , y ) + λ g ( x , y ) + η ψ ( x , y ) L(x,y,\lambda,\eta)=f(x,y)+\lambda{g(x,y)}+\eta{\psi(x,y)} L(x,y,λ,η)=f(x,y)+λg(x,y)+ηψ(x,y)
在分别求 x , y , λ , η x,y,\lambda,\eta x,y,λ,η的偏导数,并令其等于0,最终求解方程组,得到 f ( x , y ) f(x,y) f(x,y)的驻点,再带入原方程得到极值

拉格朗日乘数法通用公式定义

等式约束优化一般形式,其中 h k ( x 1 , x 2 , x 3 . . . , x n ) h_k(x_1,x_2,x_3...,x_n) hk​(x1​,x2​,x3​...,xn​)是一个集合,标示不同的约束条件,也就是上述 L ( x , y , λ , η ) = f ( x , y ) + λ g ( x , y ) + η ψ ( x , y ) L(x,y,\lambda,\eta)=f(x,y)+\lambda{g(x,y)}+\eta{\psi(x,y)} L(x,y,λ,η)=f(x,y)+λg(x,y)+ηψ(x,y)中的函数 g ( x , y ) g(x,y) g(x,y)和 ψ ( x , y ) \psi(x,y) ψ(x,y):

m i n f ( x 1 , x 2 , x 3 . . . , x n ) s . t . h k ( x 1 , x 2 , x 3 . . . , x n ) = 0 k ∈ ( 1 , 2 , 3 , . . . , l ) minf(x_1,x_2,x_3...,x_n)\\ s.t.h_k(x_1,x_2,x_3...,x_n)=0 \kern{2em} k\isin(1,2,3,...,l) minf(x1​,x2​,x3​...,xn​)s.t.hk​(x1​,x2​,x3​...,xn​)=0k∈(1,2,3,...,l)
构造拉格朗日函数,其中 λ k \lambda_k λk​标示不同条件的乘子,也就式上述 L ( x , y , λ , η ) = f ( x , y ) + λ g ( x , y ) + η ψ ( x , y ) L(x,y,\lambda,\eta)=f(x,y)+\lambda{g(x,y)}+\eta{\psi(x,y)} L(x,y,λ,η)=f(x,y)+λg(x,y)+ηψ(x,y)中的 λ \lambda λ和 η \eta η:

L ( x 1 , x 2 , x 3 . . . , x n , λ 0 , λ 1 , λ 2 , . . . , λ k ) = f ( x 1 , x 2 , x 3 . . . , x n ) + λ k ∑ k = 0 l h k ( x 1 , x 2 , x 3 . . . , x n ) L(x_1,x_2,x_3...,x_n,\lambda_0,\lambda_1,\lambda_2,...,\lambda_k) = f(x_1,x_2,x_3...,x_n) + \lambda_k\sum_{k=0}^lh_k(x_1,x_2,x_3...,x_n) L(x1​,x2​,x3​...,xn​,λ0​,λ1​,λ2​,...,λk​)=f(x1​,x2​,x3​...,xn​)+λk​k=0∑l​hk​(x1​,x2​,x3​...,xn​)
将 x 1 , x 2 , x 3 . . . , x n x_1,x_2,x_3...,x_n x1​,x2​,x3​...,xn​用 x i i ∈ ( 1 , 2 , 3 , . . . , n ) x_i \kern{1em} i\isin(1,2,3,...,n) xi​i∈(1,2,3,...,n), λ 1 , λ 2 , . . . , λ k \lambda_1,\lambda_2,...,\lambda_k λ1​,λ2​,...,λk​用 λ k k ∈ ( 0 , 1 , 2 , . . . , l ) \lambda_k \kern{1em} k\isin(0,1,2,...,l) λk​k∈(0,1,2,...,l)标示,上式可以写为:
L ( x i , λ k ) = f ( x i ) + λ k ∑ k = 0 l h k ( x i ) i ∈ ( 1 , 2 , 3 , . . . , n ) k ∈ ( 0 , 1 , 2 , . . . , l ) L(x_i,\lambda_k)=f(x_i)+\lambda_k\sum_{k=0}^lh_k(x_i) \kern{2em} i\isin(1,2,3,...,n) \kern{1em} k\isin(0,1,2,...,l) L(xi​,λk​)=f(xi​)+λk​k=0∑l​hk​(xi​)i∈(1,2,3,...,n)k∈(0,1,2,...,l)
建立方程组:

{ Δ L Δ x i = 0 i ∈ ( 1 , 2 , 3 , . . . , n ) Δ L Δ λ k = 0 k ∈ ( 1 , 2 , 3 , . . . , l ) \begin{cases} \dfrac{\varDelta L}{\varDelta x_i}=0 \kern{2em} i\isin(1,2,3,...,n)\\ \\ \dfrac{\varDelta L}{\varDelta \lambda_k}=0 \kern{2em} k\isin(1,2,3,...,l) \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​Δxi​ΔL​=0i∈(1,2,3,...,n)Δλk​ΔL​=0k∈(1,2,3,...,l)​
根据上诉方程组,求出驻点,并带入到原函数 f ( x ) f(x) f(x)当中验证,并最终得到极值点.

KKT(不等式约束条件极值)

不等式条件极值求解的思路是将不等式约束转换为等式约束,如有一下求解问题:
m i n f ( x i ) i ∈ ( 0 , 1 , 2 , . . . , n ) s . t . g k ( x i ) ≤ 0 i ∈ ( 0 , 1 , 2 , . . . , n ) k ∈ ( 0 , 1 , 2 , . . . , l ) minf(x_i) \kern{1em} i\isin(0,1,2,...,n)\\ s.t.g_k(x_i)\le0 \kern{1em} i\isin(0,1,2,...,n) \kern{1em} k\isin(0,1,2,...,l) minf(xi​)i∈(0,1,2,...,n)s.t.gk​(xi​)≤0i∈(0,1,2,...,n)k∈(0,1,2,...,l)
将上式的不等式约束添加一个松弛变量,让不等式变成等式,由于 g k ( x i ) ≤ 0 g_k(x_i)\le0 gk​(xi​)≤0,需要在不等式左边加上一个非负数,因此松弛变量为 a k 2 a_k^2 ak2​,这样就不需要在引入新的约束 a k ≥ 0 a_k \ge0 ak​≥0:
h k ( x i , a k ) = g k ( x i ) + a k 2 = 0 h_k(x_i,a_k) = g_k(x_i)+a_k^2=0 hk​(xi​,ak​)=gk​(xi​)+ak2​=0
则,转换后,原来的不等式约束可以写成:
m i n f ( x i ) i ∈ ( 0 , 1 , 2 , . . . , n ) s . t . h k ( x i , a k ) = g k ( x i ) + a k 2 = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) k ∈ ( 0 , 1 , 2 , . . . , l ) minf(x_i) \kern{1em} i\isin(0,1,2,...,n)\\ s.t.h_k(x_i,a_k)=g_k(x_i)+a_k^2=0 \kern{1em} i\isin(0,1,2,...,n) \kern{1em} k\isin(0,1,2,...,l) minf(xi​)i∈(0,1,2,...,n)s.t.hk​(xi​,ak​)=gk​(xi​)+ak2​=0i∈(0,1,2,...,n)k∈(0,1,2,...,l)
根据等式约束条件极值的求法,可以写出拉格朗日函数为:
L ( x i , λ k , a k ) = f ( x i ) + λ k ∑ k = 0 l [ g k ( x i ) + a k 2 ] L(x_i,\lambda_k,a_k)=f(x_i)+\lambda_k\sum_{k=0}^l[g_k(x_i)+a_k^2] L(xi​,λk​,ak​)=f(xi​)+λk​k=0∑l​[gk​(xi​)+ak2​]
建立方程组:
{ Δ L Δ x i = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) Δ L Δ λ k = 0 k ∈ ( 0 , 1 , 2 , . . . , l ) Δ L Δ a k = 0 k ∈ ( 0 , 1 , 2 , . . . , l ) \begin{cases} \dfrac{\varDelta L}{\varDelta x_i}=0 \kern{1em} i\isin(0,1,2,...,n)\\ \\ \dfrac{\varDelta L}{\varDelta\lambda_k}=0 \kern{1em} k\isin(0,1,2,...,l)\\ \\ \dfrac{\varDelta L}{\varDelta a_k}=0 \kern{1em} k\isin(0,1,2,...,l) \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​Δxi​ΔL​=0i∈(0,1,2,...,n)Δλk​ΔL​=0k∈(0,1,2,...,l)Δak​ΔL​=0k∈(0,1,2,...,l)​
根据上述方程组最终求解得到极值点

等式约束&条件约束极值

条件极值问题可写为:
m i n f ( x i ) i ∈ ( 0 , 1 , 2 , . . . , n ) s . t . h k ( x i ) = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) k ∈ ( 1 , 2 , 3 , . . . , l ) s . t . g m ( x i ) ≤ 0 i ∈ ( 0 , 1 , 2 , . . . , n ) m ∈ ( 0 , 1 , 2 , . . . , z ) minf(x_i) \kern{1em} i\isin(0,1,2,...,n)\\ s.t.h_k(x_i)=0 \kern{2em} \kern{1em} i\isin(0,1,2,...,n) \kern{1em} k\isin(1,2,3,...,l)\\ s.t.g_m(x_i)\le0 \kern{1em} i\isin(0,1,2,...,n) \kern{1em} m\isin(0,1,2,...,z) minf(xi​)i∈(0,1,2,...,n)s.t.hk​(xi​)=0i∈(0,1,2,...,n)k∈(1,2,3,...,l)s.t.gm​(xi​)≤0i∈(0,1,2,...,n)m∈(0,1,2,...,z)
可转换为:
m i n f ( x i ) i ∈ ( 0 , 1 , 2 , . . . , n ) s . t . h k ( x i ) = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) k ∈ ( 1 , 2 , 3 , . . . , l ) s . t . ψ ( x i , a m ) = g m ( x i ) + a m 2 = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) m ∈ ( 0 , 1 , 2 , . . . , z ) minf(x_i) \kern{1em} i\isin(0,1,2,...,n)\\ s.t.h_k(x_i)=0 \kern{2em} \kern{1em} i\isin(0,1,2,...,n) \kern{1em} k\isin(1,2,3,...,l)\\ s.t.\psi(x_i,a_m)=g_m(x_i)+a_m^2 = 0 \kern{1em} i\isin(0,1,2,...,n) \kern{1em} m\isin(0,1,2,...,z) minf(xi​)i∈(0,1,2,...,n)s.t.hk​(xi​)=0i∈(0,1,2,...,n)k∈(1,2,3,...,l)s.t.ψ(xi​,am​)=gm​(xi​)+am2​=0i∈(0,1,2,...,n)m∈(0,1,2,...,z)
拉格朗日函数:
L ( x i , λ k , η m , a m ) = f ( x i ) + λ k ∑ k − 0 l h k ( x i ) + η m ∑ m = 0 z [ g m ( x i ) + a m 2 ] i ∈ ( 0 , 1 , 2 , . . . , n ) k ∈ ( 1 , 2 , 3 , . . . , l ) m ∈ ( 0 , 1 , 2 , . . . , z ) L(x_i,\lambda_k,\eta_m,a_m)=f(x_i)+\lambda_k\sum_{k-0}^lh_k(x_i)+\eta_m\sum_{m=0}^z[g_m(x_i)+a_m^2]\\ \kern{1em} i\isin(0,1,2,...,n) \kern{1em} k\isin(1,2,3,...,l) \kern{1em} m\isin(0,1,2,...,z) L(xi​,λk​,ηm​,am​)=f(xi​)+λk​k−0∑l​hk​(xi​)+ηm​m=0∑z​[gm​(xi​)+am2​]i∈(0,1,2,...,n)k∈(1,2,3,...,l)m∈(0,1,2,...,z)
建立方程组:
{ Δ L Δ x i = 0 i ∈ ( 0 , 1 , 2 , . . . , n ) Δ L Δ λ k = 0 k ∈ ( 0 , 1 , 2 , . . . , l ) Δ L Δ η m = 0 m ∈ ( 0 , 1 , 2 , . . . , z ) Δ L Δ a m = 0 m ∈ ( 0 , 1 , 2 , . . . , z ) \begin{cases} \dfrac{\varDelta L}{\varDelta x_i}=0 \kern{1em} i\isin(0,1,2,...,n)\\ \\ \dfrac{\varDelta L}{\varDelta \lambda_k}=0 \kern{1em} k\isin(0,1,2,...,l)\\ \\ \dfrac{\varDelta L}{\varDelta \eta_m}=0 \kern{1em} m\isin(0,1,2,...,z)\\ \\ \dfrac{\varDelta L}{\varDelta a_m}=0 \kern{1em} m\isin(0,1,2,...,z)\\ \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​Δxi​ΔL​=0i∈(0,1,2,...,n)Δλk​ΔL​=0k∈(0,1,2,...,l)Δηm​ΔL​=0m∈(0,1,2,...,z)Δam​ΔL​=0m∈(0,1,2,...,z)​
求解方程组,得到极值点

拉格朗日KKT条件极值求解相关推荐

  1. 多元函数微分学条件极值(拉格朗日乘数法)求解技巧总结

    看到多元函数条件极值的题目,常用拉格朗日乘数法对号入座.但有时候如坐针毡,因为这种看似万能的方法计算量太大了.解方程解的生无可恋是常态.所以我总结了一些解条件极值的小技巧,希望对大家有所帮助. 总的来 ...

  2. 内点惩罚函数法matlab_拉格朗日乘数法求解多元条件极值问题

    点击蓝字,关注废柴姐姐 拉格朗日乘数法 " 一种不直接依赖消元法而求解条件极值问题的有效方法 二元函数入手 我们从  皆为二元函数这一简单情况人手. 欲求函数 的极值,其中受条件 的限制. ...

  3. 拉格朗日乘数法求解技巧2

    lagrange乘数法的求解其实是有技巧的. 一般就是两个办法来求解.第一个就是,首先我们用前面的三个表达式,来看出他们之间是不是存在比例关系.这样的话就已经把未知数化简了非常多了.然后还有一个就是可 ...

  4. 二次规划问题的KKT 条件求解方法

    专栏文章汇总 文章结构如下: 1: 等式约束优化问题 2: 不等式约束优化问题 3: 一个例子 注:本文来自台湾周志成老师<线性代数>及其博客 Karush-Kuhn-Tucker (KK ...

  5. 判断kkt条件的例题_kkt条件例题求解

    ◎ Karush-Kuhn-Tucker条件, KKT条件/KKT点 ◎称 为对... 2 1 的KKT条件,求出最优解及其相应的Lagrange乘子. (b) (6分) 写出求解(a)中问题的任意两 ...

  6. 个人总结 :SVM 与 拉格朗日函数、对偶问题 和 KKT条件 以及 SMO算法

    提到SVM,可能首先想到的是令人头大的公式推导,通过确定思想,公式等式转化,拉格朗日函数,求梯度,约束变换,KKT.SMO...最后终于得到我们的最优解.而在这其中,不免作为核心的就是拉格朗日函数以及 ...

  7. 数值分析-拉格朗日插值公式的定义与求解

    目录 一.引言 二.插值问题 三.拉格朗日插值公式 1. 拉格朗日插值多项式的定义 2. 拉格朗日插值多项式的求解 3. 拉格朗日插值多项式的误差分析 四.应用举例 1. 插值函数的构造 2. 插值函 ...

  8. 拉格朗日松弛求解整数规划浅析(附Python代码实例)

    运筹优化博士,只做原创博文.更多关于运筹学,优化理论,数据科学领域的内容,欢迎关注我的知乎账号:https://www.zhihu.com/people/wen-yu-zhi-37 拉格朗日松弛是一种 ...

  9. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)

    引言 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.通常,对于等式约束问题,采用拉格朗日乘子法.对 ...

最新文章

  1. python批量重命名指定目录下所有文件的后缀名
  2. python爬虫学习(二) 简易网页爬取
  3. nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步
  4. 『数据库』 E-R图(实体联系图)你都不会,你设计什么数据库?
  5. Shell编程—企业生产案例
  6. 解决TypeError: string indices must be integers, not str
  7. preg使用。还是一样,只是个人记录,不放博客园首页
  8. java 元祖_在java中对元组列表进行排序的有效方法
  9. 解决zabbix图形乱码
  10. exfat最佳单元大小_2020年Window系统重装最佳方式
  11. winform通过restsharp调用api接口登录及其它接口
  12. 深度学习 | MATLAB卷积神经网络原理描述
  13. SSD测试专题(二)
  14. 【世界最佳旅游win7主题】
  15. 学历真的是衡量一个人的首要条件吗?
  16. lua -- class
  17. Unable to apply any optimisations to advised method 信息解析
  18. MCNP5 粒子输运 常见问题汇总与踩坑记录(导火索:死循环)
  19. oracle ins ctx.mk,(原创)RHEL/CentOS 6.x 64位安装Oracle11gR2 64位出现ins_ctx.mk报错解决...
  20. Direct3D(D3D)简介

热门文章

  1. 最新PHP全自动发信投稿系统源码+带后台
  2. Mysql--instr函数的介绍及使用
  3. 《招标投标法》和《招标投标实施条例》有什么关系?
  4. 可视化神器Plotly绘制热力图
  5. 机器学习系列(二)——评价指标Precision和Recall
  6. 【编程不良人】快速入门SpringBoot学习笔记06---RestFul、异常处理、CORS跨域、Jasypt加密
  7. 如何完美解决解决win10系统--无法自动修复此计算机问题
  8. kue api文档说明
  9. 买股票也要会买跌,股票不是只有涨的时候才能买的
  10. RRDTool 中文手册-简易入门