資源描述:
《第10章 matlab在最優(yōu)化問題中的應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第10章Matlab在最優(yōu)化問題中的應(yīng)用優(yōu)化理論是一門實踐性很強的學(xué)科,廣泛應(yīng)用于生產(chǎn)管理、軍事指揮和科學(xué)試驗等各種領(lǐng)域,Matlab優(yōu)化工具箱提供了對各種優(yōu)化問題的一個完整的解決方案。在數(shù)學(xué)上,所謂優(yōu)化問題,就是求解如下形式的最優(yōu)解:Minfun(x)Sub.to[C.E.][B.C.]其中fun(x)稱為目標函數(shù),“Sub.to”為“subjectto”的縮寫,由其引導(dǎo)的部分稱為約束條件。[C.E.]表示ConditionEquations,即條件方程,可為等式方程,也可為不等式方程。[B.C.
2、]表示BoundaryConditions,即邊界條件,用來約束自變量的求解域,以lb≤x≤ub的形式給出。當[C.E.]為空時,此優(yōu)化問題稱為自由優(yōu)化或無約束優(yōu)化問題;當[C.E.]不空時,稱為有約束優(yōu)化或強約束優(yōu)化問題。在優(yōu)化問題中,根據(jù)變量、目標函數(shù)和約束函數(shù)的不同,可以將問題大致分為:·線性優(yōu)化目標函數(shù)和約束函數(shù)均為線性函數(shù)?!ざ蝺?yōu)化目標函數(shù)為二次函數(shù),而約束條件為線性方程。線性優(yōu)化和二次優(yōu)化統(tǒng)稱為簡單優(yōu)化?!し蔷€性優(yōu)化目標函數(shù)為非二次的非線性函數(shù),或約束條件為非線性方程?!ざ嗄繕藘?yōu)化目標
3、函數(shù)并非一個時,稱為多目標優(yōu)化問題。本章將對以上幾類優(yōu)化問題在Matlab中的實現(xiàn)作比較詳細的講解。另外還將介紹兩個利用優(yōu)化方法解非線性方程的函數(shù)。通過本章的介紹,用戶可以不必掌握艱澀的各種優(yōu)化算法而輕易地解決一些常用的最優(yōu)化問題了。10.1線性規(guī)劃問題線性規(guī)劃問題即目標函數(shù)和約束條件均為線性函數(shù)的問題。其標準形式為:minC’xsub.ToAx=bx≥0其中C,b,0∈Rn,A∈Rmn,均為數(shù)值矩陣,x∈Rn。若目標函數(shù)為:maxC’x,則轉(zhuǎn)換成:min–C’x。標準形式的線性規(guī)劃問題簡稱為LP(
4、LinearProgramming)問題。其它形式的線性規(guī)劃問題經(jīng)過適當?shù)淖儞Q均可以化為此種標準形。線性規(guī)劃問題雖然簡單,但在工農(nóng)業(yè)及其他生產(chǎn)部門中應(yīng)用十分廣泛。在Matlab中,線性規(guī)劃問題由linprog函數(shù)求解。函數(shù):linprog%求解如下形式的線性規(guī)劃問題:suchthat其中f,x,b,beq,lb,ub為向量,A,Aeq為矩陣。格式:x=linprog(f,A,b)x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)153x=li
5、nprog(f,A,b,Aeq,beq,lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval]=linprog(...)[x,fval,exitflag]=linprog(...)[x,fval,exitflag,output]=linprog(...)[x,fval,exitflag,output,lambda]=linprog(...)說明:x=linprog(f,A,b)求解問題minf’*x,約束條件為A*x<=b。x=linpr
6、og(f,A,b,Aeq,beq)求解上面的問題,但增加等式約束,即Aeq*x=beq。若沒有不等式存在,則令A(yù)=[]、b=[]。x=linprog(f,A,b,Aeq,beq,lb,ub)定義設(shè)計變量x的下界lb和上界ub,使得x始終在該范圍內(nèi)。若沒有等式約束,令A(yù)eq=[]、beq=[]。x=linprog(f,A,b,Aeq,beq,lb,ub,x0)設(shè)置初值為x0。該選項只適用于中型問題,默認時大型算法將忽略初值。x=linprog(f,A,b,Aeq,beq,lb,ub,x0,option
7、s)用options指定的優(yōu)化參數(shù)進行最小化。[x,fval]=linprog(...)返回解x處的目標函數(shù)值fval。[x,fval,exitflag]=linprog(...)返回exitflag值,描述函數(shù)計算的退出條件。[x,fval,exitflag,output]=linprog(...)返回包含優(yōu)化信息的輸出變量output。[x,fval,exitflag,output,lambda]=linprog(...)將解x處的Lagrange乘子返回到lambda參數(shù)中。exitflag參
8、數(shù)描述退出條件:·>0表示目標函數(shù)收斂于解x處;·=0表示已經(jīng)達到函數(shù)評價或迭代的最大次數(shù);·<0表示目標函數(shù)不收斂。output參數(shù)該參數(shù)包含下列優(yōu)化信息:·output.iterations迭代次數(shù);·output.cgiterationsPCG迭代次數(shù)(只適用于大型規(guī)劃問題);·output.algorithm所采用的算法。lambda參數(shù)該參數(shù)是解x處的Lagrange乘子。它有以下一些屬性:·lambda.lower—lambda的下界;·lambda.up