![Matlab 7最優(yōu)化問題求解_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/197da358-85f8-4df3-a988-659427979320/197da358-85f8-4df3-a988-6594279793201.gif)
![Matlab 7最優(yōu)化問題求解_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/197da358-85f8-4df3-a988-659427979320/197da358-85f8-4df3-a988-6594279793202.gif)
![Matlab 7最優(yōu)化問題求解_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/197da358-85f8-4df3-a988-659427979320/197da358-85f8-4df3-a988-6594279793203.gif)
![Matlab 7最優(yōu)化問題求解_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/197da358-85f8-4df3-a988-659427979320/197da358-85f8-4df3-a988-6594279793204.gif)
![Matlab 7最優(yōu)化問題求解_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/197da358-85f8-4df3-a988-659427979320/197da358-85f8-4df3-a988-6594279793205.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流Matlab 7最優(yōu)化問題求解.精品文檔.Matlab 最優(yōu)化問題求解1. 無約束最優(yōu)化問題無約束最優(yōu)化問題一般描述為:minfx其中x=x1,x2xnT,該數(shù)學表示的含義是求一組x,使得目標函數(shù)f(x)最小.這種問題也稱為最小化問題.Matlab中提供了3個求最小值的函數(shù),調(diào)用格式為:·x,fval=fminbnd(fname,x1,x2,options):求一元函數(shù)在(x1,x2)區(qū)間中的極小值點x和極小值fval;·x,fval=fminsearch(fname,x0,options):基于單純形算法求多元函數(shù)的極小
2、值點x和極小值fval;·x,fval=fminunc(fname,x0,options):基于擬牛頓法求多元函數(shù)的極小值點x和極小值fval.這里討論的是局域極值問題,fname是定義函數(shù)m文件的文件名,fminbnd的輸入變量x1,x2分別是研究區(qū)間的左右邊界;fminsearch和fminunc的輸入變量x0是一個向量,表示極值點的初值.options為優(yōu)化參數(shù),可以通過optimset函數(shù)來設(shè)置,當目標函數(shù)的階數(shù)大于2時,使用fminunc比fminsearch更有效;但是目標函數(shù)高度不連續(xù)時,使用fminsearch函數(shù)效果更好.Matlab中沒有專門求最大值的函數(shù),只要-
3、f(x)在(a,b)上的最小值就是f(x)在(a,b)上最大值的相反數(shù).因此用fminbnd(-f,x1,x2)返回函數(shù)f(x)在(x1,x2)上的最大值的相反數(shù).例如:求函數(shù)fx=x3-2x-5在區(qū)間0,5內(nèi)的極小值和極小值點.function fx=mymin(x)fx=x.3-2*x-5;x,fval=fminbnd(mymin,0,5)x = 0.8165fval = -6.0887因此極小值點為x=0.8165,極小值為-6.0887例如:設(shè)fx,y,z=x+y24x+z2y+2z求函數(shù)f(x,y,z)在(0.5,0.5,0.5)附近的最小值.function f=fxyz(p)x=
4、p(1);y=p(2);z=p(3);f=x+y2/4/x+z2/y+2/z;U,min=fminsearch(mymin,0.5,0.5,0.5)U = 0.5000 1.0000 1.0000min =4.00002. 有約束最優(yōu)化問題求解有約束最優(yōu)化問題一般描述為:minx s.t, G(X)0fx其中x=x1,x2xnT,該數(shù)學表示的含義是求一組x,使得目標函數(shù)f(x)最小,且滿足約束條件G(x)小于或等于0.這種問題也稱為最小化問題.2.1 約束條件分類·線性不等式約束:Axb·線性等式約束:Aeqx=beq·非線性不等式約束:Cx0·非線性等
5、式約束:Ceqx=0·x的上界和下界:LbndxUbndMatlab提供了fmincon函數(shù),用于求解各種約束下的最優(yōu)解問題,調(diào)用格式為:x,fval=fmincon(fname,x0,A,b,Aeq,beq,Lbnd,Ubnd,Nonf ,options)X,fname,fval,x0和options含義與求最小值函數(shù)相同,其余參數(shù)為約束條件,參數(shù)NonF為非線性約束函數(shù)的M文件名,如果該約束不存在則用空矩陣表示.例如:求解有約束最優(yōu)化問題x s.t.minfx=0.4x2+x12+x22-x1x2+130x13x1+0.5x20.40.5x1+x20.5x10,x20functi
6、on f=fop(x)f=0.4*x(2)+x(1)2+x(2)2-x(1)*x(2)+1/30*x(1)3;AA = -1.0000 -0.5000 -0.5000 -1.0000bb = -0.4000 -0.5000lblb = 0 0x0x0 = 0.5000 0.5000x,f=fmincon(fop,x0,A,b,lb,options)x = 0.3400 0.3300f =0.2456 注意線性不等式約束全部是小于號,如果出現(xiàn)大于號要將不等式兩端取相反數(shù)轉(zhuǎn)換成小于號再列寫A,b矩陣.3. 線性規(guī)劃問題求解線性規(guī)劃問題的標準形式是:minx s.t.AxbAeqx=beqLbndx
7、UbndfxMatlab中求解線性規(guī)劃問題的函數(shù)是linprog,調(diào)用格式為:x,fval=linprog(f,A,b,Aeq,beq,Lbnd,Ubnd)其中x是最優(yōu)解,fval是目標函數(shù)的最優(yōu)值.函數(shù)中各項參數(shù)是線性規(guī)劃問題標準形式中的對應(yīng)項,x,b,beq,Lbnd,Ubnd是向量,Aeq,A是矩陣,f為目標函數(shù)的系數(shù)向量.例如:求解線性規(guī)劃問題x s.t.minfx=2x1+x23x1+x234x1+3x26x10,x20f=2;1;A=-3,-1;-4,-3;-1,-2;b=-3;-6;-2;lb=0;0;options=optimset('Display','
8、;off');x,f=linprog(f,A,b,lb,)Optimization terminated.x = 0.6000 1.2000f = 2.40004. 詳細介紹用matlab優(yōu)化工具箱解無約束優(yōu)化問題4.1 matlab工具箱主要函數(shù)類型模型基本函數(shù)一元函數(shù)極小minFxs.t.x1<x<x2X=fminbnd(fname,x1,x2)無約束最小minF(X)X=fminsearch(fname,X0)線性規(guī)劃mincTXs.t.AXbX=linprog(c,A,b,Aeq,beq,vlb,vub)二次規(guī)劃min12xTHx+cTxs.t.AxbX=quadp
9、rog(H,c,A,b)約束最小(非線性規(guī)劃)minFXs.t.Gx0X=fmincon(fname,X0)達到目標問題minrs.t.Fx-wrgoalX=fgoalattain(fname,x,goal,w)極小極大問題minmaxFixs.t. Gx0X=fminimax(FG,x0)4.2 控制參數(shù)options的設(shè)置控制參數(shù)options包含了優(yōu)化程序中控制精度要求、輸出形式、算法選擇、迭代次數(shù)等.Options中常用的幾個參數(shù)的含義如下:·Display:顯示水平.取值為off時不顯示輸出;取值為iter時顯示每次迭代的信息;取值為final時,顯示最終結(jié)果,默認值為fi
10、nal.·MaxFunEvals:允許進行函數(shù)評價的最大次數(shù),取值為正整數(shù).·MaxIter:允許進行迭代的最大次數(shù),取值為正整數(shù)控制參數(shù)options可以由optimset函數(shù)創(chuàng)建或修改:·options=optimset(optimfun)創(chuàng)建一個含有所有參數(shù)名,并與優(yōu)化函數(shù)optimfun相關(guān)的默認值的選項結(jié)構(gòu)options.·options=optimset(param1,value1,param2,value2)創(chuàng)建一個名稱為options的優(yōu)化選項參數(shù),其中指定的參數(shù)具有指定值,所有未指定的參數(shù)取默認值.·options=optim
11、set(oldops,param1,value1,param2,value2)創(chuàng)建一個名稱為oldops的參數(shù)的拷貝,用指定的參數(shù)值修改ildops中的相應(yīng)參數(shù).4.3 用matlab工具箱求解無約束優(yōu)化問題4.3.1 一元函數(shù)的無約束優(yōu)化問題解一元函數(shù)的無約束優(yōu)化問題:minfx x1xx2使用的函數(shù)是fminbnd,其常用格式:·x=fminbnd(fname,x1,x2)·x=fminbnd(fname,x1,x2,options)·x,fval=fminbnd(fname,x1,x2,options)·x,fval,exitflag=fminbn
12、d(fname,x1,x2,options)·x,fval,exitflag,output=fminbnd(fname,x1,x2,options)Fminbnd算法基于黃金分割法和二次插值法,要求目標函數(shù)必須是連續(xù)函數(shù),并可能給出局部最優(yōu)解.例如:求函數(shù)f=2e-xsinx在0<x<8區(qū)間內(nèi)的最大值和最小值.function fx=fun(x)fx=2*exp(-x).*sin(x);xmin,ymin=fminbnd(fun,0,8)xmin = 3.9270ymin = -0.0279function fx=fun(x)fx=-2*exp(-x).*sin(x);x
13、,fval=fminbnd(fun,0,8);xmax=x;ymax=abs(fval);xmaxxmax = 0.7854ymaxymax =0.64484.3.2 多元函數(shù)的無約束優(yōu)化問題多元函數(shù)無約束最小化問題的標準型為:minFX其中X為n維變元向量.可以使用fminunc函數(shù)或fminsearch函數(shù).調(diào)用格式為:·x=fminunc(fun,x0)/x=fminsearch(fun,x0)·x=fminunc(fun,x0,options)/x=fminsearch(fun,x0,options)·x,fval=fminunc(fun,x0,optio
14、ns)/x,fval=fminsearch(fun,x0,options)·x,fval,exitflag=fminunc(fun,x0,options)/x,fval,exitflag=fminsearch(fun,x0,options)·x,fval,exitflag,output=fminunc(fun,x0,options)/x,fval,exitflag,output=fminsearch(fun,x0,options)注意:fminsearch以單純的形法尋最優(yōu)值,fminunc的算法受options參數(shù)控制:·fminunc為無約束優(yōu)化提供了大型優(yōu)化
15、算法和中型優(yōu)化算法,由options的LargeScale控制:LargeScale=on(默認),使用大型算法LargeScale=off,使用中型算法·fminunc為中型優(yōu)化算法的搜索方向提供了4種算法,由options的HessUpdate控制:HessUpdate=bfgs(默認),擬牛頓法的BFGS公式HessUpdate=dfp,擬牛頓法的DFP公式HessUpdate=steepdesc,最速下降法·fminunc為中型優(yōu)化算法的步長一維搜索提供了2種算法,由options的LineSearchType控制:LineSearchType=quadcubic(
16、缺省值),混合的二次和三次多項式插值LineSearchType=cubicpoly,三次多項式插值例如:求minfx=4x12+2x22+4x1x2+2x2+1ex1編寫m文件:function f=fun1(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);編寫m文件:x0=-1,1;x=fminunc('fun1',x0);y=fun1(x);執(zhí)行結(jié)果:xx = 0.5000 -1.0000yy = 3.6609e-015例如:Rosenock函數(shù)fx1,x2=100x2-x122+1-x12,用不同算法算出其數(shù)值最優(yōu)
17、解,初值選為x0=-1.2,2.為直觀表示Rosenbrock函數(shù)的圖像,制作如下指令m文件輸出Rosenbrock函數(shù)的圖像.x,y=meshgrid(-2:0.1:2,-1:0.1:3);z=100*(y-x.2).2+(1-x).2;surf(x,y,z)制作Rosenbrock函數(shù)的等高線圖,編寫如下M文件contour(x,y,z,20)hold onplot(-1.2,2,'o');text(-1.2,2,'start point');plot(1,1,'o');text(1,1,'solution')(1)使用fmi
18、nsearch函數(shù)編寫m文件如下:f='100*(x(2)-x(1)2)2+(1-x(1)2'x,fval,exitflag,output=fminsearch(f,-1.2 2)執(zhí)行結(jié)果:fun2f =100*(x(2)-x(1)2)2+(1-x(1)2x = 1.0000 1.0000fval = 1.9151e-010exitflag = 1output = iterations: 108 funcCount: 202 algorithm: 'Nelder-Mead simplex direct search' message: 1x196 char(2)
19、使用fminunc函數(shù)用3種搜索方向(BFGS,DFP和最速下降法)及兩種步長搜索(混合二、三次插值和三次插值)先建立函數(shù)文件:function f=fun2(x)f=100*(x(2)-x(1)2)2+(1-x(1)2;編寫主函數(shù)文件:%fminunc函數(shù)缺省選項oldoptions=optimset('fminunc');%采用中型優(yōu)化算法options=optimset(oldoptions,'LargeScale','off');%DFP法、混合二、三次插值options11=optimset(options,'HessUpdat
20、e','dfp');x11,fval11,exitflag11,output11=fminunc('fun2',-1.2 2,options11);%DFP·法、三次插值options12=optimset(options,'HessUpdate','dfp','lineSearchType','cubicpoly');x12,fval12,exitflag12,output12=fminunc('fun2',-1.2 2,options12);%BFGS法、混合二
21、、三次插值options13=optimset(options,'HessUpdate','bfgs');x13,fval13,exitflag13,output13=fminunc('fun2',-1.2 2,options13);%BFGS法、三次插值options14=optimset(options,'HessUpdate','bfgs','LineSearchType','cubicpoly');x14,fval14,exitflag14,output14=fminunc(
22、'fun2',-1.2 2,options14);%最速下降法、混合二、三次插值options15=optimset(options,'HessUpdate','steepdesc');x15,fval15,exitflag15,output15=fminunc('fun2',-1.2 2,options15);%最速下降法、混合二、三次插值迭代次數(shù)8000options16=optimset(options,'HessUpdate','steepdesc','MaxIter',80
23、00,'MaxFunEvals',8000);x16,fval16,exitflag16,output16=fminunc('fun2',-1.2 2,options16);%最速下降法、混合二、三次插值迭代次數(shù)9000options17=optimset(options,'HessUpdate','steepdesc','MaxIter',9000,'MaxFunEvals',9000);x17,fval17,exitflag17,output17=fminunc('fun2',-
24、1.2 2,options17)調(diào)用結(jié)果:x11 = -0.7476 0.5334fval11 = 3.1189exitflag11 = 0output11 = iterations: 60 funcCount: 201 stepsize: 11.4698 firstorderopt: 11.1142 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x143 charx12 = -0.7476 0.5334fval12 = 3.1189exitflag12 = 0output12 = iteration
25、s: 60 funcCount: 201 stepsize: 11.4698 firstorderopt: 11.1142 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x143 charx13 = 1.0000 1.0000fval13 = 2.0352e-011exitflag13 = 1output13 = iterations: 39 funcCount: 144 stepsize: 1 firstorderopt: 4.6220e-007 algorithm: 'medium-sca
26、le: Quasi-Newton line search' message: 1x440 charx14 = 1.0000 1.0000fval14 = 2.0352e-011exitflag14 = 1output14 = iterations: 39 funcCount: 144 stepsize: 1 firstorderopt: 4.6220e-007 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x440 charx15 = 1.1169 1.2482fval15 = 0.0137e
27、xitflag15 = 0output15 = iterations: 17 funcCount: 201 stepsize: 0.0018 firstorderopt: 0.1287 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x143 charx16 = 1.0796 1.1660fval16 = 0.0064exitflag16 = 0output16 = iterations: 667 funcCount: 8001 stepsize: 0.0018 firstorderopt: 0.090
28、0 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x144 charx17 = 1.0757 1.1572fval17 = 0.0057exitflag17 = 0output17 = iterations: 750 funcCount: 9000 stepsize: 0.0017 firstorderopt: 0.0826 algorithm: 'medium-scale: Quasi-Newton line search' message: 1x144 char由上述結(jié)果可以得到:
29、Rosenbrock 函數(shù)不同算法的計算結(jié)果搜索方向步長搜索最優(yōu)解點最優(yōu)值迭代次數(shù)BFGS混合二、三次插值(1.0000,1.0000)2.0352e-011144三次插值(1.0000,1.0000)2.0352e-011144DFP混合二、三次插值(-0.7446,0.5334)3.1189201三次插值(-0.7476,0.5334)3.1189201最速下降法混合二、三次插值(1.1169,1.2482)0.0137201(1.0796,1.1660)0.00648001(1.0757,1.1572)0.005790005. 詳解matlab工具箱解非線性規(guī)劃5.1 二次規(guī)劃二次規(guī)劃的
30、標準型為:minZ=12xTHx+cTxs.t. AxbAeqX=beqvlbXvubmatlab中提供了quadprog函數(shù)求解二次規(guī)劃問題.其調(diào)用格式為:·x=quadprog(H,C,A,b)·x=quadprog(H,C,A,b,Aeq,beq)·x=quadprog(H,C,A,b,Aeq,beq,vlb,vub)·x=quadprog(H,C,A,b,Aeq,beq,vlb,vub,X0)·x= quadprog(H,C,A,b,Aeq,beq,vlb,vub,X0,options)·x,fval= quadprog(H,
31、C,A,b,Aeq,beq,vlb,vub,X0,options)·x,fval,exitflag= quadprog(H,C,A,b,Aeq,beq,vlb,vub,X0,options)·x,fval,exitflag,output= quadprog(H,C,A,b,Aeq,beq,vlb,vub,X0,options)例如:求minx1,x2=-2x1-6x2+x12-2x1x2+2x22H=1,-1;-1,2;c=-2;-6;A=1,1;-1,2;b=2;2;vlb=0;0;x,z=quadprog(H,c,A,b,vlb,)Optimization termin
32、ated.x = 0.6667 1.3333z = -8.22225.2 非線性規(guī)劃的解法非線性規(guī)劃的標準型為:minF(X)s.t. AXbAeqX=beqGX0CeqX=0vlbXvubX為n維變元向量,G(X)和Ceq(X)都是非線性函數(shù)組成的向量,其他變量的含義與線性規(guī)劃和二次規(guī)劃相同.用matlab解決問題的步驟為:-1- 建立M文件fun.m定義目標函數(shù)F(X) Function f=fun(X) F=F(X)-2- 若約束條件中有非線性約束:G(X)0或CeqX=0,需要建立M文件nonlcon.m定義函數(shù)G(X)和CeqX. Function G,Ceq=nonlcon(X)
33、G= ; Ceq= ;-3- 建立主程序,非線性規(guī)劃求解的函數(shù)是fmincon,命令的基本格式如下:X=fmincon(fun,X0,A,b,Aeq,beq,vlb,vub,nonlcon,options)紅色的部分如果沒有則使用空矩陣替代.Fmincon函數(shù)提供了大型優(yōu)化算法,默認值在fun函數(shù)中提供了梯度(options參數(shù)的GradObj設(shè)置on),并且只有上下界存在或只有等式約束,fmincon將選擇大型算法,既有等式約束也有梯度約束時使用中型算法.Fmincon可能會給出局部最優(yōu)解,其與X0的值有關(guān)系.例如:求minf=-x1-2x2+12x12+12x22s.t. 2x1+3x26x1+4x25x1,x20先建立函數(shù)文件:function f=fun4(x)f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)2;x0=1;1;A=2,3;1
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)合集人事管理篇十篇
- 《證券交易流程》課件
- 《企業(yè)戰(zhàn)略管理》課件
- 新生引航共筑未來
- 學校三年級班主任工作總結(jié)5篇
- 2023年-2024年新員工入職安全教育培訓試題附答案(突破訓練)
- 大學畢業(yè)晚會策劃書合集15篇
- 2023年-2024年新入職員工安全教育培訓試題附下載答案可打印
- 2024員工三級安全培訓考試題(原創(chuàng)題)
- 保護環(huán)境的建議書(合集15篇)
- 知識圖譜智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- 《灰塵的旅行》導讀
- 高血壓患者不遵醫(yī)飲食行為的原因分析及對策
- 60周歲以上的老年人換領(lǐng)C1駕照三力測試題答案
- 社區(qū)依法執(zhí)業(yè)培訓課件
- ISO50001能源管理體系管理評審報告OK
- 輸送機械安全培訓
- 人教版六年級上冊計算題專項練習1000題及答案
- 農(nóng)村文化建設(shè)培訓
- 教育理念和教育方法
- 九小場所安全檢查表
評論
0/150
提交評論