尋找“最好”(1)——函數的極值


  函數在其定 義域的某些局部區域所達到的相對 最大值或相對最小值。當函數在其 定義域的某一點的值大於該點周圍 任何點的值時,稱函數在該點有極 大值; 當函數在其定義域的某一點的值小於該點周圍任何點的值時, 稱函數在該點有極小值。這里的極 大和極小只具有局部意義。因為函 數的一個極值只是它在某一點附近 的小范圍內的極大值或極小值。函 數在其整個定義域內可能有許多極 大值或極小值,而且某個極大值不 一定大於某個極小值。

單變量函數

極值點

  單變量函數的最值問題較為簡單,如果一有個函數f(x),那么它的最值可能是函數的邊界點或駐點。

  假設f(x) = 2x2 + x,求f(x)的最小值。

 

  這個函數中x∈(-∞,+∞),由圖像可知,f(x)沒有邊界點,所以其駐點就是最小值。駐點是導數為0的點,在該點處,函數的變化率為0:

  當x=-1/4時,f(x)有最小值-1/8。

極大還是極小

  當然,極值是個局部概念,是相對於臨近點的最小點,是否是最值就不一定了:

  上圖中ABCDEF幾個點的導數都是0,它們的導數都是0,都是極值點,但只有B是最小點,最大點在無窮遠端。現在問題來了,上圖中B和C都是極值點,如果不作圖的話,怎樣判斷最小值和最大值呢?

  假設我們取到了一個極值點f(x0),對於x0的臨近點x0 + β來說,f(x0 + β)在x0出的泰勒展開(關於泰勒公式可參考《單變量微積分筆記31——冪級數和泰勒級數》):

  由於越展開,項的值越小,所以可以僅展開到二階導數:

 

  我們已經假定f(x0)是極值點(f’(x0) = 0),所以上式可以進一步化簡為:

 

  如果f(x0)是極小值點,那么必然有f(x0 + β) > f(x0),由於β2/2! > 0,所以f’’(x0) > 0;反之,如果f(x0)是極大值點,那么f’’(x0) < 0;如果f’’(x0) = 0,則有可能是一個拐點(多變量中也叫鞍點)。更多關於單變量函數的極值問題,可參考:《單變量微積分筆記7——曲線構圖》《單變量微積分筆記8——最值問題和相關變率

多變量函數的極值

極值點

  與單變量函數類似,極值點只能在函數不可導的點或導數為零的點上取得。

 

  對於一個多元函數f,如果有一個點滿足f所有自變量的偏導都同時為0,那么這個點被稱為f的臨界點,也稱為駐點。

  對於二元函數f(x, y)來說,臨界點(x0, y0)滿足:

 

  需要注意的是,導數為0的點僅僅是潛在的極值點,它也可能是鞍點,此時不是極大值也不是極小值:

極大還是極小

  通常使用二階導數判斷多變量函數的極值。f(x, y)的一個臨界點是(x0, y0),即fx(x0, y0) = 0 && fy(x0, y0) = 0,f的二階導數是fxx,fxy,fyy現在:

 

  該臨界點有如下結論:

  更多關於多變量函數的極值問題,可參考:《多變量微積分筆記3——二元函數的極值

 

海森矩陣

  想要判斷臨界點是極大值還是極小值,最直觀的方式當然是作圖,但是二元函數通常很難作圖,更多元的函數甚至無法作圖,這就需要使用更高級的方法,這將涉及到海森矩陣(Hessian Matrix)。

 海森矩陣是啥?

  泰勒公式也可以推廣到多元函數,二元函數f(x,y)也可以在點(x0, y0)處開展開,展開形式與一元函數類似,只不過導數變成了偏導,所以泰勒的一階展開式是:

  f(x, y)的高階導數可以分為4個子式,以二階導數為例,f(x, y)的二階導數共有包括混合偏導在內的22個函數:

 

  由此得到了泰勒的二階展開式:

  需要注意的是,混合偏導的系數也是混合的:(x–  x0)(y –  y0)。類似地,n階偏導有2n個函數,其系數也相應的變化,在大多數時候只需要二階展開。泰勒展開也可以推廣到更多元函數,f(x1,x2,…xn)在(x1(0),x2(0),…xn(0))處的二階泰勒展開是:

  我們希望把這個過於繁瑣的展開式改寫成較為簡單的矩陣形式:

  現在用矩陣代替原式:

  把中間那個n階方陣用H代替:

  最終,多元函數的二階泰勒展開式可以寫成:

  H(x0)就是傳說中的Hessian Matrix,被翻譯成海森矩陣或黑塞矩陣,它是一個二階導方陣。更多的時候,我們看到的是用萊布尼茨的方法表達海森矩陣:

判斷極值

  假設x0是多元函數f的臨界點,泰勒公式在x0處展開。由於臨界點的一階導數為0,所以f(x)的展開式是:

 

  現在,極值的判定法和單變量函數一致了:

   如果XTHX大於0,意味着f(x0) < f(x),即臨界點小於附近的點,此時臨界點是極小值;如果XTHX小於0,意味着f(x0) > f(x),即臨界點大於附近的點,此時臨界點是極大值;如果XTHX等於0,意味着f(x0) = f(x),臨界點既不是極大值也不是極小值。

 


 

  作者:我是8位的

  出處:http://www.cnblogs.com/bigmonkey

  本文以學習、研究和分享為主,如需轉載,請標明作者和出處,非商業用途! 

  掃描二維碼關注公眾號“我是8位的”

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM