最優(yōu)化問(wèn)題的matlab求解課件_第1頁(yè)
最優(yōu)化問(wèn)題的matlab求解課件_第2頁(yè)
最優(yōu)化問(wèn)題的matlab求解課件_第3頁(yè)
最優(yōu)化問(wèn)題的matlab求解課件_第4頁(yè)
最優(yōu)化問(wèn)題的matlab求解課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

最優(yōu)化問(wèn)題的Matlab求解數(shù)學(xué)規(guī)劃的一般模型

x~決策變量f(x)~目標(biāo)函數(shù)gi(x)0~約束條件1、解析解法和圖解法無(wú)約束最優(yōu)化例:用解析法求解以下函數(shù)的最小值>>symst;

y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5;ezplot(y,[04])y1=diff(y);ezplot(y1,[04])t0=solve(y1)y2=diff(y1);b=subs(y2,t,t0)2、數(shù)值解法命令形式2:x=fminunc(fun,x0)%簡(jiǎn)單形式[x,f,flag,out]=fminunc(fun,x0,opt,p1,p2,…)%一般形式功能:與fsolve()中的參數(shù)控制形式類似。命令形式1:x=fminsearch(fun,x0)%簡(jiǎn)單形式[x,f,flag,out]=fminsearch(fun,x0,opt,p1,p2,…)%一般形式功能:與fsolve()中的參數(shù)控制形式類似。注:若函數(shù)是多元的,要表達(dá)成向量的形式。例:>>f=inline('(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-(1)*x(2))','x');x0=[0,0];ff=optimset;ff.Display='iter';x=fminsearch(f,x0,ff)>>x=fminunc(f,x0,ff)基本用法:x=fminunc(@fun,x0)x=fminunc(@fun,x0,options,P1,P2,...)fun.m~f(x)的m文件名x0~初始點(diǎn);x

~最優(yōu)解P1,P2,…~傳給fun的參數(shù)中間輸入項(xiàng)缺省用[]占據(jù)位置functiony=fun071(x,a,b)y=x(1)^2/a+x(2)^2/b;x0=[1,1];a=2;b=2;x=fminunc(@fun071,x0,[],a,b)X=(0,0)3、全局最優(yōu)解和局部最優(yōu)解例:>>f=inline('exp(-2*t)*cos(10*t)+exp(-3*(t+2))*sin(2*t)','t');t0=1;[t1,f1]=fminsearch(f,t0)>>t0=0.1;[t2,f2]=fminsearch(f,t0)t2=0.29445312500000,f2=-0.54362463738706目標(biāo)函數(shù):

約束條件:約束最優(yōu)化1、線性規(guī)劃目標(biāo)函數(shù):

約束條件:其中:價(jià)值向量

資源向量

決策變量向量

目標(biāo)函數(shù):

約束條件:命令形式2:

[X,f,flag,c]=linprog(C,A,b,Aeq,Beq,xm,xM,x0,opt)功能:各個(gè)參數(shù)的解釋如前,若各個(gè)約束條件不存在,則用空矩陣來(lái)代替。例:>>c=[-2,-1,-4,-3,-1];A=[02142;345-1-1];b=[54;62];Ae=[];Be=[];xm=[0,0,3.32,0.678,2.57];ff=optimset;ff.LargeScale=‘off’;%是否采用大規(guī)模算法ff.TolX=1e-15;%解的控制精度f(wàn)f.Display=‘iter’;%顯示信息的級(jí)別[X,f,flag,c]=linprog(c,A,b,Ae,Be,xm,[],[],ff)目標(biāo)函數(shù):

約束條件:2、二次規(guī)劃命令形式:

