拉格朗日乘數法

**拉格朗日乘數法**（英語：Lagrange multiplier，以數學家約瑟夫・拉格朗日命名），在數學中的最佳化問題中，是一種尋找多元函數在其變數受到一個或多個條件的限制時的局部極值的方法。這種方法可以將一個有 _n_ 個變數與 _k_ 個限制條件的最佳化問題轉換為一個解有 _n_ + _k_ 個變數的方程式組的解的問題。這種方法中引入了一個或一組新的未知數，即**拉格朗日乘數**，又稱**拉格朗日乘子**，或**拉氏乘子**，它們是在轉換後的方程式，即限制方程式中作為梯度（gradient）的線性組合中各個向量的係數。

比如，要求 $f(x,y)\,$ 在 $g(x,y)=0\,$ 時的局部極值時，我們可以引入新變數拉格朗日乘數 $\lambda $ ，這時我們只需要求下列拉格朗日函數的局部極值：

　
: ${\mathcal {L}}(x,y,\lambda )=f(x,y)-\lambda \cdot g(x,y)$

更一般地，對含 _n_ 個變數和 _k_ 個限制的情況，有：

　
: ${\mathcal {L}}\left(x_{1},\ldots ,x_{n},\lambda _{1},\ldots ,\lambda _{k}\right)=f\left(x_{1},\ldots ,x_{n}\right)-\sum \limits _{i=1}^{k}{\lambda _{i}g_{i}\left(x_{1},\ldots ,x_{n}\right)},$

拉格朗日乘數法所得的臨界點會包含原問題的所有臨界點，但並不保證每個拉格朗日乘數法所得的臨界點都是原問題的臨界點。拉格朗日乘數法的正確性的證明牽涉到偏微分，全微分或連鎖律。

## 介紹

微積分中最常見的問題之一是求一個函數的極大極小值（極值）。但是很多時候找到極值函數的顯式表達是很困難的，特別是當函數有先決條件或限制時。拉格朗日乘數則提供了一個非常便利方法來解決這類問題，而避開顯式地引入限制和求解外部變數。

先看一個三維的例子：假設有函數： $f(x,y)$ ，要求其極值（最大值 / 最小值），且滿足條件

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

_c_ 為常數。對不同 $d_{n}$ 的值，不難想像出

　
: $f\left(x,y\right)=d_{n}$

的等高線。而方程式 $g$ 的可行集所構成的線正好是 $g(x,y)=c$ 。想像我們沿著 $g=c$ 的可行集走；因為大部分情況下 $f$ 的等高線和 $g$ 的可行集線不會重合，但在有解的情況下，這兩條線會相交。想像此時我們移動 $g=c$ 上的點，因為 $f$ 是連續的方程式，我們因此能走到 $f\left(x,y\right)=d_{n}$ 更高或更低的等高線上，也就是說 $d_{n}$ 可以變大或變小。只有當 $g(x,y)=c$ 和 $f\left(x,y\right)=d_{n}$ 相切，也就是說，此時，我們正同時沿著 $g(x,y)=c$ 和 $f\left(x,y\right)=d_{n}$ 走。這種情況下，會出現極值或鞍點。

氣象圖中就很常出現這樣的例子，當溫度和氣壓兩列等高線同時出現的時候，切點就意味著限制極值的存在。

用向量的形式來表達的話，我們說相切的性質在此意味著 $f$ 和 $g$ 的切線在某點上平行，同時也意味著兩者的梯度向量有如下關係（引入一個未知純量 $\lambda $ ）：

　
: $\nabla f\left(x,y\right)=-\lambda \nabla \left(g\left(x,y\right)-c\right)$

即：

　
: $\nabla {\Big [}f\left(x,y\right)+\lambda \left(g\left(x,y\right)-c\right){\Big ]}={\boldsymbol {0}}$ .

一旦求出 $\lambda $ 的值，將其套入下式，易求在無限制條件下的極值和對應的極值點。

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

新方程式 $F(x,y,\lambda )$ 在達到極值時與 $f(x,y)$ 相等。因為 $F(x,y,\lambda )$ 達到極值時 $\nabla F(x,y,\lambda )=0$ ，而 ${\frac {\partial F}{\partial \lambda }}=g\left(x,y\right)-c$ ，也就是說 $g(x,y)-c$ 等於零。

## 證明

設函數 $f(x,y)$ 在 $A$ 點處有極值 $\kappa $ ，且在 $A$ 點的鄰域內連續。則在 $A$ 點處有

　
: $f\left(x,y\right)=\kappa $

另有一常值函數

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

