優(yōu)化工具箱函數(shù)簡介_第1頁
優(yōu)化工具箱函數(shù)簡介_第2頁
優(yōu)化工具箱函數(shù)簡介_第3頁
優(yōu)化工具箱函數(shù)簡介_第4頁
優(yōu)化工具箱函數(shù)簡介_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Matlab優(yōu)化工具箱函數(shù)簡介一維搜索問題 fminbnd無約束極小值 fminunc, fminsearch約束極小值 fmincon線性規(guī)劃 linprog二次規(guī)劃 quadprog1 一維搜索問題優(yōu)化工具箱函數(shù) fminbnd對應(yīng)問題: min f(x) x1<x<x2調(diào)用格式 x= fminbnd(fun,x1,x2):得到函數(shù)fun在區(qū)間x1,x2內(nèi)取得最小值的x.x,f= fminbnd(fun,x1,x2): 得到最優(yōu)點x和最優(yōu)目標(biāo)函數(shù)值f。例:求minf(x)= -(3-2*x)2*x方法1:x=fminbnd('-(3-2*x)2*x',0,1.5

2、)方法2:f=inline('-(3-2*x)2*x');x=fminbnd(f,0,1.5)方法3: x = fminbnd(x) -(3-2*x)2*x,0,1.5)方法4:先形成一個函數(shù)文件function f=fun(x)f=-(3-2*x)2*x;然后運行下兩句中的任一句x=fminbnd('fun',0,1.5)x=fminbnd(fun,0,1.5)若需輸出最優(yōu)點處的目標(biāo)函數(shù)值f,則將上述語句的左邊改為x,f,如:x,f=fminbnd(' -(3-2*x)2*x',0,1.5)其它用法:X,fval,exitflag,output

3、= fminbnd(fun,x1,x2)其中:fun為目標(biāo)函數(shù),x1,x2為變量的邊界約束,即x1xx2,X為返回的滿足fun取得最小值的x的值,而fval則為此時的目標(biāo)函數(shù)值。exitflag>0表示計算收斂,exitflag=0表示超過了最大的迭代次數(shù),exitflag<0表示計算不收斂,返回值output有3個分量,其中iterations是優(yōu)化過程中迭代次數(shù),funcCount是代入函數(shù)值的次數(shù),algorithm是優(yōu)化所采用的算法。例:clearfun='(x5+x3+x2-1)/(exp(x2)+sin(-x)'ezplot(fun,-2,2)X,fva

4、l,exitflag,output= fminbnd(fun,-2,2)結(jié)果為:X = 0.2176fval =-1.1312exitflag = 1output = iterations: 13 funcCount: 13 algorithm: 'golden section search, parabolic interpolation'2 無約束極小值優(yōu)化工具箱函數(shù) fminunc, fminsearch以上兩個函數(shù)均可求解無約束多元函數(shù)的最小值。調(diào)用格式:x=fminunc(fun,X0)x=fminsearch(fun,X0) -以X0為初始迭代點,求使函數(shù)fun取得

