版权归原作者所有,如有侵权,请联系我们

[科普中国]-拉格朗日乘数法

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。1此方法的证明牵涉到偏微分,全微分或链法,从而找到能让设出的隐函数的微分为零的未知数的值。

基本信息定义介绍设给定二元函数z=ƒ(x,y)和附加条件φ(x,y)=0,为寻找z=ƒ(x,y)在附加条件下的极值点,先做拉格朗日函数 ,其中λ为参数。

令F(x,y,λ)对x和y和λ的一阶偏导数等于零,即

F'x=ƒ'x(x,y)+λφ'x(x,y)=01

F'y=ƒ'y(x,y)+λφ'y(x,y)=0

F'λ=φ(x,y)=0

由上述方程组解出x,y及λ,如此求得的(x,y),就是函数z=ƒ(x,y)在附加条件φ(x,y)=0下的可能极值点。

若这样的点只有一个,由实际问题可直接确定此即所求的点。

几何意义设给定目标函数为 ,约束条件为 。1

如图所示,曲线 为约束条件 为目标函数的等值线族。

偏导数都连续的条件下,目标函数 在约束条件 下的可能极值点 ,从几何上看,必是目标函数等值线曲线族中与约束条件曲线能相切的那个切点。

因为两曲线在切点处必有公法线,所以目标函数等值线在点 处法向量 与约束条件曲线在点 处法向量 平行,即

也就是说,存在实数 ,使下式成立

需要注意的是,目标函数等值线与约束条件曲线的切点未必就是目标函数 在约束条件 下的极值点(如图中的 点)。

证明以三元函数为例,即求目标函数:u=f(x,y,z) 在限制条件:①G(x,y,z)=0 ② H(x,y,z)=0下的极值。

假定f,G,H具有连续的偏导数,且Jacobi矩阵:1

注释:这里表示的是2x3的矩阵,Hx和Gx分别表示H,G对x求偏导。

在满足约束条件的点处是行满秩,即Rank(J)=2。

先考虑取到条件极值的必要条件,上述约束条件实际是空间曲线的方程。设曲线上一点( , , ) 为条件极值点,由于在该点处rank(J)=0,不妨假设在( , , )点处 ,则由隐函数存在定理,在点( , , )附近由该方程可以确定 y=y(x),z=z(x),其中 =y( ), =z( ),它是这个曲线方程的参数形式。

将它们带入目标函数,原问题就转化为函数:

的无条件极值问题, 是函数 (x)的极值点,因此有 '(x)=0。

也就是

这说明向量2gradf( , , )与向量 正交,即与曲线在点( , , )的切向量正交,因此这点的梯度grad f(,,)可以看做是曲线在点 ( , , ) 处的法平面上的向量。在根据平面上任意一个向量都可以有一对不共线的向量线性表示,又由于这个法平面是由grad G(x0,y0,z0)gradH( , , )张成的,因此,存在常数a,b使得 gradf( , , )=a*grad G(x0,y0,z0)+b*gradH(x0,y0,z0)

这就是点(,,)为条件极值点的必要条件。

将上述方程写成分量的形式,就可以得到。

求极值求函数f(x,y,z)在条件φ(x,y,z)=0下的极值。1

方法(步骤)是:

1.做拉格朗日函数L=f(x,y,z)+λφ(x,y,z),λ称拉格朗日乘数;

2.求L分别对x,y,z,λ求偏导,得方程组,求出驻点P(x,y,z);

如果这个实际问题的最大或最小值存在,一般说来驻点只有一个,于是最值可求。

条件极值问题也可以化为无条件极值求解,但有些条件关系比较复杂,代换和运算很繁,而相对来说“拉格朗日乘数法”不需代换,运算简单一点,这就是优势。

条件φ(x,y,z)一定是个等式,不妨设为φ(x,y,z)=m

则再建一个函数g(x,y,z)=φ(x,y,z)-m

