版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 函數(shù):fminbnd功能:求取固定區(qū)間內(nèi)單變量函數(shù)的最小值,也就是一元函數(shù)最小值問(wèn)題。函數(shù):fminsearch功能:求解多變量無(wú)約束函數(shù)的最小值。函數(shù):fminunc功能:求多變量無(wú)約束函數(shù)的最小值。函數(shù):quadprog功能:求解二次規(guī)劃問(wèn)題。非線(xiàn)性規(guī)劃問(wèn)題非線(xiàn)性無(wú)約束規(guī)劃問(wèn)題無(wú)約束規(guī)劃由3個(gè)功能函數(shù)fminbnd、fminsearch、fminunc實(shí)現(xiàn)fminbnd函數(shù)教材第28頁(yè)數(shù)學(xué)模型:minf(x)xxx0表示目標(biāo)函數(shù)收斂于解x處;0表示已經(jīng)達(dá)到函數(shù)評(píng)價(jià)或迭代的最大次數(shù);x,y_min=fminbnd(sin(x),0,2*pi)x=4.7124y_min=-1.0000或x,
2、y_min=fminbnd(sin,0,2*pi)內(nèi)部函數(shù)的用法x=4.7124y_min=-1.0000P28,例3.11求函數(shù)f(x)=(x-3)2-l,xW0,5的最小值x,y=fminbnd(inline(x-3)A2-1),0,5)x=3y=-1或x,y=fminbnd(x-3)A2-1,0,5)x=3y=-1例10-5對(duì)邊長(zhǎng)為3m的正方形鐵板,在四個(gè)角處剪去相等的小正方形以制成方形無(wú)蓋盒子,問(wèn)如何剪法使盒子容積最大?解:設(shè)剪去的正方形的邊長(zhǎng)為x,則盒子容積為f(x)=(3-2x)2x現(xiàn)在要求在區(qū)間(0,1.5)上確定X,使f(x)最大化。因?yàn)閮?yōu)化工具箱中要求目標(biāo)函數(shù)最小化,所以需要
3、對(duì)目標(biāo)函數(shù)進(jìn)行轉(zhuǎn)換,即要求-f(x)最小化。在Matlab中實(shí)現(xiàn):x,f_min=fminbnd(-(3-2*x)A2*x,0,1.5)x=0.5000f_min=-2.0000或編寫(xiě)M文件Ex1005.mx,f_min=fminbnd(Ex1005,0,1.5)x=0.5000f_min=-2.0000即剪去邊長(zhǎng)為0.5m的正方形,最大容積為2m3。fminsearch函數(shù)教材第23頁(yè)函數(shù):fminsearch功能:求解多變量無(wú)約束函數(shù)的最小值。數(shù)學(xué)模型:minf(x)x其中,x為向量,f(x)為一函數(shù),返回標(biāo)量。格式:x=fminsearch(fun,x0)x=fminsearch(fun
4、,x0,options)x=fminsearch(fun,x0,options,P1,P2,.)x,fval=fminsearch(.)x,fval,exitflag=fminsearch(.)x,fval,exitflag,output=fminsearch(.)說(shuō)明:fminsearch求解多變量無(wú)約束函數(shù)的最小值。該函數(shù)常用于無(wú)約束非線(xiàn)性最優(yōu)化問(wèn)題。x=fminsearch(fun,x0)初值為x0,求fun函數(shù)的局部極小點(diǎn)X。X0可以是標(biāo)量、向量或矩陣。x=fminsearch(fun,x0,options)用options參數(shù)指定的優(yōu)化參數(shù)進(jìn)行最小化。x=fminsearch(fun
5、,x0,options,Pl,P2,.)將問(wèn)題參數(shù)P1、P2等直接輸給目標(biāo)函數(shù)fun,將options參數(shù)設(shè)置為空矩陣,作為options參數(shù)的默認(rèn)值。x,fval=fminsearch(.)將x處的目標(biāo)函數(shù)值返回到fval參數(shù)中。x,fval,exitflag=fminsearch(.)返回exitflag值,描述函數(shù)的退出條件。x,fval,exitflag,output=fminsearch(.)返回包含優(yōu)化信息參數(shù)output的結(jié)構(gòu)輸出。各變量的意義同前及下面fminunc函數(shù)。注意:應(yīng)用fminsearch函數(shù)可能會(huì)得到局部最優(yōu)解;fminsearch函數(shù)只對(duì)實(shí)數(shù)進(jìn)行最小化,即x必須
6、由實(shí)數(shù)組成,f(x)函數(shù)必須返回實(shí)數(shù)。如果x為復(fù)數(shù),則必須將它分為實(shí)數(shù)部和虛數(shù)部?jī)刹糠?;?duì)于求解二次以上的問(wèn)題,fminunc函數(shù)比f(wàn)minsearch函數(shù)有效,但對(duì)于高度非線(xiàn)性不連續(xù)問(wèn)題時(shí),fminsearch函數(shù)更具穩(wěn)鍵性。fminsearch函數(shù)不適合求解平方和問(wèn)題,用lsqnonlin函數(shù)更好一些。例10-6求2x13+4x1x23-10 x1x2+x22的最小值。解:在Matlab中實(shí)現(xiàn)如下:f=2*x(1)A3+4*x(1)*x(2)A3-10*x(1)*x(2)+x(2)A2;%直接定義函數(shù)x0=0,0;x,f_min=fminsearch(f,x0)x=1.00160.8335
7、f_min=-3.3241或在Matlab編輯器中編輯M文件Exl006.m:functionf=Ex1006(x)f=2*x(l)A3+4*x(l)*x(2F3-10*x(l)*x(2)+x(2)A2;x0=0,0;命令窗口運(yùn)行:x,f_min=fminsearch(Ex1006,x0)x=1.00160.8335f_min=-3.3241運(yùn)行后結(jié)果一致。fminunc函數(shù)教材第23頁(yè)函數(shù):fminunc功能:求多變量無(wú)約束函數(shù)的最小值。數(shù)學(xué)模型:minf(x)x其中,x為向量,f(x)為一函數(shù),返回標(biāo)量。格式:x=fminunc(fun,x0)x=fminunc(fun,x0,option
8、s)x=fminunc(fun,x0,options,P1,P2,.) x,fval=fminunc(.)x,fval,exitflag=fminunc(.)x,fval,exitflag,output=fminunc(.)x,fval,exitflag,output,grad=fminunc(.)x,fval,exitflag,output,grad,hessian=fminunc(.)說(shuō)明:fminunc給定初值,求多變量標(biāo)量函數(shù)的最小值。常用于無(wú)約束非線(xiàn)性最優(yōu)化問(wèn)題。x=fminunc(fun,x0)給定初值x0,求fun函數(shù)的局部極小點(diǎn)x。x0可以是標(biāo)量、向量或矩陣。x=fminunc
9、(fun,x0,options)用options參數(shù)指定的優(yōu)化參數(shù)進(jìn)行最小化。x=fminunc(fun,x0,options,Pl,P2,.)將問(wèn)題參數(shù)Pl、P2等直接輸給目標(biāo)函數(shù)fun,將options參數(shù)設(shè)置為空矩陣,作為options參數(shù)的默認(rèn)值。x,fval=fminunc(.)將x處的目標(biāo)函數(shù)值返回到fval參數(shù)中。x,fval,exitflag=fminunc(.)返回exitflag值,描述函數(shù)的退出條件。x,fval,exitflag,output=fminunc(.)返回包含優(yōu)化信息參數(shù)output的結(jié)構(gòu)輸出。x,fval,exitflag,output,grad=fmin
10、unc(.)將解x處fun函數(shù)的梯度值返回到grad參數(shù)中。x,fval,exitflag,output,grad,hessian=fminunc(.)將解x處目標(biāo)函數(shù)的Hessian矩陣信息返回到hessian參數(shù)中。fun變量:為目標(biāo)函數(shù)。需要最小化的目標(biāo)函數(shù)。fun函數(shù)需要輸入向量參數(shù)x,返回x處的目標(biāo)函數(shù)標(biāo)量值f??梢詫un函數(shù)指定為命令行,如x=fminunc(inline(norm(x)A2),x0)同樣,fun函數(shù)可以是一個(gè)包含函數(shù)名的字符串。對(duì)應(yīng)的函數(shù)可以是M文件、內(nèi)部函數(shù)或MEX文件。若fun=myfun,貝Ux=fminunc(myfun,x0)其中M文件函數(shù)myfun.
11、m必須有下面的形式:functionf=myfun(x)f=%計(jì)算x處的函數(shù)值。若fun函數(shù)的梯度可以算得,且options.GradObj設(shè)為on(用下式設(shè)定)options=optimset(GradObj,on)則fun函數(shù)必須返回解x處的梯度向量g到第二個(gè)輸出變量中去。注意,當(dāng)被調(diào)用的fun函數(shù)只需要一個(gè)輸出變量時(shí)(如算法只需要目標(biāo)函數(shù)的值而不需要其梯度值時(shí)),可以通過(guò)核對(duì)nargout的值來(lái)避免計(jì)算梯度值functionf,g=myfun(x)f=.%計(jì)算x處的函數(shù)值ifnargout1%調(diào)用fun函數(shù)并要求有兩個(gè)輸出變量g=.%計(jì)算x處的梯度值end若Hessian矩陣可以求得,并
12、且options.Hessian設(shè)為on,即options=optimset(Hessian,on)則fun函數(shù)必須返回解x處的Hessian對(duì)稱(chēng)矩陣H到第三個(gè)輸出變量中去。注意,當(dāng)被調(diào)用的fun函數(shù)只需要一個(gè)或兩個(gè)輸出變量時(shí)(如算法只需要目標(biāo)函數(shù)的值f和梯度值g而不需要Hessian矩陣H時(shí)),可以通過(guò)核對(duì)nargout的值來(lái)避免計(jì)算Hessian矩陣functionf,g=myfun(x)f=.%計(jì)算x處的函數(shù)值ifnargout1%調(diào)用fun函數(shù)并要求有兩個(gè)輸出變量g=.%計(jì)算x處的梯度值ifnargout2H=.%計(jì)算x處的Hessian矩陣endoptions變量:優(yōu)化參數(shù)選項(xiàng)。可以
13、通過(guò)optimset函數(shù)設(shè)置或改變這些參數(shù)。其中有的參數(shù)適用于所有的優(yōu)化算法,有的則只適用于大型優(yōu)化問(wèn)題,另外一些則只適用于中型問(wèn)題。首先描述適用于大型問(wèn)題的選項(xiàng)。這僅僅是一個(gè)參考,因?yàn)槭褂么笮蛦?wèn)題算法有一些條件。對(duì)于fminunc函數(shù)來(lái)說(shuō),必須提供梯度信息LargeScale當(dāng)設(shè)為on時(shí),使用大型算法,若設(shè)為off則使用中型問(wèn)題的算法適用于大型和中型算法的參數(shù):Diagnostics打印最小化函數(shù)的診斷信息Display顯示水平。選擇off,不顯示輸出;選擇iter,顯示每一步迭代過(guò)程的輸出;選擇final,顯示最終結(jié)果GradObj用戶(hù)定義的目標(biāo)函數(shù)的梯度。對(duì)于大型問(wèn)題此參數(shù)是必選的,對(duì)于
14、中型問(wèn)題則是可選項(xiàng)MaxFunEvals函數(shù)評(píng)價(jià)的最大次數(shù)MaxIter最大允許迭代次數(shù)TolFun函數(shù)值的終止容限TolXx處的終止容限只適用于大型算法的參數(shù):Hessian用戶(hù)定義的目標(biāo)函數(shù)的Hessian矩陣HessPattern用于有限差分的Hessian矩陣的稀疏形式。若不方便求fun函數(shù)的稀疏Hessian矩陣H,可以通過(guò)用梯度的有限差分獲得的H的稀疏結(jié)構(gòu)(如非零值的位置等)來(lái)得到近似的Hessian矩陣H。若連矩陣的稀疏結(jié)構(gòu)都不知道,則可以將HessPattern設(shè)為密集矩陣,在每一次迭代過(guò)程中,都將進(jìn)行密集矩陣的有限差分近似(這是默認(rèn)設(shè)置)。這將非常麻煩,所以花一些力氣得到He
15、ssian矩陣的稀疏結(jié)構(gòu)還是值得的MaxPCGIterPCG迭代的最大次數(shù)PrecondBandWidthPCG前處理的上帶寬,默認(rèn)時(shí)為零。對(duì)于有些問(wèn)題,增加帶寬可以減少迭代次數(shù)TolPCGPCG迭代的終止容限TypicalX典型x值只適用于中型算法的參數(shù):DerivativeCheck對(duì)用戶(hù)提供的導(dǎo)數(shù)和有限差分求出的導(dǎo)數(shù)進(jìn)行對(duì)比DiffMaxChange變量有限差分梯度的最大變化DiffMixChange變量有限差分梯度的最小變化LineSearchType一維搜索算法的選擇exitflag變量:描述退出條件:0表示目標(biāo)函數(shù)收斂于解x處0表示已經(jīng)達(dá)到函數(shù)評(píng)價(jià)或迭代的最大次數(shù)x0=l,l;x,
16、fval=fminunc(Ex10071,x0)Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.InE:matlab6p1toolboxoptimfminunc.matline211Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXx=1.0e-008*-0.75910.2665fval=1.3953e-016下面用提供的梯度g最小化函數(shù),修改M文件為Ex10072.m:function
17、f,g=Ex10072(x)f=3*x(1)A2+2*x(1)*x(2)+x(2)A2;ifnargout1g(1)=6*x(1)+2*x(2);g(2)=2*x(1)+2*x(2);end下面通過(guò)將優(yōu)化選項(xiàng)結(jié)構(gòu)options.GradObj設(shè)置為on來(lái)得到梯度值。options=optimset(GradObj,on);x0=1,1;x,fval=fminunc(Ex10072,x0,options)Optimizationterminatedsuccessfully:First-orderoptimalitylessthanOPTIONS.TolFun,andnonegative/zero
18、curvaturedetectedx=1.0e-015*0.1110-0.8882fval=6.2862e-031例10-8求函數(shù)f(x)=ex1(4xi2+2x22+4xix2+2x2+1)的最小值。解:在Matlab中實(shí)現(xiàn):x,fval,exitflag,output=fminunc(exp(x(l)*(4*x(l)A2+2*x(2)A2+4*x(1)*x(2)+2*x(2)+1),-1,1)Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.InE:matlab6p1toolb
19、oxoptimfminunc.matline211Optimizationterminatedsuccessfully:Currentsearchdirectionisadescentdirection,andmagnitudeofdirectionalderivativeinsearchdirectionlessthan2*options.TolFunx=0.5000-1.0000fval=1.3028e-010exitflag=1output=iterations:7funcCount:40stepsize:1firstorderopt:8.1998e-004algorithm:mediu
20、m-scale:Quasi-Newtonlinesearch例10-9求無(wú)約束非線(xiàn)性問(wèn)題f(x)=100(x2-x12)2+(1-x1)2x0=-1.2,1解:在Matlab中實(shí)現(xiàn):x0=-1.2,1;x,fval=fminunc(100*(x(2)-x(l)A2)A2+(l-x(l)A2,x0)Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.InE:matlab6p1toolboxoptimfminunc.matline211Optimizationterminatedsucc
21、essfully:Currentsearchdirectionisadescentdirection,andmagnitudeofdirectionalderivativeinsearchdirectionlessthan2*options.TolFunx=1.00001.0000fval=1.9116e-01110.2.2二次規(guī)劃教材第26頁(yè)數(shù)學(xué)模型:如果某非線(xiàn)性規(guī)劃的目標(biāo)函數(shù)為自變量的二次函數(shù),約束條件全是線(xiàn)性函數(shù),就稱(chēng)這種規(guī)劃為二次規(guī)劃。其數(shù)學(xué)模型為1minxTHx+fTxx2Aeq-x=beqlbxub其中,H,A和Aeq為矩陣,f,b,beq,lb,ub和x為向量。函數(shù):quadpr
22、og功能:求解二次規(guī)劃問(wèn)題。格式:x=quadprog(H,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=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options,p1,p2,.)x,fval=quadprog(.)x,fval,exitflag=quadprog(.)x,fval,exitflag,output=quad
23、prog(.)x,fval,exitflag,output,lambda=quadprog(.)說(shuō)明:x=quadprog(H,f,A,b)返回向量x,最小化函數(shù)l/2*x*H*x+f*x,其約束條件為A*x=b。x=quadprog(H,f,A,b,Aeq,beq)仍求上面的解,但添加了等式約束條件Aeq*x=beq。x=quadprog(H,f,A,b,Aeq,beq,lb,ub)定義設(shè)計(jì)變量的下界lb和上界ub,使得lb=x=ub。x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)同上,并設(shè)置初值x0。x=quadprog(H,f,A,b,Aeq,beq,lb,ub
24、,x0,options)根據(jù)options參數(shù)扌旨定的優(yōu)化參數(shù)進(jìn)行最小化。x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options,p1,p2,.)將參數(shù)P1,P2等直接輸給Hessian乘子函數(shù),如果存在,用options參數(shù)中的HessMult屬性旨定。x,fval=quadprog(.)返回解x處的目標(biāo)函數(shù)fval=1/2*x*H*x+f*x。x,fval,exitflag=quadprog(.)返回exitflag參數(shù),描述計(jì)算的退出條件。x,fval,exitflag,output=quadprog(.)返回包含優(yōu)化信息的結(jié)構(gòu)輸出output。x,fva
25、l,exitflag,output,lambda=quadprog(.)返回解x處包含Lagrange乘子的lambda參數(shù)。各變量的意義同前。(1)一般地,如果問(wèn)題不是嚴(yán)格凸性的,用quadprog函數(shù)得到的可能是局部最優(yōu)解;(2)如果用Aeq和Beq明確地指定等式約束,而不是用lb和ub指定,則可以得到更好的數(shù)值解;(3)若x的組分沒(méi)有上限或下限,則quadprog函數(shù)希望將對(duì)應(yīng)的組分設(shè)置為Inf(對(duì)于上限)或-Inf(對(duì)于下限),而不是強(qiáng)制性地給予上限一個(gè)很大的數(shù)或給予下限一個(gè)很小的負(fù)數(shù);(4)對(duì)于大型優(yōu)化問(wèn)題,若沒(méi)有提供初值X0,或X0不是嚴(yán)格可行,則quadprog函數(shù)會(huì)選擇一個(gè)新的
26、初始可行點(diǎn);(5)若為等式約束,且quadprog函數(shù)發(fā)現(xiàn)負(fù)曲度(negativecurvature),則優(yōu)化過(guò)程終止,exitflag的值等于-1;此時(shí),顯示水平只能選擇off和final,迭代參數(shù)iter不可用;當(dāng)問(wèn)題不定或負(fù)定時(shí),常常無(wú)解(此時(shí)eXitflag參數(shù)給出一個(gè)負(fù)值,表示優(yōu)化過(guò)程不收斂)。若正定解存在,則quadprog函數(shù)可能只給出局部極小值,因?yàn)閱?wèn)題可能是非凸的;對(duì)于大型問(wèn)題,不能依靠線(xiàn)性等式,因?yàn)锳eq必須是行滿(mǎn)秩的,即Aeq的行數(shù)必須不多于列數(shù)。若不滿(mǎn)足要求,必須調(diào)用中型算法進(jìn)行計(jì)算;大型化問(wèn)題大型化問(wèn)題不允許約束上限和下限相等,如若lb(2)=ub(2),則給出以下出
27、錯(cuò)信息:Equalupperandlowerboundsnotpermittedinthislarge-scalemethod.Useequalityconstraintsandthemedium-scalemethodinstead.若優(yōu)化模型中只有等式約束,仍然可以使用大型算法;如果模型中既有等式約束又有邊界約束,則必須使用中型方法。中型優(yōu)化問(wèn)題當(dāng)解不可行時(shí),quadprog函數(shù)給出以下警告:Warning:Theconstraintsareoverlystringent;thereisnofeasiblesolution.這里,quadprog函數(shù)生成使約束條件矛盾最壞程度最小的結(jié)果。當(dāng)
28、等式約束不連續(xù)時(shí),給出下面的警告信息:Warning:Theequalityconstraintsareoverlystringent;thereisnofeasiblesolution.當(dāng)Hessian矩陣為負(fù)半定時(shí),生成無(wú)邊界解,給出下面的警告信息:Warning:Thesolutionisunboundedandatinfinity;theconstraintsarenotrestrictiveenough.這里,quadprog函數(shù)返回滿(mǎn)足約束條件的x值。例10-10求解下面的最優(yōu)化問(wèn)題:f(x)=目標(biāo)函數(shù)約束條件x+x212一x+2x2122x+x3120 x,0H=1-1;-12;
29、f=-2;-6;A=11;-12;21;b=2;2;3;lb=zeros(2,1);x,fval,exitflag,output,lambda=quadprog(H,f,A,b,lb)Warning:Large-scalemethoddoesnotcurrentlysolvethisproblemformulation,switchingtomedium-scalemethod.InE:matlab6p1toolboxoptimquadprog.matline213Optimizationterminatedsuccessfully.x=0.66671.3333fval=-8.2222exit
30、flag=1output=iterations:3algorithm:medium-scale:active-setfirstorderopt:cgiterations:lambda=lower:2x1doubleupper:2x1doubleeqlin:0 x1doubleineqlin:3x1doublelambda.lowerans=00lambda.ineqlinans=3.11110.44440有約束規(guī)劃教材第21頁(yè)函數(shù):fmincon功能:求多變量有約束非線(xiàn)性函數(shù)的最小值。數(shù)學(xué)模型:minf(x)xc(x)0ceq(x)=0A-xbAeq-x=beqlbxub其中,x,b,beq,
31、lb和ub為向量,A和Aeq為矩陣,c(x)和ceq(x)為函數(shù),返回標(biāo)量。f(x),c(x)和ceq(x)可以是非線(xiàn)性函數(shù)。格式:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P
32、2,.)x,fval=fmincon(.)x,fval,exitflag=fmincon(.)x,fval,exitflag,output=fmincon(.)x,fval,exitflag,output,lambda=fmincon(.)x,fval,exitflag,output,lambda,grad=fmincon(.)x,fval,exitflag,output,lambda,grad,hessian=fmincon(.) 說(shuō)明:fmincon求多變量有約束非線(xiàn)性函數(shù)的最小值。該函數(shù)常用于有約束非線(xiàn)性?xún)?yōu)化問(wèn)題。x=fmincon(fun,x0,A,b)給定初值x0,求解fun函數(shù)的最
33、小值點(diǎn)x。fun函數(shù)的約束條件為A*x=b,x0可以是標(biāo)量、向量或矩陣。x=fmincon(fun,x0,A,b,Aeq,beq)最小化fun函數(shù),約束條件為A*x=b和Aeq*x=beq。若沒(méi)有不等式存在,則設(shè)置A=,b=。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)定義設(shè)計(jì)變量x的下界lb和上界ub,使得lb=x=ub。若無(wú)等式存在,則令A(yù)eq=,beq=。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上面的基礎(chǔ)上,在nonIcon參數(shù)中提供非線(xiàn)性不等式c(x)或等式ceq(x)。fmincon函數(shù)要求c(x)=0且ceq
34、(x)=0。當(dāng)無(wú)邊界存在時(shí),令lb=和(或)ub=。x=fmincon(fun,xO,A,b,Aeq,beq,lb,ub,nonlcon,options)用options參數(shù)指定的參數(shù)進(jìn)行最小化。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,.)將問(wèn)題參數(shù)Pl,P2等直接傳遞給函數(shù)fun和nonIcon。若不需要參數(shù)A,b,Aeq,beq,lb,ub,nonlcon和options,將它們?cè)O(shè)置為空矩陣。x,fval=fmincon(.)返回解x處的目標(biāo)函數(shù)值。x,fval,exitflag=fmincon(.)返回exitfl
35、ag參數(shù),描述計(jì)算的退出條件。x,fval,exitflag,output=fmincon(.)返回包含優(yōu)化信息的結(jié)構(gòu)輸出output。x,fval,exitflag,output,lambda=fmincon(.)返回解x處包含Lagrange乘子的lambda參數(shù)。x,fval,exitflag,output,lambda,grad=fmincon(.)返回解x處fun函數(shù)的梯度。x,fval,exitflag,output,lambda,grad,hessian=fmincon(.)返回解x處fun函數(shù)的Hessian矩陣。nonlcon參數(shù)該參數(shù)計(jì)算非線(xiàn)性不等式約束c(x)2%被調(diào)用的
36、nonlcon函數(shù),要求有4個(gè)輸出變量GC=.%不等式的梯度GCeq=.%等式的梯度end若nonlcon函數(shù)返回m元素的向量c和長(zhǎng)度為n的x,則c(x)的梯度GC是一個(gè)nXm的矩陣,其中GC(i,j)是c(j)對(duì)x(i)的偏導(dǎo)數(shù)。同樣,若ceq是一個(gè)p元素的向量,則ceq(x)的梯度GCeq是一個(gè)nXp的矩陣,其中GCeq(i,j)是ceq(j)對(duì)x的偏導(dǎo)數(shù)。其它參數(shù)意義同前。1)大型優(yōu)化問(wèn)題:(1.1)使用大型算法,必須在fun函數(shù)中提供梯度信息(options.GradObj設(shè)置為on)。如果沒(méi)有梯度信息,則將給出警告信息。Fmincon函數(shù)允許g(x)為一近似梯度,但使用真正的梯度將使
37、優(yōu)化過(guò)程更具穩(wěn)鍵性。當(dāng)對(duì)矩陣的二階導(dǎo)數(shù)(即Hessian矩陣)進(jìn)行計(jì)算后,用該函數(shù)求解大型問(wèn)題將更有效。但不需要求得真正的Hessian矩陣,如果能提供Hessian矩陣稀疏結(jié)構(gòu)的信息(用options參數(shù)的HessPattern屬性),則fmincon函數(shù)可以算得Hessian矩陣的稀疏有限差分近似。若x0不是嚴(yán)格可行的,則fmincon函數(shù)選擇一個(gè)新的嚴(yán)格可行初始點(diǎn)。(1.4)若x的某些元素沒(méi)有上界或下界,則fmincon函數(shù)更希望對(duì)應(yīng)的元素設(shè)置為Inf(對(duì)于上界)或-Inf(對(duì)于下界),而不希望強(qiáng)制性地給上界賦一個(gè)很大的值,給下界一個(gè)很小的負(fù)值。(1.5)線(xiàn)性約束最小化課題中也有幾個(gè)問(wèn)題
38、需要注意:Aeq矩陣中若存在密集列或近密集列(Adenseorfairlydensecolumn),會(huì)導(dǎo)致滿(mǎn)秩并使計(jì)算費(fèi)時(shí);fmincon函數(shù)剔除Aeq中線(xiàn)性相關(guān)的行。此過(guò)程需要進(jìn)行反復(fù)的因子分解,因此,如果相關(guān)行很多的話(huà),計(jì)算將是一件很費(fèi)時(shí)的事情;每一次迭代都要用下式進(jìn)行稀疏最小二乘求解B=AeqTR-t其中rt為前提條件的Cholesky(喬累斯基)因子。2)中型優(yōu)化問(wèn)題:如果用Aeq和beq清楚地提供等式約束,將比用lb和ub獲得更好的數(shù)值解。在二次子問(wèn)題中,若有等式約束并且因等式(dependentequalities)被發(fā)現(xiàn)和剔除的話(huà),將在過(guò)程標(biāo)題中顯示dependent(當(dāng)outp
39、ut參數(shù)要求使用options.Display=iter)。只有在等式連續(xù)的情況下,因等式才會(huì)被剔除。若等式系統(tǒng)不連續(xù),則子問(wèn)題將不可行并在過(guò)程標(biāo)題中打印infeasible信息。求大型優(yōu)化問(wèn)題的代碼中不允許上限和下限相等,即不能有l(wèi)b(2)=ub(2),否則給出下面的出錯(cuò)信息:Equalupperandlowerboundsnotpermittedinthislarge-scalemethod.Useequalityconstraintsandthemedium-scalemethodinstead.若只有等式約束,仍然可以使用大型算法。當(dāng)既有等式約束又有邊界約束時(shí),使用中型算法。目標(biāo)函數(shù)和
40、約束函數(shù)都必須是連續(xù)的,否則可能會(huì)只給出局部最優(yōu)解。當(dāng)問(wèn)題不可行時(shí),fmincon函數(shù)將試圖使最大約束值最小化。(6)目標(biāo)函數(shù)和約束函數(shù)都必須是實(shí)數(shù)。(7)對(duì)于大型優(yōu)化問(wèn)題,使用大型優(yōu)化算法時(shí),用戶(hù)必須在fun函數(shù)中提供梯度(options參數(shù)的GradObj屬性必須設(shè)置為on),并且只可指定上界和下界約束,或者只有線(xiàn)性約束必須存在,Aeq的行數(shù)不能多于列數(shù)。(8)如果在fun函數(shù)中提供了解析梯度,選項(xiàng)參數(shù)DerivativeCheck不能與大型方法一起用,以比較解析梯度和有限差分梯度??梢酝ㄟ^(guò)將options參數(shù)的MaxIter屬性設(shè)置為0來(lái)用中型方法核對(duì)導(dǎo)數(shù),然后用大型方法求解問(wèn)題。例10
41、-11求解下列優(yōu)化問(wèn)題:本題可用lingo求解目標(biāo)函數(shù)f(x)一xix2x3約束條件0 x+2x+2x72123解:將約束條件改寫(xiě)成下面的不等式_片2x2-2x30X1+2X2+2X3x0=10;10;10;A=-1-2-2;122;b=0;72;x,fval=fmincon(-x(1)*x(2)*x(3),x0,A,b)Warning:Large-scale(trustregion)methoddoesnotcurrentlysolvethistypeofproblem,switchingtomedium-scale(linesearch).InE:matlab6p1toolboxoptim
42、fmincon.matline213Optimizationterminatedsuccessfully:Magnitudeofdirectionalderivativeinsearchdirectionlessthan2*options.TolFunandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:2x=24.000012.000012.0000fval=-3456線(xiàn)性不等式約束條件的值A(chǔ)*x-bans=-720例10-12求表面積為常數(shù)150m2的體積最大的長(zhǎng)方體體積。解:設(shè)長(zhǎng)方體的長(zhǎng)、寬、高分別為
43、X、x2和x3,根據(jù)題意得到下面的數(shù)學(xué)模型:minz=-X1X2X32(XX+XX+XX)=150233112由于約束條件是非線(xiàn)性等式約束,所以需要編寫(xiě)一個(gè)約束條件M文件EX1012c.m:functionc,ceq=Ex1012c(x)ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75在Matlab中實(shí)現(xiàn):x0=4;5;6;lb=zeros(3,1);x,fval,exitflag,output,lambda=fmincon(-x(1)*x(2)*x(3),x0,lb,Ex1012c)Warning:Large-scale(trustregion)methoddoesn
44、otcurrentlysolvethistypeofproblem,switchingtomedium-scale(linesearch).Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:1x=5.00005.00005.0000fval=-125.0000exitflag=1output=iterations:7funcCount:38stepsize:1a
45、lgorithm:medium-scale:SQP,Quasi-Newton,line-searchfirstorderopt:cgiterations:lambda=lower:3x1doubleupper:3x1doubleeqlin:0 x1doubleeqnonlin:2.5000ineqlin:0 x1doubleineqnonlin:0 x1double優(yōu)化結(jié)果顯示過(guò)程成功收斂,搜索方向小于兩倍options.TolX,最大違約值小于options.TolCon,主動(dòng)約束為1個(gè)。問(wèn)題的解為x(1)=x(2)=x(3)=5.0000m,最大體積為125.0000m3。exitflag
46、=1,表示過(guò)程成功收斂于解x處。output輸出變量顯示了收斂過(guò)程中的迭代次數(shù)、目標(biāo)函數(shù)計(jì)算次數(shù)、步長(zhǎng)、算法等信息。lambda則包含模型信息。例10-13求解下列優(yōu)化問(wèn)題:min2x2+2x2一2xx一4x一6x121212一x一5xn512一2x2+xn0120 x,0 x0=0;0.75;A=15;b=5;lb=zeros(2,1);x,fval,exitflag,output,lambda=fmincon(2*x(l)A2+2*x(2)A2-2*x(1)*x(2)-4*x(1)-6*x(2),x0,A,b,lb,Ex1013c)Warning:Large-scale(trustregi
47、on)methoddoesnotcurrentlysolvethistypeofproblem,switchingtomedium-scale(linesearch).Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:34x=0.65890.8682fval=-6.6131exitflag=1output=iterations:6funcCount:27step
48、size:1algorithm:medium-scale:SQP,Quasi-Newton,line-searchfirstorderopt:cgiterations:lambda=lower:2x1doubleupper:2x1doubleeqlin:0 x1doubleeqnonlin:0 x1doubleineqlin:0.9419ineqnonlin:0.8192問(wèn)題的解為x=0.6589,x=0.8682,最小值為-6.6131。例10-14求解下列優(yōu)化問(wèn)題:min丄(x-1)33x+2x0=0;A=-1;b=-2;x,fval=fmincon(1/3*(x-1)A3,x0,A,b)
49、Warning:Large-scale(trustregion)methoddoesnotcurrentlysolvethistypeofproblem,switchingtomedium-scale(linesearch).InE:matlab6p1toolboxoptimfmincon.matline213Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:1
50、x=2fval=0.333310.3目標(biāo)規(guī)劃前面介紹的最優(yōu)化方法只有一個(gè)目標(biāo)函數(shù),是單目標(biāo)最優(yōu)化方法。但是,在許多實(shí)際工程問(wèn)題中,往往希望多個(gè)指標(biāo)都達(dá)到最優(yōu)值,所以它有多個(gè)目標(biāo)函數(shù)。這種問(wèn)題稱(chēng)為多目標(biāo)最優(yōu)化問(wèn)題。多目標(biāo)最優(yōu)化問(wèn)題的數(shù)學(xué)模型為minF(x)xwRnG(x)=0i=1,2,mi1G(x)0i=m+1,m+2,mi11xxxiu其中F(x)為目標(biāo)函數(shù)向量。此優(yōu)化問(wèn)題在Matlab中主要由函數(shù)fgoalattain來(lái)實(shí)現(xiàn)。此問(wèn)題在控制系統(tǒng)中有廣泛的應(yīng)用。函數(shù):fgoalattain功能:求解多目標(biāo)達(dá)到問(wèn)題。數(shù)學(xué)模型:minimizeyx,yF(x)一weight-ygoalc(x)0c
51、eq(x)=0A-xbAeq-x=beqlbxub其中x,weight,goal,b,beq,lb和ub為向量,A和Aeq為矩陣,c(x),ceq(x)和F(x)為函數(shù),返回向量。F(x),c(x)和ceq(x)可以是非線(xiàn)性函數(shù)。格式:x=fgoalattain(fun,x0,goal,weight) x x=fgoalattain(fun,x0,goal,weight,A,b)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x=fgoalattain
52、(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,.)x,fval=fgoalattain(.)x,fval,attainfactor=fgoalattain(.)x,fval,attainfactor,exitflag=fgoalattain(.)x,fval,attainf
53、actor,exitflag,output=fgoalattain(.)x,fval,attainfactor,exitflag,output,lambda=fgoalattain(.)說(shuō)明:fgoalattain求解多目標(biāo)達(dá)到問(wèn)題。x=fgoalattain(fun,x0,goal,weight)試圖通過(guò)變化x來(lái)使目標(biāo)函數(shù)fun達(dá)到goal指定的目標(biāo)。初值為x0,weight參數(shù)指定權(quán)重。x=fgoalattain(fun,x0,goal,weight,A,b)求解目標(biāo)達(dá)到問(wèn)題,約束條件為線(xiàn)性不等式A*x=b。x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,
54、beq)求解目標(biāo)達(dá)到問(wèn)題,除提供上面的線(xiàn)性不等式外,還提供線(xiàn)性等式Aeq*x=beq。當(dāng)沒(méi)有不等式存在時(shí),設(shè)置A=和b=。x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)為設(shè)計(jì)變量x定義下界lb和上界ub集合,這樣始終有l(wèi)b=x=ub。x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)將目標(biāo)達(dá)到問(wèn)題歸結(jié)為nonIcon參數(shù)定義的非線(xiàn)性不等式c(x)或非線(xiàn)性等式ceq(x)。fgoalattain優(yōu)化的約束條件為c(x)goal=2012;weight=2012;x0=25;
55、A=10;01;-1-1;b=567;b=56-7;lb=zeros(2,1);x,fval,attainfactor,exitflag=fgoalattain(Ex1015,x0,goal,weight,A,b,lb,)Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:567x=2.91674.0833fval=26.250015.7500attainfact
56、or=0.3125exitflag=1故工廠每月生產(chǎn)產(chǎn)品A為2.9167噸,B為4.0833噸。設(shè)備投資費(fèi)和公害損失費(fèi)的目標(biāo)值分別為26.250萬(wàn)元和15.750萬(wàn)元。達(dá)到因子為0.3125,計(jì)算收斂。例10-16某工廠因生產(chǎn)需要欲采購(gòu)一種原材料,市場(chǎng)上的這種原料有兩個(gè)等級(jí),甲級(jí)單價(jià)2元/kg,乙級(jí)單價(jià)1元/kg。要求所花總費(fèi)用不超過(guò)200元,購(gòu)得原料總量不少于100kg,其中甲級(jí)原料不少于50kg,問(wèn)如何確定最好的采購(gòu)方案。解:設(shè)X和x2分別為采購(gòu)甲級(jí)和乙級(jí)原料的數(shù)量(kg),要求采購(gòu)總費(fèi)用盡量少,采購(gòu)總量盡量多,采購(gòu)甲級(jí)原料盡量多。由題意建立下面的數(shù)學(xué)模型:minz=2X+X11maXz2
57、=X+X12maXz=X312x+xW20012x+x$10012x$501x,x$012需要編寫(xiě)目標(biāo)函數(shù)的M文件Ex1016.m,返回目標(biāo)計(jì)算值:functionf=Ex1016(x)f(1)=2*x(1)+x(2);f(2)=-x(1)-x(2);f(3)=-x(1);給定目標(biāo),權(quán)重按目標(biāo)比例確定,給出初值,在Matlab中實(shí)現(xiàn):goal=200-100-50;weight=200-100-50;x0=5050;A=21;-1-1;-10;b=200-100-50;lb=zeros(2,1);x,fval,attainfactor,exitflag=fgoalattain(Ex1016,x
58、0,goal,weight,A,b,lb,)Optimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:47x=5050fval=150-100-50attainfactor=0exitflag=1所以,最好的采購(gòu)方案是采購(gòu)甲級(jí)原料和乙級(jí)原料各50kg。此時(shí)采購(gòu)總費(fèi)用為150元,總重量為100kg,甲級(jí)原料總重量為50kg。例10-17考慮有不同方程的線(xiàn)性系統(tǒng):現(xiàn)在設(shè)計(jì)了
59、一個(gè)輸出反饋控制器K,用于生成閉路系統(tǒng)。x=(A+BKC)x+Bu該閉路系統(tǒng)的特征值由矩陣A,B,C和K用命令eig(A+B*K*C)算得。閉路特征值必須位于復(fù)平面的實(shí)數(shù)軸上,位于點(diǎn)-5,-3,-1的左側(cè)。為了使輸入不至于過(guò)飽和,K中的任何一個(gè)元素不得大于4或小于-4。該系統(tǒng)是一個(gè)二輸入、二輸出的開(kāi)路不穩(wěn)定系統(tǒng),有狀態(tài)空間矩陣:-0.500一_10_j000-210B=-22C=_00101-201A=設(shè)計(jì)K,使閉路系統(tǒng)的特征值盡可能與目標(biāo)值匹配。解:閉路特征值的目標(biāo)值由下式初始化:goal=-5-3-1為了保證活動(dòng)對(duì)象超過(guò)或低于的比例相當(dāng),將權(quán)重函數(shù)設(shè)置為abs(goal)。初始化控制器,令
60、K=-1,-1;-1,-1,首先編寫(xiě)M文件Ex1017.m:functionF=Ex1017(K,A,B,C)F=sort(eig(A+B*K*C);%評(píng)價(jià)對(duì)象在Matlab中實(shí)現(xiàn):goal=-5-3-1;%為特征值設(shè)置目標(biāo)值A(chǔ)=-0.500;0-210;01-2;B=10;-22;01;%初始化控制器矩陣%設(shè)置相同比例的權(quán)重%設(shè)置控制器的下界%設(shè)置控制器的上界%設(shè)置顯示參數(shù)C=100;001;K0=-1-1;-1-1;weight=abs(goal);lb=-4*ones(size(K0);ub=4*ones(size(K0);options=optimset(Display,iter);K
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任心理健康與壓力管理的培訓(xùn)總結(jié)
- 公交掃惡除霸承諾書(shū)范本
- 2025-2030全球船用防火窗行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)運(yùn)動(dòng)刺激療法行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)矩形橋式起重機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球便攜式鼻腔沖洗器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球農(nóng)用氧化亞銅行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)鋼制螺旋錐齒輪行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)戶(hù)外電氣箱行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球軸承精密滾珠行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買(mǎi)賣(mài)合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專(zhuān)題一-微專(zhuān)題10-同構(gòu)函數(shù)問(wèn)題-專(zhuān)項(xiàng)訓(xùn)練【含答案】
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2024-2030年中國(guó)烘焙食品行業(yè)運(yùn)營(yíng)效益及營(yíng)銷(xiāo)前景預(yù)測(cè)報(bào)告
- 2025年上半年水利部長(zhǎng)江水利委員會(huì)事業(yè)單位招聘68人(湖北武漢)重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 寧德時(shí)代筆試題庫(kù)
- 五年級(jí)下冊(cè)北京版英語(yǔ)單詞
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 新課標(biāo)I、Ⅱ卷 (2024-2020) 近五年高考英語(yǔ)真題滿(mǎn)分作文
- 浙江省嘉興市2023-2024學(xué)年六年級(jí)(上)期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論