拉格朗日乘数(Lagrange Multipliers)法
在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n个变量与k个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。此方法的证明牵涉到偏微分,全微分或链法,从而找到能让设出的隐函数的微分为零的未知数的值。
引入问题
给定一个函数:z=f(x,y)如何求其极值点呢 ?
显然根据多元函数求极值定理(必要条件):设函数z=f(x,y)在点(x0,y0)具有偏导数,且在点(x0,y0)处有极值,则有
fx(x0,y0) = 0, fy(x0,y0) = 0
即:函数在点(x0,y0)处有偏导且有极值则该点处偏导为0,具体方法不作叙述,参考高等数学Ⅱ
现在将问题难度加大,如果再加上约束条件呢?面积固定,求体积最大?
V(x,y,z)=xyz
2xy+2xz+2yz=S
正文

上图是对拉格朗日乘数法的叙述
假设有两个函数f(x,y)和g(x,y),且这两个函数的一阶偏导数都是连续函数,在g(x,y)=k and ▽g(a,b)≠(0,0)的前提下,函数f(x,y)在某个(a,b)点产生了局部极值,可以找到一个实数λ使得▽f(a,b)=λ▽g(a,b)

f(x,y)是右图中的3D曲面(横截面为椭圆的抛物面),左图中的g(x,y)是约束条件,我们将g(x,y)向上面的f(x,y)进行投影可以得到曲面上有一条蓝色的曲线,这条曲线就是在g(x,y)的约束条件下f(x,y)的所有取值点,接下来我们就要从中找到最值。

