1. 程式人生 > >Why does the method of Lagrange multipliers work for optimization in multivariable calculus?

Why does the method of Lagrange multipliers work for optimization in multivariable calculus?

今天看到拉格朗日乘子,kkt演算法的時候,突然想起來,為什麼拉格朗日演算法可以呢?直觀上怎麼理解呢?

發現還是quora上面的答案比較清晰直觀。

拉格朗日演算法其實相當於首先有了一個函式f的空間分佈,但是有了空間分佈還不夠,還需要有約束條件g。約束條件g其實決定了,究竟能在f空間的什麼位置能夠取值。

假設約束是一條線,那麼這條線上就意味著g這個條件滿足了,但是同時還需要滿足另一個條件,就是f究竟是不是在這個g的約束下最大的,這就帶來一個問題:什麼時候是最大的。

對於函式g來說,每一個點都有一個梯度,決定著變化最大的方向,但是這和g的曲線剛好是垂直的,因為g是個常數,所以從來就不改變,自然在梯度方向沒有任何的改變。

在這個條件下,f函式就寬鬆多了,每一個點都有自己的梯度,但是讓我們考慮一下函式f在約束g上的那些點,如果g的梯度和當前f的梯度不一樣,那麼說明g的梯度在f的梯度上面有一個分量,依據這個分量進行移動,就可以繼續增加f的值,一直到一種情況就是f的梯度和g的梯度相同。在這種情況中,不論函式f在g這個約束集合上的當前這個點的臨域中如何移動,都能夠實現我們的目標,也就是達到了一個區域性最優點(雖然說不一定是穩定的吧,但是肯定滿足條件)

所以其實在這樣的一個條件下,f函式在g的約束下的點集當然有很多,但是找到最大的點就需要進一步的約束,就可以通過偏導方向相同來確定。