[X,f,flag,c]=quadprog(H,C,A,b,Aeq,Beq,xm,xM,x0,opt)功能:各個(gè)參數(shù)的解釋如前,若各個(gè)約束條件不存在,則用空矩陣來(lái)代替。例:求解>>H=[4,-4;-4,8];C=[-6,-3];A=[1,1;4,1];b=[3;9];Ae=[];Be=[];ff=optimset;ff.LargeScale='off';ff.TolX=1e-15;ff.Display='iter';[X,f,flag,c]=quadprog(H,C,A,b,Ae,Be,zeros(2,1),ff)

定義

如果目標(biāo)函數(shù)或約束條件中至少有一個(gè)是非線性函數(shù)時(shí)的最優(yōu)化問(wèn)題就叫做非線性規(guī)劃問(wèn)題.

一般形式:

(1)其中,是定義在En上的實(shí)值函數(shù),簡(jiǎn)記:

其它情況:

求目標(biāo)函數(shù)的最大值或約束條件為大于等于零的情況,都可通過(guò)取其相反數(shù)化為上述一般形式.非線性規(guī)劃

其中X為n維變?cè)蛄?,G(X)與Ceq(X)均為非線性函數(shù)組成的向量,其它變量的含義與線性規(guī)劃、二次規(guī)劃中相同.(1)間接法

(2)直接法

直接搜索法以梯度法為基礎(chǔ)的間接法非線性規(guī)劃的求解算法間接法

在非線性最優(yōu)化問(wèn)題當(dāng)中,如果目標(biāo)函數(shù)能以解析函數(shù)表示,可行域由不等式約束確定,則可以利用目標(biāo)函數(shù)和可行域的已知性質(zhì),在理論上推導(dǎo)出目標(biāo)函數(shù)為最優(yōu)值的必要條件,這種方法就稱為間接法(也稱為解析法)。一般要用到目標(biāo)函數(shù)的導(dǎo)數(shù)。直接法

直接法是一種數(shù)值方法。這種方法的基本思想是迭代,通過(guò)迭代產(chǎn)生一個(gè)點(diǎn)序列{X(k)},使之逐步接近最優(yōu)點(diǎn)。只用到目標(biāo)函數(shù)。如黃金分割法、Fibonacci、隨機(jī)搜索法。迭代法一般步驟注意:數(shù)值求解最優(yōu)化問(wèn)題的計(jì)算效率取決于確定搜索方向P

(k)和步長(zhǎng)的效率。最速下降法(steepestdescentmethod)由法國(guó)數(shù)學(xué)家Cauchy于1847年首先提出。在每次迭代中,沿最速下降方向(負(fù)梯度方向)進(jìn)行搜索,每步沿負(fù)梯度方向取最優(yōu)步長(zhǎng),因此這種方法稱為最優(yōu)梯度法。特點(diǎn):方法簡(jiǎn)單,只以一階梯度的信息確定下一步的搜索方向,收斂速度慢;越是接近極值點(diǎn),收斂越慢;它是其它許多無(wú)約束、有約束最優(yōu)化方法的基礎(chǔ)。該法一般用于最優(yōu)化開(kāi)始的幾步搜索。最速下降法算法:

1.首先建立M文件fun.m,定義目標(biāo)函數(shù)F(X):functionf=fun(X);f=F(X);用Matlab求解上述問(wèn)題,基本步驟分三步:Matlab求解步驟3.建立主程序.非線性規(guī)劃求解的函數(shù)是fmincon,命令的基本格式如下:

(1)x=fmincon(‘fun’,X0,A,b)

(2)x=fmincon(‘fun’,X0,A,b,Aeq,beq)

(3)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB)

(4)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’)(5)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options)

(6)[x,fval]=fmincon(...)

(7)[x,fval,exitflag]=fmincon(...)(8)[x,fval,exitflag,output]=fmincon(...)輸出極值點(diǎn)M文件迭代的初值參數(shù)說(shuō)明變量上下限輸入?yún)?shù)的幾點(diǎn)說(shuō)明模型中如果沒(méi)有A,b,Aeq,beq,VLB,VUB的限制,則以空矩陣[]作為參數(shù)傳入;nonlcon:如果包含非線性等式或不等式約束,則將這些函數(shù)編寫(xiě)一個(gè)Matlab函數(shù)