兩函數在 $A$ 點處的全微分為

　
: $\mathrm {d} f={\frac {\partial {f}}{\partial {x}}}\mathrm {d} x+{\frac {\partial {f}}{\partial {y}}}\mathrm {d} y=0$

　
: $\mathrm {d} g={\frac {\partial {g}}{\partial {x}}}\mathrm {d} x+{\frac {\partial {g}}{\partial {y}}}\mathrm {d} y=0$

當中的等式右方等於零是由於極值會發生在兩者函數斜率完全相同且 $f\left(x,y\right)$ 在區段內有極值的時候

由於 $\mathrm {d} x$ 和 $\mathrm {d} y$ 是任取的無窮小量，故該線性方程組的係數成比例，有

　
: ${\dfrac {\dfrac {\partial {f}}{\partial {x}}}{\dfrac {\partial {g}}{\partial {x}}}}={\dfrac {\dfrac {\partial {f}}{\partial {y}}}{\dfrac {\partial {g}}{\partial {y}}}}=-\lambda $

即

　
: ${\frac {\partial {f}}{\partial {x}}}+\lambda \cdot {\frac {\partial {g}}{\partial {x}}}=0$

　
: ${\frac {\partial {f}}{\partial {y}}}+\lambda \cdot {\frac {\partial {g}}{\partial {y}}}=0$

將上二式分別乘以 $\mathrm {d} x$ 和 $\mathrm {d} y$ ，再相加並積分，得到一新函數

　
: ${\mathcal {L}}(x,y,\lambda )=f(x,y)+\lambda \cdot g(x,y)$

那麼，求原函數極值的問題就轉化為求該函數極值的問題。

類似地，這種求極值的方法也可以推廣到多維函數 $f\left(x_{1},\ldots ,x_{n}\right)$ 。

## 拉格朗日乘數的運用方法

如 _f_ 定義為在 **R**n 上的方程式，限制為 _gk_(**x**)= _ck_（或將限制左移得到 _g_k(**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 {c_{k}}}}=\lambda _{k}$ 。

中我們可以看出 _λ_k 是當方程式在被限制條件下，能夠達到的最大增長率。拉格朗日力學就使用到這個原理。

拉格朗日乘數法在卡羅需－庫恩－塔克條件被推廣。

## 例子

* 很簡單的例子

求此方程式的最小值：

　
: $f(x,y)=x^{2}y$

同時未知數滿足

　
: $x^{2}+y^{2}=1$

因為只有一個未知數的限制條件，我們只需要用一個乘數 $\lambda $ .

　
: $g(x,y)=x^{2}+y^{2}-1$

　
: $\Phi (x,y,\lambda )=f(x,y)+\lambda g(x,y)=x^{2}y+\lambda (x^{2}+y^{2}-1)$

將所有 $\Phi $ 方程式的偏微分設為零，得到一個方程組，最小值是以下方程組的解中的一個：

　
: $2xy+2\lambda x=0$

　
: $x^{2}+2\lambda y=0$

　
: $x^{2}+y^{2}-1=0$

* 另一個例子

求此離散分布的最大熵：

　
: $f(p_{1},p_{2},\ldots ,p_{n})=-\sum _{k=1}^{n}p_{k}\log _{2}p_{k}$ 。

所有機率的總和是 1，因此我們得到的限制是 _g_(**p**)= 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$ 。

這說明 _p_i 都相等（因為它們都只是 λ 的函數）。解出限制∑k _p_k = 1，得到

　
: $p_{k}={\frac {1}{n}}$ 。

因此，使用均勻分布可得到最大熵的值。

## 經濟學

限制最佳化在經濟學占有很重要的地位。例如一個消費者的選擇問題可以被視為一個求效用方程式在預算限制下的最大值問題。拉格朗日乘數在經濟學中被解釋為影子價格，設定在某種限制下，在這裡即收入的邊際效用。

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

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

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

## 參考

* 卡羅需－庫恩－塔克條件：拉格朗日乘數的推廣。
* 拉格朗日方程式
* 哈密頓原理
* 作用量

## 對外部連結接

參考拉格朗日原作或方法的命名：

* Earliest known uses of some of the words of mathematics: L

更深入的介紹和互動 applet：

* Applet
* Tutorial and applet
* Conceptual introduction （頁面存檔備份，存於網際網路檔案館） (概念介紹和對於拉格朗日乘數方法在變分法以及物理中的運用)
* Lagrange Multipliers without Permanent Scarring （頁面存檔備份，存於網際網路檔案館） (tutorial by Dan Klein)