g(x,y,z)=0以g(x,y,z)代替φ(x,y,z)

在许多极值问题中,函数的自变量往往要受到一些条件的限制,比如,要设计一个容积为 V的长方体形开口水箱,确定长、宽和高,使水箱的表面积最小.。设水箱的长、宽、高分别为 x,y,z, 则水箱容积V=xyz。

焊制水箱用去的钢板面积为 S=2xz+2yz+xy

这实际上是求函数 S 在 V 限制下的最小值问题。

这类附有条件限制的极值问题称为条件极值问题,其一般形式是在条件限制下,求函数F的极值。

条件极值与无条件极值的区别

条件极值是限制在一个子流形上的极值,条件极值存在时无条件极值不一定存在,即使存在二者也不一定相等。

例如,求马鞍面 z=x^2-y^2+1 被平面XOZ 平面所截的曲线上的最低点。

从其几何图形可以看出整个马鞍面没有极值点,但限制在马鞍面被平面 平面所截的曲线上,有极小值 1,这个极小值就称为条件极值。

必要条件

设在约束条件之下求函数的极值。满足约束条件的点是函数的条件极值点,且在该点函数满足隐函数存在条件时, 由方程定隐函数 ,于是点就是一元函数的极限点。

Lagrange乘数法1

由上述讨论可见,函数在约束条件之下的条件极值点应是方程组的解。

引进所谓Lagrange函数(称其中的实数 为Lagrange乘数 ),则上述方程组即为方程组。

因此,解决条件极值通常有三种方法:

1)直接的方法是从方程组(1)中解出 并将其表示为 代入 消去 成为变量为 的函数将问题化为函数无条件极值问题;

2)在一般情形下,要从方程组(1)中解出 来是困难的,甚至是不可能的,因此上面求解方法往往是行不通的。通常采用的拉格朗日乘数法,是免去解方程组(1)的困难,将求 的条件极值问题化为求下面拉格朗日函数的稳定点问题,然后根据所讨论的实际问题的特性判断出哪些稳定点是所求的极值的。

3)在给定的条件下,若是可以将未知数代换或是解出,则可以将条件极值转化为无条件极值,从而避免引入拉格朗日乘数的麻烦。

注意:▽φ(x,y,z)=0 且 φ(x,y,z)=0的点不会被该方法计算到,因此,若求最大值或最小值时,应把这些点列出来并单独计算。

解题思路我们知道,对于“限制条件为等式,x值均为正值"的最大化问题, 满足最大化的x组合一定满足:F(i)(x*)-Σλj Gj(i)(x*)=0, i=1,2,3,.....n, j=1,2,...m. 从这里我们看到,如果限制条件 Gj(x*)=cj 中的 cj 变化 dcj ,如果全部作用于x(i),那么引起的dx(i)=dcj/Gj(i)(x*),从而导致目标方程取值变化dF=F(i)(x*)dcj/Gj(i)(x*)=λj*dcj 。

那么我们得到:λj=dF/dcj。也就是说,拉格朗日乘数其实代表的是cj对最大化目标函数F的边际影响。虽然这里考虑的是仅仅cj发生变化,我们可以对此加以推广,比如整体的c向量发生变化到 c+dc,dc是一个m-维向量,那么F的总变化量dF就是Σλj dCj, j=1,2,...m