我们引入一个水平面z=h,水平面与曲面相交处的投影是一个椭圆,水平面向上移动时,会首先与曲面上蓝色的曲线相交于图上两个绿色的点,此时如左图(投影图)所示,h=2。水平面继续向上移动时会与曲面上蓝色的曲线一直相交于4个点,直到相交于两个点时,即为图上的红点,此时如左图所示,h=4。当水平面继续向上移动时就再也不可能与曲面上蓝色的曲线相交了。如右图我们可以知道h=2和h=4时的交点是在约束条件下曲面的极值点,并且此时的蓝色曲线与水平面相切。在左图中可以看出当处于极值点时f(x,y)和g(x,y)共同相切与同一条直线,所以此时两函数在此交点的处的法向量是共线的,即▽f(x,y)=λ▽g(x,y)
Ep: Find the extreme values of the function f(x,y)=x2+2y2 on the circle x2+y2=1⟶type1
Sol: Let g(x,y)=x2+y2 and we get circle ⇒ g(x,y)=x2+y2=1
If ▽f(x,y)=λ▽g(x,y), then (fx,fy)=λ(gx,gy)⇒(2x,4y)=λ(2x,2y)
{2x=2λx⇒2x(λ−1)=0⇒x=0,λ=14y=2λy⇒2y=λy⟶type2
If x=0, then type1⇒y2=1⇒y=±1⇒(x,y)=(0,1)or(0,−1)
If λ=1, then type2⇒2y=y⇒y=0⇒x2=1⇒x=±1⇒(x,y)=(1,0)or(−1,0)
(x,y) |
(0,1),(0,-1) |
(1,0),(-1,0) |
f(x,y) |
2,2 |
1, 1 |
extremum |
abs max value |
abs min value |
f(x,y)has{anabsmaxvalue2of(0,1),(0,−1)anabsminvalue1of(1,0),(−1,0)
简言之
求解函数:z=f(x,y)在条件ϕ(x,y)=0条件下的极值。
解:
- 构造函数F(x,y)=f(x,y)+λϕ(x,y),其中λ为拉格朗日乘数
⎧⎨⎩fx(x,y)+λϕx(x,y)=0fy(x,y)+λϕy(x,y)=0,ϕ(x,y)=0.
- 其中(x,y)就是极值点坐标
自变量多于两个的条件下
函数:u=f(x,y,z,t)在条件ϕ(x,y,z,t)=0,Ψ(x,y,z,t)=0下的极值
构造函数:F(x,y,z,t)=f(x,y,z,t)+λ1ϕ(x,y,z,t)+λ2Ψ(x,y,z,t)
其中λ1,λ2均为拉格朗日乘数,同样通过偏导为0以及约束条件求解
如:
函数:u=x3y2z,约束条件:x,y,z之和为12,求其最大值。
解:
-
构造函数:F(x,y,z)=x3y2z+λ(x+y+z−12)
-
分别求偏导:
⎧⎪
⎪
⎪⎨⎪
⎪
⎪⎩F′x=3x2y2z+λ=0F′y=2x3yz+λ=0F′z=x3y2+λ=0x+y+z=12
-
唯一驻点:(6,4,2)
-
umax=63⋅42⋅2=6912
例:
在第一卦限内作椭圆球面x2a2+y2b2+z2c2=1的切平面,使切平面与三个坐标面所围成的四面体体积最小,求切点坐标。
解:
设P(x0,y0,z0)为椭球面上的一点,令F(x,y,z)=x2a2+y2b2+z2c2−1
则F′x|p=2x0a2,F′y|p=2y0b2,F′z|p=2z0a2
过P(x0,y0,z0)的切平面方程为
x0a2(x−x0)+y0b2(y−y0)+z0c2(z−z0)=0
化简为x⋅x0a2+y⋅y0b2+z⋅z0c2=1
该切平面在三个轴上的截距各为x=a2x0,y=b2y0,z=c2z0
所求四面体的体积V=16xyz=a2b2c26x0y0z0
在条件x20a2+y20b2+z20c2=1下求V的最小值,
目标函数V=a2b2c26x0y0z0, 约束条件x20a2+y20b2+z20c2=1
令u=lnx0+lny0+lnz0
L(x0,y0,z0)=lnx0+lny0+lnz0+λ(x20a2+y20b2+z20c2−1)
由{L′x0=0,L′y0=0,L′z0=0x20a2+y20b2+z20c2−1=0
L(x0,y0,z0)=lnx0+lny0+lnz0+λ(x20a2+y20b2+z20c2−1)
即⎧⎪
⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪
⎪⎩1x0+2λx0a2=01y0+2λy0b2=01z0+2λz0c2=0x20a2+y20b2+z20c2−1=0, 可得⎧⎪
⎪
⎪⎨⎪
⎪
⎪⎩x0=a√3y0=b√3z0=c√3
故当切点坐标为(a√3,b√3,c√3)
四面体的体积最小Vmin=√32abc
拉格朗日对偶(Lagrange duality)问题
利用拉格朗日对偶性,可以将约束最优化的原始问题(广义拉格朗日极小极大问题),转变为无约束最优化的对偶问题(拉格朗日极大极小问题)。
原始问题
假设在x∈Rn下,f(x),ci(x),hj(x)连续且可微,约束最优化问题,如下
minx∈Rnf(x)s.tci(x)⩽0,i=1,2,...,khj(x)=0,j=1,2,...,l
称为约束最优化问题的原始问题。
引入广义拉格朗日函数(generalized Lagrange function)
L(x,α,β)=f(x)+k∑i=1αici(x)+l∑j=1βjhj(x)
x=(x(1),x(2),x(3)...x(n))T∈Rn
特别的αi⩾0
定义θp(x)=maxα,β:αi⩾0L(x,α,β)
若x违背原始的约束条件,ci(x)>0则让αi为+∞,其他α和β参数都为0,则θp(x)=+∞
若x违背原始的约束条件,hi(x)≠0则让βihi(x)=+∞,其他α和β参数都为0,则θp(x)=+∞
若x满足原始的约束条件,则让全部的βihi(x)=0和αici(x)=0,f(x)是一个与α和β无关的常量,则θp(x)=f(x),也就是θp(x)={f(x),x满足原始问题约束+∞,x不满足原始问题约束
则原问题(满足约束条件下)等价于:minxθp(x)=minxmaxα,β:αi⩾0L(x,α,β)=minxf(x)
即minxθp(x)与原始优化问题等价,所以常用minxθp(x)代表原始问题,下标 P 表示原始问题,定义原始问题的最优值为:p∗=minxθp(x)
通过拉格朗日函数重新定义一个无约束的问题,这个无约束的问题等价于原来的约束优化问题,从而将约束问题无约束化。
对偶问题:
θd(α,β)=minxL(x,α,β)
这里注意等式右边是关于x的函数的最小化,x确定以后,最小值就只与α,β有关,所以是一个关于α,β的函数。
maxα,β:αi⩾0θd(α,β)=maxα,β:αi⩾0minxL(x,α,β)
这就是原始问题的对偶问题,再把原始问题写出来:
minxθp(x)=minxmaxα,β:αi⩾0L(x,α,β)
形式上可以看出很对称,只不过原始问题是先固定L(x,α,β)中的x,优化出参数α,β,再优化最优x;
而对偶问题是先固定α,β ,优化出最优x,然后再确定参数α,β
定义对偶问题的最优值:d∗=maxα,β:αi⩾0θd(α,β)
也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,当原始问题与对偶问题的最优值相等时,原始问题和对偶问题的可行解就是最优解。
原始问题与对偶问题的关系
由上述推导有:
maxα,β:αi⩾0θd(α,β)⩽minxθp(x)
即:d∗⩽p∗
得出推论:
设x∗和α∗,β∗分别是原始问题和对偶问题的可行解,如果d∗=p∗,则x∗和α∗,β∗分别是原始问题和对偶问题的最优解。
所以,当原始问题和对偶问题的最优值相等:d∗=p∗时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),满足什么样的条件才能使原始问题的最优值与对偶问题的最优值相等,KKT条件:
∇xL(x,α,β)=0∇αL(x,α,β)=0∇βL(x,α,β)=0αici(x)=0,i=1,2,...,kci(x)⩽0,i=1,2,...,kαi⩾0,i=1,2,...,khj(x)=0,j=1,2,...,l
前面三个条件对应各个变量的偏导数为0(这里需要假设三个函数连续可微,若不连续,这里的偏导数存在与否就不能够保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束,其中αici=0为对偶互补条件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通