資源描述:
《mtlab 無約束最優(yōu)化問題》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第16章無約束最優(yōu)化問題16.1單變量最小化16.1.1基本數(shù)學原理本節(jié)討論只有一個變量時的最小化問題,即一維搜索問題。該問題在某些情況下可以直接用于求解實際問題,但大多數(shù)情況下它是作為多變量最優(yōu)化方法的基礎,因為進行多變量最優(yōu)化要用到一維搜索算法。該問題的數(shù)學模型為:該問題的搜索過程可用下式表達:求解單變量最優(yōu)化問題的方法有很多種。根據(jù)目標函數(shù)是否需要求導,可以分為兩類,即直接法和間接法。直接法不需要目標函數(shù)的導數(shù),而間接法則需要用到目標函數(shù)的導數(shù)。1.直接法常用的一維直接法主要有消去法和近似法兩種。(1)消去法。該法利用單峰函數(shù)具
2、有的消去性質進行反復迭代,逐漸消去不包含極小點的區(qū)間,縮小搜索區(qū)間,直到搜索區(qū)間縮小到給定的允許精度為止。一種典型的消去法為黃金分割搜索法(GoIdenSectionSearch)。黃金分割搜索法的基本思想是在單峰區(qū)間內適當插入兩點,將區(qū)間分為3段,然后通過比較這兩點函數(shù)值的大小來確定是刪去最左段還是刪去最右段,或是同時刪去左、右兩段保留中間段。重復該過程使區(qū)間無限縮小。插入點的位置放在區(qū)間的黃金分割點及其對稱點上,所以該法稱為黃金分割搜索法。該法的優(yōu)點是算法簡單,效率較高,穩(wěn)定性好。(2)多項式近似法。該法用于目標函數(shù)比較復雜的情況
3、。此時尋找一個與它近似的函數(shù)來代替目標函數(shù),并用近似函數(shù)的極小點作為原函數(shù)極小點的近似。常用的近似函數(shù)為二次和三次多項式。二次內插涉及到形如下式的二次函數(shù)數(shù)據(jù)擬合問題:其中步長極值為然后只要利用3個梯度或函數(shù)方程組就可以確定系數(shù)a和b,從而可以確定a*。得到該值以后,進行搜索區(qū)間的收索。在縮短的新區(qū)間中,重新安排3點求出下一次的近似極小點a*,如此迭代下去,直到滿足終止準則為止。其迭代公式為式中二次插值法的計算速度比黃金分割搜索法的快,但是對于一些強烈扭曲或可能多峰的函數(shù),該法的收斂速度會變得很慢,甚至失敗。2.間接法間接法需要計算目
4、標函數(shù)導數(shù),優(yōu)點是計算速度很快。常見的間接法包括牛頓切線法、對分法、割線法和三次插值多項式近似法等。優(yōu)化工具箱中用得較多的是三次插值法。三次插值的基本思想與二次插值的一致,它是用4個已知點構造一個三次多項式P3(x),用它逼近函數(shù)f(x),以P3(x)的極小點作為數(shù)f(x)的近似極小點。一般地講,三次插值法比二次插值法的收斂速度要快些,但每次迭代需要計算兩個導數(shù)值。三次插值法的迭代公式為如果函數(shù)的導數(shù)容易求得,一般來說首先考慮使用三次插值法,因為它具有較高的效率。對于只需要計算函數(shù)值的方法中,二次插值法是一個很好的方法,它的收斂速度較
5、快,在極小點所在區(qū)間較小時尤其如此。黃金分割法則是一種十分穩(wěn)定的方法,并且計算簡單。由于以上原因,優(yōu)化工具箱中用得較多的方法是二次插值法、三次插值法以及二次、三次混合插值法和黃金分割法。16.1.2有關函數(shù)介紹1.fminbnd函數(shù)利用該函數(shù)找到固定區(qū)間內單變量函數(shù)最小值。調用格式為:lx=fminbnd(fun,x1,x2)返回區(qū)間{x1,x2}上fun參數(shù)描述的標量函數(shù)的最小值x。lx=fminbnd(fun,x1,x2,options)用options參數(shù)指定的優(yōu)化參數(shù)進行最小化。lx=fminbnd(fun,x1,x2,opt
6、ions,p1,p2,…)提供另外的參數(shù)p1,p2等,傳輸給目標函數(shù)fun。如果沒有設置options選項,則令options=[]。l[x,fvaI]=fminbnd(…)返回解x處目標函數(shù)的值。l[x,fvaI,exitfIag]=fminbnd(…)返回exitfIag值描述fminbnd函數(shù)的退出條件。l[x,fvaI,exitfIag,output]=fminbnd(…)返回包含優(yōu)化信息的結構輸出。與fminbnd函數(shù)相關的細節(jié)內容包含在fun,options,exitfIag和output等參數(shù)中,如表16-1所示。表16
7、-1參數(shù)描述表參數(shù)描述fun需要最小化的目標函數(shù)。fun函數(shù)需要輸入標量參數(shù)x,返回x處的目標函數(shù)標量值f。可以將fun函數(shù)指定為命令行,如x=fminbnd(inline(sin(x*x)’x0)同樣,fun參數(shù)可以是一個包含函數(shù)名的字符串。對應的函數(shù)可以是M文件、內部函數(shù)或MEX文件。若fun=’ymfun’,則M文件函數(shù)myfun.m必須有下面的形式functionf=myfun(x)f=…%計算x處的函數(shù)值options優(yōu)化參數(shù)選項。可以用optimset函數(shù)設置或該變這些參數(shù)的值.options參數(shù)有以下幾個選項:DispI
8、ay顯示的水平。選擇‘off’,不顯示輸出;選擇‘iter’,顯示每一步迭代過程的輸出;選擇‘final’,顯示最終結果MaxFunEvaIs函數(shù)評價的最大允許次數(shù)MaxIter最大允許次數(shù)ToIXx處的終止容限exit