举一个具体的实例:假如一个计划经济体系下,政府实施如前所述的最大化问题(在有限资源如劳动力、自然矿产,人力资本等的限制下使社会整体效用/福利最大化),并已经找到了满足最大化条件的x组合。假设万能的上帝允许该国的劳动力资源可以额外增加dc1,那么根据拉格朗日乘数的经济学含义我们知道给整个社会带来的福利将是λ1*dc1。但是上帝说:要获得这个额外的劳动力资源,你们必须以一定数量的其他资源比如土地来跟我交换,以示公平。那么我们人类政府该拿多少土地来跟上帝换呢?指定该土地数量为dx2,那么由此减少的社会福利是λ2*dc2。如果λ1*dc1>λ2*dc2,上帝不会答应,如果反之我们不会答应。所以必然有λ1*dc1=λ2*dc2,也就是dc2=(λ1/λ2)dc1。学过初级微观的朋友马上可以看出,这跟微观经济学中相对价格的概念十分相似。相对价格反映物与物之间的交换价值,即人们愿意怎么样进行物与物的交换。不同的是,这里的价格不是以钱来计算,而是以社会福利来衡量;这里的相对价格λ1/λ2中的λ1和λ2是基于解决社会福利最大化问题而计算出来的,不同于市场中的价格P1,P2。由于这个原因,我们把λ叫做"影子价格"(shadow price)。如果我们偶尔发现某个市场经济下市场价格之比恰恰等于影子价格之比,我们称这个市场被一双看不见的手所指引,因为该市场居然可以自发调整解决社会福利的最大化问题。

再来考虑"限制条件为非等式"的情况。 我们知道市场价格通常都不可能为零或负数,但是影子价格确不同,它描述的是限制方程右方cj对整体目标函数值的边际影响。在限制条件Gj为非等式的情况下,增加额外的cj不一定就意味着目标函数值的增加。比如:限制条件为"社会某消费产品不得高于cj",目标函数为投资量,如果cj提高,那么消费该产品增加,导致投资量减少,目标函数值减少,这时影子价格就是一个负值。再比如:目标函数为产量,限制条件为"同时参加劳动的工人数量不得高于cj"。如果cj增加,那么同时劳动的工人数量增加,可能导致劳动力边际产量递减效应的发生,这时总产量可能不增反降。这时我们情愿不增加工人。换句话说,我们情愿把一些资源放在一旁不予利用(free dsiposal).这时候再增加这些劳动力资源,对总产量已经没有作用了,所以影子价格为零。 事实上,根据库恩-塔克定理,这一点是很明显的。库恩-塔克定理说,满足最大化问题解的x一定使得下面的条件满足:

Lλ(x, λ)>=0, λ>=0, 互补松散

就是说,如果Lλ(x, λ)=c-G(x*)>0,那么说明有资源余缺闲置,这时λ=0。如果Lλ(x, λ)=c-G(x*)=0,那么说明资源全部被使用,其边际效用λ>0。

注意:这里我们通过对拉格朗日乘数的解释考查了cj的微小变动dcj对目标函数最大值的变化的影响,这就是开篇所说的比较静态研究—研究参数θ的变化对最大值的影响。所以我们在进行比较静态研究的时候必须把目标函数看成是同时关于x和参数θ的函数,基于这一点,我们从另一个角度来看λ的确定,考察参数cj。如果cj变化一点点到cj+dcj,那么相应地最佳组合x*变动到x*+dx*,最大目标值也由F(x*)变化为F(x*+dx*)。由泰勒一阶展开我们得到:dF=F(x*+dx*)-F(x*)=Fx(x*)dx*+Fcj(x*)dcj。根据拉格朗日乘数法一阶必要条件,我们有Fx(x*)=λj Gx(x*),所以dF=λj Gx(x*)dx*+Fcj(x*)dcj=λj Gx(x*)dx*,我们又知道根据限制条件方程G(x*)=cj,在cj变化到cj+dcj的过程中,Gx(x*)dx*=dcj,所以dF=λj dcj。同样推导出了λ的定义式。更一般地,如果F和G都是关于x和参数θ的函数,如果参数θ变动到θ+dθ,x随之变动到x+dx,那么:

dF=F(x+dx,θ+dθ)-F(x,θ)=Fx(x,θ)dx+Fθ(x,θ)dθ=λGx(x,θ)dx+Fθ(x,θ)dθ...(1)

由于G是关于x和θ的函数G(x,θ)=c,所以在θ变化的过程中始终有

