鮑威爾法,嚴格來說是鮑威爾共軛方向法,是麥可J.D.鮑威爾提出的一種求解函式局部最小值的算法。該函式不能是可微分的,並且不會導出衍生函式。
該函式必須是固定數量的實值輸入的實值函式。通過傳入一組初始搜尋向量,通常會傳入N個搜尋向量(譬如{s1,,,,,sn})這是與每個軸對齊的法線。
鮑威爾法是在無約束最佳化共扼方向,從某個初始點出發,求目標函式在這些方向上的極小值點,然後以該點為新的出發點,取復這一過程直到獲得滿意解,其優點是不必計算目標函式的 梯度就可以在有限步內找到極值點。
基本介紹
- 中文名:鮑威爾法
- 外文名:Powell's method
- 學科:數學
- 提出者:鮑威爾
- 作用:求解函式局部最小值
- 相關名詞:布倫特法
簡介,計算過程,布倫特法,定義,內容,
簡介
鮑威爾法,嚴格來說是鮑威爾共軛方向法,是麥可J.D.鮑威爾提出的一種求解函式局部最小值的算法。該函式不能是可微分的,並且不會導出衍生函式。
該函式必須是固定數量的實值輸入的實值函式。通過傳入一組初始搜尋向量,通常會傳入N個搜尋向量(譬如{s1,,,,,sn})這是與每個軸對齊的法線。
鮑威爾法是在無約束最佳化共扼方向,從某個初始點出發,求目標函式在這些方向上的極小值點,然後以該點為新的出發點,取復這一過程直到獲得滿意解,其優點是不必計算目標函式的 梯度就可以在有限步內找到極值點。
計算過程
其中x0是起始點,αi是沿著si的雙向搜尋確定的標量。然後可以將新位置(x1)表示為搜尋向量的線性組合,即
新的位移矢量
成為新的搜尋向量,並被添加到搜尋向量列表的末尾。
同時,對新方向貢獻最大的搜尋向量,即最成功的搜尋向量()搜尋向量列表。新的N個搜尋向量集合是
該算法疊代任意次數,直到沒有明顯的改善。
該方法對於計算連續但複雜函式的局部最小值是有用的,特別是沒有基礎數學定義的函式,因為不需要導數。基本算法簡單;複雜度在沿著搜尋向量的線性搜尋中,這可以通過布倫特法來實現。
布倫特法
定義
布倫特方法(the method of Brent)是在二分法或試位法的基礎上,藉助二次插值方法進行加速,有利用反插值方法來簡化計算而形成的一種方法。
內容
假如知道f(x)的零點x’在一個不太大的區間[x0,x1]內,而且已知f(x)在區間的端點處的函式值
以及f(x)=0在(x0,x1)內的近似解x=x2和f(x2),接下來利用這已知的三個點以及它們所對應的函式值作插值拋物線。與Muller方法不同的是,把x0 ,x1 ,x2 與f(x0), f(x1), f(x2)的對應關係反過來用,相當於用y0 ,y1 ,y2 替代方程組
f(x0)= a(x0-x2) ^2+b(x0-x2)+c **************** (1)
f(x1)= a(x1-x2) ^2+b(x1-x2)+c **************** (2)
f(x2)= a(x2-x2) ^2+b(x2-x2)+c **************** (3)
中的x0 ,x1 ,x2 ,而方程組的常數項f(x0), f(x1), f(x2) 則用這裡的x0 ,x1 ,x2替換。所以對應的插值拋物線的一般形式為
x= a(y-y2) ^2+b(y-y2)+c **************** (4)
x0= a(y0-y2) ^2+b(y0-y2)+c **************** (5)
x1= a(y1-y2) ^2+b(y1-y2)+c **************** (6)
x2= a(y2-y2) ^2+b(y2-y2)+c **************** (7)
由(5)(6)(7)式可以得c=x2,利用Muller方法,可以寫成a,b 的表達式。
在(4)中令y=0,可以得到下一個近似點為
X=x2+(ay2 ^2+by2) **************** (8)
其中ay2 ^2+by2相當於校正項。
Brent方法的下一個規則是,如果得到的x仍然在區間[x0,x1]內,則用x2根據f(x2)
的符號替換x0或x1 ,用x替換x2;如果所得到的x不在區間[x0,x1]內,則暫時放棄反拋物線插值法,繼續用二分法或試位法。
實際上,我們可以利用二分法所得到函式順便採用反插值方法試探一下。