資源描述:
《MATLAB數(shù)學(xué)手冊(cè)教程_第5章_優(yōu)化問題.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、MATLAB6.0數(shù)學(xué)手冊(cè)第5章優(yōu)化問題5.1線性規(guī)劃問題線性規(guī)劃問題是目標(biāo)函數(shù)和約束條件均為線性函數(shù)的問題,MATLAB6.0解決的線性規(guī)劃問題的標(biāo)準(zhǔn)形式為:nminf¢xx?Rsub.to:A×x£bAeq×x=beqlb£x£ub其中f、x、b、beq、lb、ub為向量,A、Aeq為矩陣。其它形式的線性規(guī)劃問題都可經(jīng)過適當(dāng)變換化為此標(biāo)準(zhǔn)形式。在MATLAB6.0版中,線性規(guī)劃問題(LinearProgramming)已用函數(shù)linprog取代了MATLAB5.x版中的lp函數(shù)。當(dāng)然,由于版本的向下
2、兼容性,一般說來(lái),低版本中的函數(shù)在6.0版中仍可使用。函數(shù)linprog格式x=linprog(f,A,b)%求minf'*xsub.toA×x£b線性規(guī)劃的最優(yōu)解。x=linprog(f,A,b,Aeq,beq)%等式約束Aeq×x=beq,若沒有不等式約束A×x£b,則A=[],b=[]。x=linprog(f,A,b,Aeq,beq,lb,ub)%指定x的范圍lb£x£ub,若沒有等式約束Aeq×x=beq,則Aeq=[],beq=[]x=linprog(f,A,b,Aeq,beq,lb,ub,x
3、0)%設(shè)置初值x0x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options為指定的優(yōu)化參數(shù)[x,fval]=linprog(…)%返回目標(biāo)函數(shù)最優(yōu)值,即fval=f'*x。[x,lambda,exitflag]=linprog(…)%lambda為解x的Lagrange乘子。[x,lambda,fval,exitflag]=linprog(…)%exitflag為終止迭代的錯(cuò)誤條件。[x,fval,lambda,exitflag,output]=linprog(
4、…)%output為關(guān)于優(yōu)化的一些信息說明若exitflag>0表示函數(shù)收斂于解x,exitflag=0表示超過函數(shù)估值或迭代的最大數(shù)字,exitflag<0表示函數(shù)不收斂于解x;若lambda=lower表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式約束,lambda=eqlin表示等式約束,lambda中的非0元素表示對(duì)應(yīng)的約束是有效約束;output=iterations表示迭代次數(shù),output=algorithm表示使用的運(yùn)算規(guī)則,output=cg
5、iterations表示PCG迭代次數(shù)。例5-1求下面的優(yōu)化問題min-5x1-4x2-6x3sub.tox1-x2+x3£203x1+2x2+4x3£42176第5章優(yōu)化問題3x1+2x2£300£x1,0£x2,0£x3解:>>f=[-5;-4;-6];>>A=[1-11;324;320];>>b=[20;42;30];>>lb=zeros(3,1);>>[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)結(jié)果為:x=%最優(yōu)解0.000015
6、.00003.0000fval=%最優(yōu)值-78.0000exitflag=%收斂1output=iterations:6%迭代次數(shù)cgiterations:0algorithm:'lipsol'%所使用規(guī)則lambda=ineqlin:[3x1double]eqlin:[0x1double]upper:[3x1double]lower:[3x1double]>>lambda.ineqlinans=0.00001.50000.5000>>lambda.lowerans=1.00000.00000.0000
7、表明:不等約束條件2和3以及第1個(gè)下界是有效的5.2foptions函數(shù)對(duì)于優(yōu)化控制,MATLAB提供了18個(gè)參數(shù),這些參數(shù)的具體意義為:options(1)-參數(shù)顯示控制(默認(rèn)值為0)。等于1時(shí)顯示一些結(jié)果。options(2)-優(yōu)化點(diǎn)x的精度控制(默認(rèn)值為1e-4)。options(3)-優(yōu)化函數(shù)F的精度控制(默認(rèn)值為1e-4)。options(4)-違反約束的結(jié)束標(biāo)準(zhǔn)(默認(rèn)值為1e-6)。options(5)-算法選擇,不常用。177MATLAB6.0數(shù)學(xué)手冊(cè)options(6)-優(yōu)化程序方法選擇
8、,為0則為BFCG算法,為1則采用DFP算法。options(7)-線性插值算法選擇,為0則為混合插值算法,為1則采用立方插算法。options(8)-函數(shù)值顯示(目標(biāo)—達(dá)到問題中的Lambda)options(9)-若需要檢測(cè)用戶提供的梯度,則設(shè)為1。options(10)-函數(shù)和約束估值的數(shù)目。options(11)-函數(shù)梯度估值的個(gè)數(shù)。options(12)-約束估值的數(shù)目。options(13)-等約束條件的個(gè)數(shù)。options(1