Gx(x,θ)dx+Gθ(x,θ)dθ=dc...................................................(2)

代入(1)式,我们得到:

dF=λdc -λGθ(x,θ)dθ+Fθ(x,θ)dθ=Lθ(x,λ,θ)dθ+λdc....................(3)

这就是最一般化的比较静态公式。我们在研究影子价格λ的时候,没有考虑任何参数θ的变化,所以公式(3)的第一项为零,这样dF=λdc。反之,我们在某些情况下不考虑c的变化,而侧重于参数θ的变化,这时公式(3)变化为: dF=Lθ(x,λ,θ)dθ。如果只有函数F跟θ有关,而G跟θ无关,那么公式(3)简化为dF=Fθ(x,θ)dθ。

注意:

1、在参数θ变化的过程中,θ-->θ+dθ,x-->x+dx,但是对目标函数值的影响却只要考虑拉格朗日函数对θ的偏微分,而且该偏微分在原来最优点x处取值,这是我们用泰勒一阶展开应该得到的结论。

2、这里的x虽然没有标上星号*,但不言自明的是它们都应该是最优组合,而且它们也都是关于参数θ的函数x(θ)。如果我们把最大化了的F定义成一个新函数最优目标方程V(θ),那么由刚刚推导出来的公式(3)dF=Fθ(x,θ)dθ 我们有 Vθ(θ)=Fθ(x(θ),θ)。再次提醒注意,这里的x(θ)是满足最大化条件的最优点。

