2016yjs專題函數極值及優化問題_第1頁
2016yjs專題函數極值及優化問題_第2頁
2016yjs專題函數極值及優化問題_第3頁
2016yjs專題函數極值及優化問題_第4頁
2016yjs專題函數極值及優化問題_第5頁
免費預覽已結束,剩余19頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

函數極值的數值求43210 x

f(x)

f(

f(x)0→x0

fxx0

fxx0教科書極值確定法應用時遇到兩大:

fx)0只有處理極小值的指令。小

的極大值問題等價 的[x,fval,exitflag]=[x,fval,exitflag]=可用于求解任意無約束優化問題的最求一元函數在區間(x1,x2)中極小值單純形法求多元函數極值梯度下降法是一個最優化算法,通常也稱為最速下降法。最速下降法是求解無約束優化問題最簡單和最古老的方法之一,雖然現在已經不具有實用性,但是許多有效算法都是以它為基礎進行改進和修正而得到的。最速下降法是用負梯度方向為搜索方向的,最速下降法越接近目標值,步長越小,前進越慢。知識:單純形法單純形法是求解線性規劃問題的通用方法,由數學家G.B.于nRn〖說明第一輸fun是待解目標函數,該目標函數可以采用字符串、內聯對象、函數和M函數文件的函數句柄等不同形式表達。fminsearch被優化目標函數fun中的多元自變量應采用單一變量名的向量形式表達(見例4.1-8)。fminbnd的第二、三個輸入量x1,x2分別表示被研究區間的左、右邊界。輸出量x,fval分別是極值點和相應的目標函數極值。fminsearch的第二個輸入宗量x0可以是一個搜索起點的向量或一組搜索起點的矩陣。當采用單個搜索起點時,輸出量x也是一個單點(向量)。當采用多個搜索起點(矩陣)時,輸出量x就給出多個索到的候選極值點按目標函數值遞增次序排列。極值點x(:,1)對應的目標函數極小值由fval給出。輸入量options用于配置優化參數。在沒有特殊需求情況下,一般輸出量exitflag若給出大于0的數,說明成功搜索到極值點輸出量output給出具體的優化算法和迭代次數注意:7.x版“泛函”指令不能通過輸入量傳遞優化函數中的參數 1:求函數y=x^2+4*x+5的最小值(已知最優x*=2,最小值1)f1=@(x)x^2+4*x+5[x,fVal,exitflag]=fminunc(f1,2)f1=警告Gradientmustbeprovidedfortrust-regionalgorithm;usingline-searchalgorithminstead.[>InfminuncatLocalminimumOptimizationcompletedbecausethesizeofthegradientislessthanthedefaultvalueofthefunctiontolerance.xfVal1exitflag=例2:多變量:求f(x,y)=e2x(x+y2+2y)的最f2=@(x)exp(2*x(1))*(x(1)+x(2)^2+2*x(2));[x,fVal,exitflag]=fminunc(f2,[2,1])警告Gradientmustbeprovidedfortrust-regionalgorithm;usingline-searchalgorithminstead.[>InfminuncatLocalminimumOptimizationcompletedbecausethesizeofthegradientislessthanthedefaultvalueofthefunctiontolerance.x fValexitflag=【例4.1-7【例4.1-7】已區間,求函數的最小值本例演示:符號計算求極值的局限性;fminbnd求極小值的局限性;求最小值時,0 用“導數為零”法求極值symsgrid yd_xs0=vpa(subs(yd,x,xs0),6)% xs0 yd_xs0=y_xs0exp(-x/10)sin(x)2-(sin(x)(x+exp(-x/10)sin(x)2-(sin(x)(x+0 x %xc0fc0exitflag=outputiterations:funcCount:algorithm'goldensectionsearchparabolicinterpolation'message:'優化已終止:當前的x滿足使用1.000000e-04的OPTIONS.TolX的終'(3)據圖形觀察,重設fminbnd的搜索xx=[-23,-20,-18]; fork=1:2%iffw<fcfprintf(%6.5fx=%6.5f函數最小值-3.34765發生在x=-19.607214.1-8】

的極小值點。它是著名的Rosenbrock's"Banana"測試函數,它的理論極小值。雙雙變Rosenbrock在數學優化中,Rosenbrock函數凸函數,由HowardHarryosenbrok在1960年提出[1]。也稱為Rosenbrock山谷或Rosenbrock香蕉函數,也簡稱為香蕉函數。RosenbrockRosenbrock 知:Rosenbrock函數函數本例演示:二元函數極值點的求取;多搜索起點symsxz=100*(y-x^2)^2+(1-z(x-1)^2+100*(-x^2+Rosenbrock函數的三維圖形,Rosenbrock函數的等高線圖,holdonplot(-1.2,2,'o332start10012(1)本例采用函數表示測試函數如ff=@(x)(100*(x(2)-x(1)^2)^2+(1-ff注意:在編寫目標函數時,自變量不是采用xy表示,而是采用一個名為x的用單純形法求極小值x0=[-5,-2,2,5;-5,-2,2,5];%4%sx給出一組使優化函數值非減的局部極小sxsfval[x,fVal,exitflag]=警告Gradientmustbeprovidedfortrust-regionalgorithm;usingline-searchalgorithminstead.[>InfminuncatLocalminimumOptimizationcompletedbecausethesizeofthegradientislessthanthedefaultvalueofthefunctiontolerance.xfValexitflag1檢查目標函數formatshorte [x,fval,exitflag,output]=fminsearch(f,[-1.2fminunc[x,fval,exitflag,output]=fminunc(f,[-1.2粒子群算法的實y=1-cos(3*x)*exp(-x)的在[0,4]當x=0.9350-0.9450,達到最大值y=1.3706。為了得到該函數的最大值,直到最后在y=1.3706這個點停止自己的更新。這個過程與粒子群算法這兩個點就是粒子群算法中的粒子該函數的最大值就是鳥群中的食第一次更新位第二次更新位21次更最后的結果(30次迭代最后所有的點都集中在最大值的地方求下列函數最小xk1

x2x

functionF=fitness(x)for vkvk1wvkcrandk(Pbestkxk)crandk(Gbestkxk 1 22 xk1v 給定初始化條 c1學習因子c2學習因子w慣性權M最大迭代次%D搜索空間維數(未知數個數%%N初始化群 數%------初始化種群 (可以在這里限定位置和速度的范圍)---formatlong;fori=1:N for x(i,j)=randn;隨機初始化位 v(i,j)=randn;隨機初始化速 %------先計算各個粒子的適應度,并初始化PiPgfor fori=1:(N-1) iffitness(x(i,:))< %------進入主要循環,按照公式依次迭代,直到滿足精度要求for for %更新速度、位 x(i,:))+c2*rand*(pg- iffit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論