1. 程式人生 > >最優化-精確一維搜尋

最優化-精確一維搜尋

試探法

精確一維搜尋就是通過迭代取減少搜尋區間

對於搜尋區間[a, b]

在這個區間中找連個互不相同的試探點p1 p2獲取f(p1), f(p2), 設p1 < p2

若f(p1) < f(p2)   則丟棄區間 [p2, b]

若f(p1) >= f(p2) 則丟棄區間 [a, p1]

這樣就達到了通過一次迭代減小搜尋區間的目的

 

當搜尋區間長度< 給定的誤差e時,終止迭代

不同的試探法,其實不同的是選取p1, p2的方法

 

0.618法

  0.618法就是

  p1 = a * 0.618 + b * (1-0,618)

  p2 = a * (1-0,618) + b * 0.618

 

斐波那契法:

  對與第i次迭代

  p1 = Fi+1 / (Fi + Fi+1) * a + Fi / (Fi + Fi+1) * b

  p2 = Fi / (Fi + Fi+1) * a + Fi+1 / (Fi + Fi+1) * b

 

插值法

  通過已有的條件構造插值函式

  通過求插值函式的極小值點去近似已有函式的極小值點

 

三點二次插值

  已有三個點(p1,f(p1

)),(p2,f(p2)),(p3,f(p3))

  通過拉格朗日插值法獲取插值函式

  求得插值函式的倒數為0獲取插值函式的極小值點(p0,f(p0))

  現在我們有四個點了,通過這種方法得到四個點後,通過試探法的迭代方法去縮小區間即可

  終止準則也同迭代法的終止準則