拉格朗日乘子法——分析推導:https://blog.csdn.net/hao5335156/article/details/82320082
拉格朗日乘子法:https://blog.csdn.net/qq_33829547/article/details/100152556
帶約束條件的極值問題
具體運用
分析推導
拉格朗日乘子法的幾何認識
現在,我們來感性地認識一下,為什么拉格朗日認為相切才能找到最低點(只是感性認識,不添加任何數學推導)。
在橙點這個位置,由於兩條曲線不相切,所以橙線的梯度(上圖橙色箭頭)和藍線的切線(藍色虛線)肯定不垂直。在這種情況下,藍線的兩個切線方向,必定有一個往函數高處走(與梯度的夾角小於 90 度),有一個往函數低處走(與梯度的夾角大於 90 度)。所以,在兩條曲線相交時,我們肯定不在最低點或最高點的位置。
那么,反過來想,如果兩條曲線相切(上圖),那么在切點這個位置,藍線的切線和橙線的梯度是垂直的,這個時候,藍線的切線方向都指向橙線的等高線方向。換句話說,在切點的位置沿藍線移動很小的一步,都相當於在橙線的等高線上移動,這個時候,可以認為函數值已經趨於穩定了。所以,我們認為這個點的值“可能”是最低(高)的(之后解釋為什么是“可能“。另外,個人覺得拉格朗日乘子法最好用反證法從不相切的點入手思考,從相切的點思考總有點別扭)。
既然相切可以幫助我們找到最低點,那么接下來我們要研究的便是如何利用相切來找出最低點。
相切,意味着在切點的位置,兩條曲線的等高線方向是平行的,考慮到梯度與等高線垂直, 我們可以用兩條曲線的梯度平行來求出切點位置(最低點)。
因此,根據梯度平行,我們能夠得到一個方程組:,其中 表示一個標量,因為我們雖然能保證兩個梯度平行,但不能保證它們的長度一樣(或者方向相同)。在高維函數中, 表示的是函數在各個自變量方向的偏導。對於上面的例子,我們可以求出函數 和 的偏導,再根據方程組:
求出切點。由於總共有三個方程和三個未知數,一般都能找到解(也可能存在多個解或無解的情況,之后會簡單討論)。
在實際求解時,人們會使用一個統一的拉格朗日函數:,令這個函數偏導為 0,我們可以得到:
結果和上面的方程組是一樣的。
多個約束條件
多個約束條件和單個約束條件是一樣的。如果是多個約束條件,那么這些約束函數肯定是相交的,否則無解。多個約束條件一般會把變量約束到一個更低維的空間,例如,下圖中,紫色球面和黃色平面將變量約束到黑色線的位置。
求解過程和單個約束條件是一樣的,我們定義一個新的拉格朗日函數:
然后同樣令這個函數的導數 ,最后可以得到 個方程以及 個未知數,一般也能求解出來。
總結
根據拉格朗日乘子法的定義,這是一種尋找極值的策略,換句話說,該方法並不能保證找到的一定是最低點或者最高點。事實上,它只是一種尋找極值點的過程,而且,拉格朗日乘子法找到的切點可能不只一個(也就是上面的方程組可能找到多個解),例如下圖:
圖中相切的點有兩個,而紅點的函數值明顯比黑點小。事實上,要想判斷找到的點是極低點還是極高點,我們需要將切點代入原函數再進行判斷。