多變數微積分·拉格朗日乘數

拉格朗日乘數

尋找限制曲線g = c上f的最大值或最小值:在這樣的點,只要∇g ≠ 0,∇f就與∇g平行,滿足∇f = λ∇g,而λ是最適值隨c改變的變化率。沿曲線移動P,觀察∇f沿曲線的分量。

這個視覺化中的拉格朗日乘數

問題是:點不能自由移動,必須留在限制條件g(x,y)=cg(x, y) = c所指定的曲線上,這時函數f(x,y)f(x, y)的最大值或最小值在哪裡?拉格朗日乘數法告訴我們該往哪裡找。假設ff與gg在曲線上某點P附近有連續的一階偏導數,ff限制在曲線上時於P取得局部最大值或局部最小值,且∇g(P)≠0\nabla g(P) \neq 0。那麼存在一個數λ\lambda,稱為拉格朗日乘數,使得

求候選點的方程式
∇f(x,y)=λ ∇g(x,y),g(x,y)=c\nabla f(x, y) = \lambda\, \nabla g(x, y), \qquad g(x, y) = c

這是關於x、y與λ\lambda的三個方程式。它們的解是候選點,還不是答案:每一個都要確認,而∇g=0\nabla g = 0的點必須另外查看。

地圖顯示ff的等高線、以粗線畫出的限制曲線,以及曲線上的點P。P處的藍色箭頭是∇f\nabla f,空心箭頭表示∇g\nabla g的方向;∇f\nabla f分成沿曲線的黃色分量,以及垂直於曲線的虛線分量。地圖下方的剖面,以沿曲線走過的距離為橫軸,畫出ff。

為什麼可行?沿曲線移動時,gg不變,所以曲線的單位切向量TT垂直於∇g\nabla g。以單位速率沿曲線行走,ff的變化率為∇f⋅T\nabla f\cdot T,也就是剖面在P處的斜率;黃色箭頭則是(∇f⋅T) T(\nabla f\cdot T)\,T。在滿足∇g≠0\nabla g \neq 0的剖面最高或最低點,斜率為0,因此∇f\nabla f沒有沿曲線的分量。在平面內,沒有沿曲線分量的向量必為∇g\nabla g的倍數,所以∇f=λ∇g\nabla f = \lambda\nabla g;若∇f=0\nabla f = 0,則λ=0\lambda = 0。只要黃色箭頭不是零向量,沿它的方向走就還能讓ff增加,所以P不可能是那裡的極大點或極小點。

若還滿足∇f(P)≠0\nabla f(P) \neq 0,通過P的ff等高線就垂直於∇f\nabla f,因此與限制曲線有相同切線。在限制條件下的最大或最小點,限制曲線會接觸等高線,而不是穿越它。

λ\lambda本身也有意義。把曲線g=cg = c上的最適值寫成f∗(c)f^*(c)。若取得這個值的點隨cc的變化而光滑移動,那麼λ\lambda就是最適值的變化率:

乘數作為變化率
λ=df∗dc\lambda = \frac{d f^*}{d c}

在圓x2+y2=cx^2 + y^2 = c上,xyxy的最大值為c/2c/2,兩個最大值點都滿足λ=1/2\lambda = 1/2。λ視窗以cc為橫軸,畫出斜率為此值的f∗f^*。變化率取決於限制條件的寫法。若以C=2cC = 2c改寫成2g=C2g = C,同一條曲線的乘數就會減半,因為現在量的是C每增加一單位的變化。寫成2g會顯示這個差異。

兩條曲線展示了這個方法的界限。在y−x3=cy - x^3 = c上,函數f=yf = y在(0,c)(0, c)處有平行的梯度,但沿曲線的f=x3+cf = x^3 + c只是在那裡斜率變成0,仍繼續上升。梯度平行並不足夠。在y2−x3=0y^2 - x^3 = 0上,f=xf = x的最小值出現在尖點(0,0)(0, 0),那裡∇g=(0,0)\nabla g = (0, 0),而∇f=λ∇g\nabla f = \lambda\nabla g無解。這個方法會漏掉它,所以這類點必須另外逐一確認。

候選點是極大、極小,還是兩者皆非,可以從剖面看出。在曲線上的局部最大點,剖面先升後降;在局部最小點,先降後升;在三次曲線的候選點,則持續上升。

值得注意

  • λ\lambda的正負表示∇f\nabla f與∇g\nabla g同向或反向。在圓的例子中,最大值處為正,最小值處為負。
  • 接觸等高線,不代表會留在它的同一側。三次曲線的候選點接觸等高線,卻仍穿越到另一側。

相關概念