拉格朗日乘數法

拉格朗日乘數法

高等數學術語
在數學最優問題中,拉格朗日乘數法(以數學家約瑟夫·路易斯·拉格朗日命名)是一種尋找變量受一個或多個條件所限制的多元函數的極值的方法[2]。這種方法将一個有n 個變量與k 個約束條件的最優化問題轉換為一個有n + k個變量的方程組的極值問題,其變量不受任何約束。這種方法引入了一種新的标量未知數,即拉格朗日乘數:約束方程的梯度(gradient)的線性組合裡每個向量的系數。此方法的證明牽涉到偏微分,全微分或鍊法,從而找到能讓設出的隐函數的微分為零的未知數的值。在給定的條件下,若是可以将未知數代換或是解出,則可以将條件極值轉化為無條件極值,從而避免引入拉格朗日乘數的麻煩。
  • 中文名:拉格朗日乘數法
  • 外文名:Lagrange Multiplier Method
  • 适用領域:函數
  • 所屬學科:高等數學
  • 表達式:L=f(x,y,z)+λφ(x,y,z)
  • 提出者:Joseph Lagrange
  • 提出時間:1791年
  • 應用學科:高等數學、微觀經濟學

基本信息

定義介紹

設給定二元函數z=ƒ(x,y)和附加條件φ(x,y)=0,為尋找z=ƒ(x,y)在附加條件下的極值點,先做拉格朗日函數,其中λ為參數。

令F(x,y,λ)對x和y和λ的一階偏導數等于零,即

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

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

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

由上述方程組解出x,y及λ,如此求得的(x,y),就是函數z=ƒ(x,y)在附加條件φ(x,y)=0下的可能極值點。

若這樣的點隻有一個,由實際問題可直接确定此即所求的點。

幾何意義

設給定目标函數為,約束條件為

如圖1所示,曲線為約束條件為目标函數的等值線族。

偏導數都連續的條件下,目标函數在約束條件下的可能極值點,從幾何上看,必是目标函數等值線曲線族中與約束條件曲線能相切的那個切點。

因為兩曲線在切點處必有公法線,所以目标函數等值線在點處法向量與約束條件曲線在點處法向量平行,即

也就是說,存在實數,使下式成立

需要注意的是,目标函數等值線與約束條件曲線的切點未必就是目标函數在約束條件下的極值點(如圖1中的點)。

證明

以三元函數為例,即求目标函數:u=f(x,y,z) 在限制條件:①G(x,y,z)=0 ② H(x,y,z)=0下的極值。

假定f,G,H具有連續的偏導數,且Jacobi矩陣:

注釋:這裡表示的是2x3的矩陣,Hx和Gx分别表示H,G對x求偏導。

在滿足約束條件的點處是行滿秩,即Rank(J)=2。

先考慮取到條件極值的必要條件,上述約束條件實際是空間曲線的方程。設曲線上一點( ) 為條件極值點,由于在該點處rank(J)≠0,不妨假設在(   )點處,則由隐函數存在定理,在點( )附近由該方程可以确定 y=y(x),z=z(x),其中,它是這個曲線方程的參數形式。

将它們帶入目标函數,原問題就轉化為函數:

的無條件極值問題,是函數的極值點,因此有 '(x)=0。

也就是

這說明向量gradf( )與向量正交,即與曲線在點( )的切向量正交,因此這點的梯度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.做拉格朗日函數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乘數法

由上述讨論可見,函數在約束條件之下的條件極值點應是方程組的解。

引進所謂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 disposal).這時候再增加這些勞動力資源,對總産量已經沒有作用了,所以影子價格為零。 事實上,根據庫恩-塔克定理,這一點是很明顯的。庫恩-塔克定理說,滿足最大化問題解的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

所以,消費者要實現兩種商品的效用最大化,邊際效用的比率應該等于價格比率。

以上是關于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

相關詞條

相關搜索

其它詞條