nonlcon就是定義這些函數(shù)的程序文件名;不等式約束G(x)<=0等式約束Ceq(x)=0.如果nonlcon=‘mycon’;則myfun.m定義如下function[G,Ceq]=mycon(x)

G=...

%計(jì)算非線性不等式約束在點(diǎn)x處的函數(shù)值Ceq=...

%計(jì)算非線性等式約束在點(diǎn)x處的函數(shù)值

對(duì)參數(shù)nonlcon的進(jìn)一步示例2個(gè)不等式約束,2個(gè)等式約束3個(gè)決策變量x1,x2,x3如果nonlcon以‘mycon1’作為參數(shù)值,則程序mycon1.m如下對(duì)照約束條件編寫(xiě)myfun1.mfunction[G,Ceq]=mycon1(x)G(1)=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-100G(2)=60-x(1)*x(1)+10*x(3)*x(3)Ceq(1)=x(1)+x(2)*x(2)+x(3)-80Ceq(2)=x(1)^3+x(2)*x(2)+x(3)-80注意:[1]fmincon函數(shù)提供了大型優(yōu)化算法和中型優(yōu)化算法。默認(rèn)時(shí),若在fun函數(shù)中提供了梯度(options參數(shù)的GradObj設(shè)置為’on’),并且只有上下界存在或只有等式約束,fmincon函數(shù)將選擇大型算法。當(dāng)既有等式約束又有梯度約束時(shí),使用中型算法。[2]fmincon函數(shù)可能會(huì)給出局部最優(yōu)解,這與初值X0的選取有關(guān)。1、寫(xiě)成標(biāo)準(zhǔn)形式:

s.t.

2x1+3x26s.tx1+4x25x1,x20例2、先建立M-文件fun3.m:

functionf=fun3(x);f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^23、再建立主程序youh2.m:

x0=[1;1];A=[23;14];b=[6;5];Aeq=[];beq=[];VLB=[0;0];VUB=[];[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB)4、運(yùn)算結(jié)果為:

x=0.76471.0588fval=-2.02941.先建立M文件fun4.m,定義目標(biāo)函數(shù):

functionf=fun4(x);f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);x1+x2=0s.t.1.5+x1x2-x1-x20-x1x2–10

0例2.再建立M文件mycon.m定義非線性約束:

function[g,ceq]=mycon(x)g=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];ceq=[];3.主程序?yàn)?x0=[-1;1];A=[];b=[];Aeq=[11];beq=0;vlb=[];vub=[];[x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon')3.運(yùn)算結(jié)果為:

x=-1.22501.2250fval=1.8951非負(fù)條件下線性最小二乘lsqnonneg

適合如下模型:

注意:約束只有非負(fù)約束語(yǔ)法:x=lsqnonneg(c,d)x=lsqnonneg(c,d,x0)x=lsqnonneg(c,d,x0,options)

語(yǔ)法:x=lsqlin(C,d,A,b)x=lsqlin(C,d,A,b,Aeq,beq)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)[x,resnorm]=lsqlin(...)[x,resnorm,residual]=lsqlin(...)[x,resnorm,residual,exitflag]=lsqlin(...)[x,resnorm,residual,exitflag,output]=lsqlin(...)[x,resnorm,residual,exitflag,output,lambda]=lsqlin(...)非線性最小二乘lsqnonlin

適合模型:語(yǔ)法:x=lsqnonlin(fun,x0)x=lsqnonlin(fun,x0,lb,ub)x=lsqnonlin(fun,x0,lb,ub,options)x=lsqnonlin(fun,x0,options,P1,P2,...)[x,resnorm]=lsqnonlin(...)[x,resnorm,residual]=lsqnonlin(...)[x,resnorm,residual,exitfla

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論