拉格朗日乘數

在數學中的最優化問題中，拉格朗日乘數法（Method of Lagrange multiplier，以數學家約瑟夫·拉格朗日命名）是一種尋找多元函數在其變量受到一個或多個條件的約束時的局部極值的方法。

## 方法說明

對一個有 $n$ 個變量與 $k$ 個約束條件的最優化問題，拉格朗日乘數法會將其轉換成一個 $n+k$ 個變量的方程組，稱作拉格朗日方程（Lagrange function），這個方程組的解將包括所有最優化問題的解。拉格朗日乘數法將會引入一個或一組新的未知數，即拉格朗日乘數（Lagrange multiplier），又稱拉格朗日乘子，或拉氏乘子，它們是在轉換後的方程，即約束方程中作為梯度的線性組合中各個向量的係數。

比如，求 可微函數$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定義為在Rn上的方程，約束為gk(x)= 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 {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$方程的偏微分設為零，得到一個方程組，局部極小值可能是以下方程組的解中的一個：

$$2 x y + 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$。

這說明pi都相等（因為它們都只是λ的函數）。解出約束∑k pk = 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)