5、最小值的xx,fval= fminunc(fun,X0)x,fval= fminsearch(fun,X0)-以X0為初始迭代點,求得最優(yōu)點x和最優(yōu)值fval。fminsearch()采用單純形法進行計算,適合處理階次低但是間斷點多的函數(shù);fminunc()對于高階連續(xù)的函數(shù)比較有效,該函數(shù)可以輸出海塞矩陣。例1:求X0=1,1 x,fval=fminunc('3*x(1)2+2*x(1)*x(2)+x(2)2',X0)x,fval=fminsearch('3*x(1)2+2*x(1)*x(2)+x(2)2',1,1')例2:clearfun='

6、exp(x(1)*(2*x(1)2+3*x(2)2+2*x(1)*x(2)+3*x(2)+1)'x0=0,0;options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8);x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options)3 約束極小值優(yōu)化工具箱函數(shù) fmincon對應(yīng)數(shù)學(xué)模型:min F(X) subject to: A*X

7、<= B, Aeq*X = Beq (linear constraints) C(X) <= 0, Ceq(X) = 0 (nonlinear constraints) LB <= X <= UB 調(diào)用格式:x=fmincon(fun,x0,A,b):給定初值x0,求解fun函數(shù)的最極值點x.。約束條件為線性約束A*x<=b。x0可以是標(biāo)量、矢量或矩陣X=fmincon(FUN,X0,A,B,Aeq,Beq) 同前一調(diào)用格式相比,約束條件中增加了等式約束 Aeq*X = Beq. (若無不等式約束,取A= 、B=)X=fmincon(FUN,X0,A,B,Aeq,

8、Beq,LB,UB) 若設(shè)計變量X有上下限UB、LB用此格式若X無取值限制,LB與UB為空矩陣。若X(i)的下限為負無窮,則LB(i)=-Inf。若X(i)的上限為正無窮,則UB(i)=Inf。X=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON) NONLCON是包含函數(shù)名的字符串,該函數(shù)可以是M文件、內(nèi)部文件。例如,若NONLCON=mycon,則M文件mycon.m具有如下內(nèi)容:Function C,Ceq=mycon(X)C=.%計算X處的非線性不等式Ceq=%計算X處的非線性等式以上各調(diào)用格式中均可輸出目標(biāo)函數(shù)值,用法仍為:x,fval=fmincon

9、(.)例:某問題的目標(biāo)函數(shù)為約束條件為:設(shè)計變量初始值為目標(biāo)函數(shù)function f=myfun(x)f=0.192457*1e-4*(x(2)+2)*x(1)2*x(3);非線性約束function c,ceq=mycon(x)c(1)=350-163*x(1)(-2.86)*x(3)0.86;c(2)=10-0.4e-2*x(1)(-4)*x(2)*x(3)3;c(3)=(x(2)+1.5)*x(1)+0.44e-2*x(1)(-4)*x(2)*x(3)3-3.7*x(3);c(4)=375-0.356*1e6*x(1)*x(2)(-1)*x(3)(-2);c(5)=4-x(3)/x(1)

10、;ceq=0;主程序A=-1 0 0 1 0 0 0 -1 0 0 1 0 0 0 -1 0 0 1;b=-1;4;-4.5;50;-10;30;x0=2;5;25;lb=0;0;0;x,fval=fmincon('myfun',x0,A,b,lb,'mycon')%或用下式:%x,fval=fmincon(myfun,x0,A,b,lb,mycon)總結(jié):X=fmincon(fun,x0,A,b)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub,nonlcon,optio

11、ns)X,fval,exitflag,output=fmincon(fun,x0,)X,fval,exitflag,output,lambda,grad,Hessian=fmincon(fun,x0,)參數(shù)中fun為目標(biāo)函數(shù),x0為變量的初始值,x為返回的滿足要求的變量的值。A和b表示線性不等式約束,Aeq,Beq表示線性等式約束,Lb和Ub分別為變量的下界和上界約束,nonlcon表示非線性約束條件,options為控制優(yōu)化過程的優(yōu)化參數(shù)向量。返回值fval為目標(biāo)函數(shù)。exitflag>0表示優(yōu)化結(jié)果收斂于解,exitflag=0表示優(yōu)化超過了函數(shù)值的計算次數(shù),exitflag<

12、0表示優(yōu)化不收斂。lambda是拉格朗日乘子,顯示那個約束條件有效。grad表示梯度,hessian表示漢森矩陣。4 線性規(guī)劃 優(yōu)化函數(shù)linprogX=linprog (f,A,b)對應(yīng)數(shù)學(xué)規(guī)劃:min f'*x subject to: A*x <= bX= linprog (f,A,b,Aeq,beq) 增加等式約束Aeq*x = beq.X= linprog (f,A,b,Aeq,beq,LB,UB) 設(shè)計變量有上下限X= linprog (f,A,b,Aeq,beq,LB,UB,X0) X0為初始迭代點X,F(xiàn)=linprog(.)5 二次規(guī)劃 x= quadprog(H,

13、f,A,b) x = quadprog(H,f,A,b,Aeq,beq) x = quadprog(H,f,A,b,Aeq,beq,lb,ub) x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) x,fval = quadprog(.) x,fval,exitflag = quadprog(.) x,fval,exitflag,output = quadprog(.) x,fval,exitflag,output,lambda = quadprog(.)其中:X=quadprog (H,f,A,b)對應(yīng)問題為:min 0.5*x'*H*x + f'*x

溫馨提示

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

評論

0/150

提交評論