[轉] 拉格朗日乘數法

數學最優化問題中,拉格朗日乘數法(以數學家約瑟夫·路易斯·拉格朗日命名)是一種尋找變量受一個或多個條件所限制的多元函數極值的方法。這種方法將一個有n 個變量與k 個約束條件的最優化問題轉換爲一個有n + k個變量的方程組的極值問題,其變量不受任何約束。這種方法引入了一種新的標量未知數,即拉格朗日乘數:約束方程的梯度(gradient)的線性組合裏每一個向量的係數。php

此方法的證實牽涉到偏微分全微分鏈法,從而找到能讓設出的隱函數的微分爲零的未知數的值。html

介紹

先看一個二維的例子:假設有函數:f(x,y),要求其極值(最大值/最小值),且函數

g\left( x,y \right) = c,

c 爲常數。對不一樣dn的值,不難想像出優化

f \left( x, y \right)=d_n

的等高線。而方程g的等高線正好是g(x,y) = c。想像咱們沿着g = c的等高線走;由於大部分狀況下fg的等高線不會重合,但在有解的狀況下,這兩條線會相交。想像此時咱們移動g = c上的點,由於f是連續的方程,咱們所以能走到f \left( x, y \right)=d_n更高或更低的等高線上,也就是說dn能夠變大或變小。只有當g = cf \left( x, y \right)=d_n相切,也就是說,此時,咱們正同時沿着g = cf \left( x, y \right)=d_n走。這種狀況下,會出現極值鞍點spa

氣象圖中就很常出現這樣的例子,當溫度和睦壓兩列等高線同時出現的時候,切點就意味着約束極值的存在。htm

向量的形式來表達的話,咱們說相切的性質在此意味着fg的斜率在某點上平行。此時引入一個未知標量λ,並求解:blog

 \nabla \Big[f \left(x, y \right) + \lambda \left(g \left(x, y \right) - c \right) \Big] = 0

λ ≠ 0.ip

一旦求出λ的值,將其套入下式,易求在無約束極值和極值所對應的點。get

 F \left( x , y \right) =  f \left( x , y \right) + \lambda \left( g \left( x , y \right) - c \right)

新方程F(x,y)在達到極值時與f(x,y)相等,由於F(x,y)達到極值時g(x,y) − c總等於零。數學

拉格朗日乘數的運用方法

f定義爲在Rn上的方程,約束爲gkx)= ck(或將約束左移獲得gk(x) − ck = 0)。定義拉格朗日Λ

\Lambda(\mathbf x, \boldsymbol \lambda) = f + \sum_k \lambda_k(g_k-c_k).

注意極值的條件和約束如今就都被記錄到一個式子裏了:

\nabla \Lambda = 0 \Leftrightarrow \nabla f = - \sum_k \lambda_k \nabla\ g_k,

\nabla_{\mathbf \lambda} \Lambda = 0 \Leftrightarrow g_k = c_k.

拉格朗日乘數常被用做表達最大增加值。緣由是從式子:

\frac{\partial \Lambda}{\partial {g_k}} = \lambda_k.

中咱們能夠看出λk是當方程在被約束條件下,可以達到的最大增加率。拉格朗日力學就使用到這個原理。

拉格朗日乘數法在Karush-Kuhn-Tucker最優化條件被推廣。

例子

很簡單的例子

求此方程的最大值:

f(x,y) = x2y

同時未知數知足

x2 + y2 = 1

由於只有一個未知數的限制條件,咱們只須要用一個乘數λ.

g(x,y) = x2 + y2 − 1
Φ(x,y,λ) = f(x,y) + λg(x,y) = x2y + λ(x2 + y2 − 1)

將全部Φ方程的偏微分設爲零,獲得一個方程組,最大值是如下方程組的解中的一個:

2xy + 2λx = 0
x2 + 2λy = 0
x2 + y2 − 1 = 0

另外一個例子

求此離散分佈的最大

f(p_1,p_2,\ldots,p_n) = -\sum_{k=1}^n p_k\log_2 p_k.

全部機率的總和是1,所以咱們獲得的約束是gp)= 1即

g(p_1,p_2,\ldots,p_n)=\sum_{k=1}^n p_k=1.

可使用拉格朗日乘數找到最高熵(機率的函數)。對於全部的k 從1到n,要求

\frac{\partial}{\partial p_k}(f+\lambda (g-1))=0,

由此獲得

\frac{\partial}{\partial p_k}\left(-\sum_{k=1}^n p_k \log_2 p_k + \lambda (\sum_{k=1}^n p_k - 1) \right) = 0.

計算出這n個等式的微分,咱們獲得:

-\left(\frac{1}{\ln 2}+\log_2 p_k \right) + \lambda = 0.

這說明pi都相等 (由於它們都只是λ的函數). 解出約束∑k pk = 1,獲得

p_k = \frac{1}{n}.

所以,使用均勻分佈可獲得最大熵的值。

經濟學

約束最優化在經濟學佔有很重要的地位。例如一個消費者的選擇問題能夠被視爲一個求效用方程預算約束下的最大值問題。拉格朗日乘數在經濟學中被解釋爲影子價格,設定在某種約束下,在這裏即收入的邊際效用

拉格朗日乘數就是效用函數在最優解出對收入的偏導數,也就是在最優解處增長一個單位收入帶來的效用增長,或者說在最優解處有效用衡量收入的價值,稱之爲收入的邊際效用。

在企業生產問題中,拉格朗日乘數用來衡量要素投入變更所帶來的收入變更,du/dm=λ,u表示效用函數或生產函數,m表示收入或要素投入。

在具體數學推導中還能夠運用包絡定理的內容。

 

原文轉自:http://www.cnblogs.com/yysblog/archive/2011/10/23/2221987.html

相關文章
相關標籤/搜索