【轉載】極大值與等高線

 

https://blog.csdn.net/quicmous/article/details/52527507函數

最優化問題

  數學規劃問題,或着說最優化問題,通常可寫成下面的形式:優化

 
maxs.t.f(x)g(x)=c(1)(1)
maxf(x)s.t.g(x)=c

 

先看看二維的問題

  爲了簡單起見,咱們考慮二維狀況,假設x=(x1,x2)x=(x1,x2) ,則最優化問題變成以下形式:
ui

 
maxs.t.f(x1,x2)g(x1,x2)=c(2)(2)maxf(x1,x2)s.t.g(x1,x2)=c


這裏寫圖片描述

 

  幾何意義很是明顯,要求在曲線 g(x1,x2)=cg(x1,x2)=c 上找一點,使得函數 f(x1,x2)f(x1,x2) 取得最大值。由於f(x1,x2)f(x1,x2) 是一個曲面,形象一點說,問題就是在山上尋找一條山路的最高點。atom

聊一聊等高線

  求解最優規劃問題的關鍵在於曲面的等高線。咱們停下腳步,看看等高線有趣的性質。對於曲面f(x1,x2)f(x1,x2) 來講,其等高線能夠表示成下面的形式,
spa

 
f(x1,x2)=c(3)(3)f(x1,x2)=c


  兩邊進行微分,獲得,
.net

 
fx1dx1+fx2dx2=0(4)(4)∂f∂x1dx1+∂f∂x2dx2=0


  能夠看出,dx1,dx2dx1,dx2 之間是有關係的。實際上,微分dx=(dx1,dx2)dx=(dx1,dx2) 與曲線f(x1,x2)=cf(x1,x2)=c 切線方向一致。若是以爲很差理解的話,能夠吧x1,x2x1,x2 換成x,yx,y ,問題就變成一元函數求導,咱們知道dy/dxdy/dx 表示曲線的切線斜率,固然(dx,dy)(dx,dy) 就與曲線的切線方向相同。因而,咱們獲得曲面等高線的切線向量,
orm

 
dx=(dx1,dx2)(5)(5)dx=(dx1,dx2)


  咱們知道,曲面f(x1,x2)f(x1,x2) 的梯度可表示爲,
xml

 
f(x1,x2)=(fx1,fx2)(6)(6)∇f(x1,x2)=(∂f∂x1,∂f∂x2)


  因而(4)式能夠表示爲,
blog

 
fdx=0(7)(7)∇f⋅dx=0


  能夠看出,曲面上任意一點,其等高線的切線方向與其梯度方向相互垂直
圖片

 

約束條件本質上是曲面的等高線

  約束條件g(x1,x2)=cg(x1,x2)=c ,實際上就是曲面g(x1,x2)g(x1,x2) 的一條等高線。根據前面的結論,它的切線方向與梯度方向垂直。

目標函數的等高線

  二元函數的最優規劃問題,和尋找山間小路上的最高點的思路是同樣。到達山間小路最高點位置後,不管沿山間小路哪一個方向走,都是下坡,都會走向較低的等高線,所以,在小路的最高點位置,小路必須與山坡的等高線相切。
  一樣,咱們沿着曲線 g(x1,x2)=cg(x1,x2)=c 到達最曲面f(x1,x2)f(x1,x2) 最高點,這條小路必定與曲面 f(x1,x2)f(x1,x2) 在此位置的等高線相切,也就是曲線 g(x1,x2)=cg(x1,x2)=c 與曲線 f(x1,x2)=cf(x1,x2)=c′ 在最大值位置相切。或者從梯度的角度來看,曲面f(x1,x2),g(x1,x2)f(x1,x2),g(x1,x2) 在最大值位置梯度方向是相同的。
  換句話講,若是規劃問題在(x1,x2)(x1,x2) 處取得最大值,必定存在常數 λλ 使得,

 
f(x1,x2)=λg(x1,x2)(8)(8)∇f(x1,x2)=λ∇g(x1,x2)


  看到這裏怎麼有些懵圈呢?最優解和常數 cc 怎麼就不要緊了呢?不是說好的 g(x1,x2)=cg(x1,x2)=c 嗎?實際上, λλ 是待定參數, cc 的值能夠用來肯定 λλ 的值。下面咱們牛刀小試,看一個具體的例子。

 

一個具體例子

  例1 求下面規劃,

 
maxs.t.10(x11)2+(x22)22x1+x2=1(9)(9)max10−(x1−1)2+(x2−2)2s.t.2x1+x2=1


  解:

 
f(x1,x2)g(x1,x2)==10(x11)2+(x22)22x1+x2f(x1,x2)=10−(x1−1)2+(x2−2)2g(x1,x2)=2x1+x2


  因爲,

 
f(x1,x2)=λg(x1,x2)∇f(x1,x2)=λ∇g(x1,x2)


  因而,

 
(2x1+2,2x2+4)=λ(2,1)(−2x1+2,−2x2+4)=λ(2,1)


  即,

 
{2x1+22x2+4==2λλ{−2x1+2=2λ−2x2+4=λ


  因此,

 
x1=λ+1,x2=12λ+2(10)(10)x1=−λ+1,x2=−12λ+2


  代入(9),

 
2x1+x2=12x1+x2=1


  即,

 
λ=65λ=65


  代入(10),得,

 
x1=15,x2=75x1=−15,x2=75


  此時,

 
f(x1,x2)===10(x11)2+(x22)210(151)2+(752)2......f(x1,x2)=10−(x1−1)2+(x2−2)2=10−(−15−1)2+(75−2)2=.
相關文章
相關標籤/搜索