最優化演算法 黃金分割搜尋

2021-08-28 10:44:57 字數 825 閱讀 4036

參考《 edwin》最優化導論第四版,7.2章節,演算法採用go語言實現

/*****************************************

* filename : golden_section_search.go

* author : fredric

* date : 2017.09.01

* note : **分割演算法

* history :

*****************************************/

package search

import(

"fmt"

)const(

golden_section_value = 0.382)/*

* **分割法的用途在於求救一元函式的極值,前提要求該函式在區間內有唯一極值,即單峰

* 取作用域[a0,b0]

* 每次迭代取[a1, b1],其中a1 - a0 = b0 - b1 = p*(b0 - a0)

* 通過判斷如果

* : f(b1) > f(a1) ---> 則極值在區間a0 ~ b1之間

* : f(b1) < f(a1) ---> 則極值在區間a1 ~ b0之間

* 迭代繼續,直至滿足迴圈條件

* 通過計算可得p = 0.382

*/func dogoldensectionsearch()else

}fmt.printf("a1 = %f, b1 = %f count=%d", a1, b1, count)

}

最優化演算法 黃金分割搜尋

參考 edwin 最優化導論第四版,7.2章節,演算法採用go語言實現 filename golden section search.go author fredric date 2017.09.01 note 分割演算法 history package search import fmt cons...

黃金分割查詢

在二分查詢中,我們是取mid等於left和right的中間值,即用等分的方法進行查詢。那為什麼一定要等分吶?能不能進行 分割 也就是mid left 0.618 right left 當然mid要取整數。如果這樣查詢,時間複雜性是多少?也許你還可以程式設計做個試驗,比較一下二分法和 分割 法的執行效...

一維搜尋 黃金分割法

一 分割法的基本思想與原理 分割法適用於 a.b 區間上的任何單峰函式求極小值問題,對函式除要求 單峰 外不做其他要求,甚至可以不連續。分割法是建立在區間消去法原理基礎上的試探方法,即在搜尋區間 a,b 內適當插入兩點a1,a2,並計算其函式值。a1,a2將區間分成三段,應用函式的單峰性質,通過函式...