如果我们再定义一个普通目标函数F(x',θ),但是这里的x'是任意值,不一定是最优点x(θ)。假设对应这个x'的能使 F 函数值最大的θ是θ',那么V(θ)在θ'点处的斜率为:Vθ(θ')=Fθ(x(θ'),θ')。但我们知道,x(θ')=x',所以Fθ(x(θ'),θ')=Fθ(x',θ')。而后者就是函数F(x',θ)在点θ'的斜率,这就是说函数V(θ)和函数F(x',θ)在点(x',θ')处的斜率相等。这个结论对于x'取任意一个固定值都是成立的,所以从几何图形上来看:最优目标函数V(θ)把普通目标函数曲线族紧紧包围。因此dF=Fθ(x,θ)dθ 往往又称为"包络定理"(envelope theorem)。微观经济学里面的短期成本和长期成本之间的关系就是符合信封定理的,因为这里的成本都是满足了成本最小化之后的成本。

均衡原则

微观经济学研究消费者行为时,所要阐述的核心问题是消费者均衡的原则。所谓消费者均衡指的是一个有理性的消费者所采取的均衡购买行为。进一步说,它是指保证消费者实现效用最大化的均衡购买行为。

但人的需要或欲望是无限的,而满足需要的手段是有限的。所以微观经济学所说的效用最大化只能是一种有限制的效用最大化。而这种限制的因素就是各种商品的价格和消费者的货币收入水平。

首先,我们先引入一些名词解释:

总效用(TU):消费者在一定时间内消费一定数量某种商品或商品组合所得到的总的满足。

边际效用(MU):消费者在所有其它商品的消费水平保持不变时,增加消费一单位某种商品所带来的满足程度的增加,也就是说指增加一单位某种商品所引起的总效用的增加。

商品数量(Q),商品价格(P), 收入(I)

边际效用的公式表达为:MU=∂TU/∂Q

那么如何才能实现制约条件下的效用最大化的商品组合呢?

就是当消费者把全部收入用于购买各种商品时,他从所购买的每一种商品所得到的边际效用与其价格的比例都相同,这样的商品组合就是最佳的或均衡的商品组合。

假设当消费者选择两种商品x,y时,消费者均衡原则的公式表达为:

MUx/Px = MUy/Py("/"为分数线)

制约条件的公式表达式为:I=Px∙Qx+Py∙Qy。那么这一结论是如何推导出来的呢?解决这一问题最直接的方法就是拉格朗日乘数法。

上面说到:在利用偏导数求多元函数的极值时,若函数的自变量有附加条件,则称之为条件极值。这时,可用拉格朗日乘数法求条件极值。具体方法如下:

设给定二元函数z=ƒ(x,y)和附加条件φ(x,y)=0,为寻找z=ƒ(x,y)在附加条件下的极值点,先做拉格朗日函数L(x,y)=ƒ(x,y)+λφ(x,y),其中λ为参数。求L(x,y)对x和y的一阶偏导数,令它们等于零,并与附加条件联立,即

L'x(x,y)=ƒ'x(x,y)+λφ'x(x,y)=0

L'y(x,y)=ƒ'y(x,y)+λφ'y(x,y)=0

φ(x,y)=0

套用到微观经济学里面:设效用函数U(Qx,Qy),为使它在制约条件下取得极值,首先建立拉格朗日函数:L=U(Qx,Qy)+λ( I-Px∙Qx-Py∙Qy),λ为参数。求L(x,y)对x和y的一阶偏导数,令它们等于零,并与附加条件连立。

∂L/∂Qx=∂U/∂Qx-λPx=0 (1)

∂L/∂Qy=∂U/∂Qy-λPy=0 (2)

I-Px∙Qx-Py∙Qy=0 (3)

将方程(1)除以方程(2),得:

∂U/∂Qx =Px 即 MUx = MUy

∂U/∂Qy =Py

所以,消费者要实现两种商品的效用最大化,边际效用的比率应该等于价格比率。3

以上是关于x和y两种商品所说的,是否同样适用于多种商品呢?答案是肯定的。如果消费者在n种商品中做出选择,则消费者均衡的原则可表达为:

MU1=MU2 =MU3 = …=MUn

P1= P2= P3=...= Pn

这一结论同样可用拉格朗日乘数法证明。

拉格朗日乘数法可推广到求n元函数ƒ(x1,x2,…,xn)在m个附加条件φ(x1,x2,…,xn)下的条件极值。

方法如下:

(1)做拉格朗日函数L(x1,x2,…,xn)=ƒ(x1,x2,…,xn)+ ∑λiφi(x1,…x2);

(2)求L(x1,…xn)关于x1,…xn的偏导数,令它们等于零,并与附加条件联立,即

L'xi==ƒ'xi+ ∑λiφ'i=0 ,i=1,2,…,n

φk(x1,x2,…,xn)=0 ,k=1,2,…,n

求解此方程组,可得到极值点。

回到我们的问题中,设效用函数U(Qx1,Qx2,…Qxn),为使它在制约条件下取得极值,首先建立拉格朗日函数:

L=U(Qx1,Qx2,…Qxn )+λ(I-Px1∙Qx1-P2∙Qy2-…-Pxn∙Qxn),λ为参数。求L(x1,x2,…xn)对x1,…,xn的一阶偏导数,令它们等于零,并与附加条件联立。

∂L/∂Qx1=∂U/∂Qx1-λPx1=0 (1)

∂L/∂Qx2=∂U/∂Qx2-λPx2=0 (2)

…… …

∂L/∂Qxn=∂U/∂Qxn-λPxn=0 (n)

I-Px1∙Qx1-P2∙Qy2-…-Pxn∙Qxn

将方程(1)到(n)相除,即得,

MUx1 = MUx2 =…=MUxn

Px1 =Px2 =...=Pn

所以,消费者要实现n种商品的效用最大化,边际效用的比率应该等于价格比率。

应用举例例题一抛物面被平面截成一个椭圆。 求该椭圆到坐标原点的最长和最短距离。

以上面水箱设计为例,看一看拉格朗日乘数法求解条件极值的过程。

解: 这个问题的实质是求函数在条件下的最小值问题, 应用拉格朗日乘法,令

L='2*(x*z+y*z)+x*y+v*(x*y*z-V)'

dLdx=diff(L,'x')

dLdy=diff(L,'y')

dLdz=diff(L,'z')

dLdv=diff(L,'v')

dLdx =2*z+y+v*y*z

dLdy =2*z+x+v*x*z

dLdz =2*x+2*y+v*x*y

dLdv =x*y*z-V

令 L 的各偏导等零,解方程组求稳定点。

s1='2*z+y+v*y*z';

s2='2*z+x+v*x*z';

s3='2*x+2*y+v*x*y';

s4='x*y*z-V';

[v,x0,y0,z0]=solve(s1,s2,s3,s4)

v =

[ -2*2^(2/3)/V^(1/3)]

[ -8*(-1/4*2^(1/3)*V^(1/3)+1/4*i*3^(1/2)*2^(1/3)*V^(1/3))^2/V]

[ -8*(-1/4*2^(1/3)*V^(1/3)-1/4*i*3^(1/2)*2^(1/3)*V^(1/3))^2/V]

x0 =[ 2^(1/3)*V^(1/3)]

y0 =[ 2^(1/3)*V^(1/3)]

z0 =[ 1/2*2^(1/3)*V^(1/3)]

这里显然只有实数解才有意义,所以 L 的稳定点只有下面一个。

又已知所求的问题确实存在最小值,从而解出的稳定点就是最小值点,即水箱长宽与为高的2倍时用钢板最省。

例题二再看一个条件极值求解问题。

抛物面被平面截成一个椭圆,求这个椭圆到坐标原点的最长最短距离。

解 这个问题的实质是求函数在条件下的最大、最小值问题,应用拉格朗日乘法,令

L='x^2+y^2+z^2+v*(x^2+y^2-z)+h*(x+y+z-1)'

dLdx=diff(L,'x')

dLdy=diff(L,'y')

dLdz=diff(L,'z')

dLdv=diff(L,'v')

dLdh=diff(L,'h')

dLdx =2*x+2*v*x+h

dLdy =2*y+2*v*y+h

dLdz =2*z-v+h

dLdv =x^2+y^2-z

dLdh =x+y+z-1

s1='2*x+2*v*x+h'

s2='2*y+2*v*y+h'

s3='2*z-v+h'

s4='x^2+y^2-z'

s5='x+y+z-1'

[h,v,x0,y0,z0]=solve(s1,s2,s3,s4,s5)

x0,y0,z0

x0 =

[ 3/4-1/4*i*13^(1/2)]

[ 3/4+1/4*i*13^(1/2)]

[ -1/2+1/2*3^(1/2)]

[ -1/2-1/2*3^(1/2)]

y0 =

[ 3/4+1/4*i*13^(1/2)]

[ 3/4-1/4*i*13^(1/2)]

[ -1/2+1/2*3^(1/2)]

[ -1/2-1/2*3^(1/2)]

z0 = -1/2,-1/2, 2-3^(1/2),2+3^(1/2)

即稳定点有两个

因为函数在有界闭集 上连续,必有最大值和最小值,而求得的稳定点又恰是两个,所以它们一个是最大点,另一个是最小。

x1=-1/2+1/2*3^(1/2)

x2=-1/2-1/2*3^(1/2)

y1=-1/2+1/2*3^(1/2)

y2=-1/2-1/2*3^(1/2)

z1=2-3^(1/2)

z2=2+3^(1/2)

f1=(x1^2+y1^2+z1^2)^(1/2)

f2=(x2^2+y2^2+z2^2)^(1/2)

f1 = 0.5829 ; f2 = 4.2024

例题三求此方程的最大值:

同时未知数满足:

因为只有一个未知数的限制条件,我们只需要用一个乘数

将所有 方程的偏微分设为零,得到一个方程组,最大值是以下方程组的解中的一个:

本词条内容贡献者为:

刘军 - 副研究员 - 中国科学院工程热物理研究所