




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)四用MATLAB求解非線性優(yōu)化問題一、實(shí)驗(yàn)?zāi)康模毫私釳atlab的優(yōu)化工具箱,利用Matlab求解非線性優(yōu)化問題。二、相關(guān)知識(shí)非線性優(yōu)化包括相當(dāng)豐富的內(nèi)容,我們這里就Matlab提供的一些函數(shù)來(lái)介紹相關(guān)函數(shù)的用法及其所能解決的問題。非線性一元函數(shù)的最小值Matlab命令為fminbnd(),其使用格式為:X=fminbnd(fun,x1,x2)[X,fval,exitflag,output]=fminbnd(fun,x1,x2)其中:fun為目標(biāo)函數(shù),xl,x2為變量得邊界約束,即xlWxWx2,X為返回得滿足fun取得最小值的x的值,而fval則為此時(shí)的目標(biāo)函數(shù)值。exitflag>0表示計(jì)算收斂,exitflag=0表示超過了最大的迭代次數(shù),exitflag<0表示計(jì)算不收斂,返回值output有3個(gè)分量,其中iterations是優(yōu)化過程中迭代次數(shù),funcCount是代入函數(shù)值的次數(shù),algorithm是優(yōu)化所采用的算法。X5+X3+X2-1f(x)= 例1:求函數(shù) ex2+sin(-x)在區(qū)間[-2,2]的最小值和相應(yīng)的x值。解決此問題的Matlab程序?yàn)椋篶learfun='(xA5+xA3+xA2-1)/(exp(xA2)+sin(-x))'ezplot(fun,[-2,2])[X,fval,exitflag,output]=fminbnd(fun,-2,2)結(jié)果為:X=0.2176fval=-1.1312exitflag=1output=iterations:13funcCount:13algorithm:'goldensectionsearch,parabolicinterpolation'無(wú)約束非線性多元變量的優(yōu)化這里我們介紹兩個(gè)命令:fminsearch()和fminunc(),前者適合處理階次低但是間斷點(diǎn)多的函數(shù),后者則對(duì)于高階連續(xù)的函數(shù)比較有效。命令fminsearch()的格式為:X=fminsearch(fun,X0)[X,fval,exitflag,output]=fminsearch(fun,X0,options)該命令求解目標(biāo)函數(shù)fun的最小值和相應(yīng)的x值,X0為x的初始值,fval為返回的函數(shù)值,exitflag=l表示優(yōu)化結(jié)果收斂,exitflag=0表示超過了最大迭代次數(shù)。返回值output有3個(gè)分量,其中iterations是優(yōu)化過程中迭代次數(shù),funcCount是代入函數(shù)值的次數(shù),algorithm是優(yōu)化所采用的算法。Options是一個(gè)結(jié)構(gòu),里面有控制優(yōu)化過程的各種參數(shù),參考o(jì)ptimset()命令來(lái)設(shè)置,一般情況下我們不必改動(dòng)它,即使用缺省設(shè)置就可以了。例2:求函數(shù)f(x,y)二sin2x+cosy的最小值以及最小值點(diǎn)。完成該計(jì)算的Matlab程序如下:clearfunl='sin(x)+cos(y)'fun2='sin(x(l))+cos(x(2))'ezmesh(funl)[X,fval]=fminsearch(fun2,[0,0])X=-l.5708 3.l4l6fval=-2.0000其中語(yǔ)句ezmesh()是為了畫出函數(shù)的圖形,注意這里funl和fun2的不同,考慮如果用相同的是否可行。命令fminunc()的格式為:X=fminunc(fun,X0)[X,fval,exitflag,output,grad,hessian]=fminunc(fun,X0,options)命令fminunc()通過計(jì)算尋找多變量目標(biāo)函數(shù)fun的最小值,X0為優(yōu)化的初始值,X為返回的變量的值,grad返回解點(diǎn)的梯度,hessian返回解點(diǎn)的赫森矩陣。其它參數(shù)的意義和命令fminsearch()相同。例3:求函數(shù)/(x1,x2)二exi(2x1+3x+2X1x2+3x2+1)的最小值。Matlab程序?yàn)?0clearfun='exp(x(1))*(2*x(1)人2+3*x(2)人2+2*x(1)*x(2)+3*x(2)+1)';x0=[0,0];options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8);[x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0,options)運(yùn)行結(jié)果為:IterationFunc-countf(x)Step-sizeDirectionalderivative1210.2-10280.3694710.134277-0.02033l40.l544l90.459778-0.06964200.l347040.746874-2.28e-0055260.l3296l0.6399l-l.le-0076320.l3296l0.897232-7.32e-009Optimizationterminatedsuccessfully:Currentsearchdirectionisadescentdirection,andmagnitudeofdirectionalderivativeinsearchdirectionlessthan2*options.TolFunx=0.2695-0.5898fval=0.1330exitflag=1output=iterations:6funcCount:33stepsize:1.0000firstorderopt:1.6892e-005algorithm:'medium-scale:Quasi-Newtonlinesearch'grad=1.0e-004*(-0.1689,0.0074)hessian=5.11102.64372.64378.0539本例的程序?qū)?shù)options進(jìn)行了設(shè)置,'largescale','off,關(guān)閉了大規(guī)模方式,'display',用來(lái)控制計(jì)算過程的顯示,'iter'表示顯示優(yōu)化過程的每次計(jì)算結(jié)果,'off表示不顯示所有輸出,’final'僅輸出最后結(jié)果,'tolx'用來(lái)控制輸入變量x的允許誤差精度,本利設(shè)置為le-8,'tolfun'是控制目標(biāo)函數(shù)的允許誤差精度,缺省值是le-4,本例為le-8。有約束非線性多元變量的優(yōu)化由線性規(guī)劃我們看到優(yōu)化要處理各種約束條件,在非線性規(guī)劃中問題就更加復(fù)雜,除了線性規(guī)劃中的那些約束外,還要增加非線性約束。Matlab的命令函數(shù)fmincon()可以處理有約束的非線性多元函數(shù)的優(yōu)化問題。有約束多變量?jī)?yōu)化問題的數(shù)學(xué)模型為:求一組變量xl,x2,,xn,滿足在給定的約束條件下,使目標(biāo)函數(shù)f(x「x2, ,xn)最小。目標(biāo)函數(shù)一般為非線性函數(shù),約束條件分為線性不等式約束、線性等式約束、變量邊界約束和非線性約束幾部分。除非線性約束外,表示方法與線性規(guī)劃相同。函數(shù)fmincon()的具體格式為:X=fmincon(fun,x0,A,b)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub,nonlcon,options)[X,fval,exitflag,output]=fmincon(fUn,xO,...)[X,fval,exitflag,output,lambda,grad,Hessian]=fmincon(fUn,xO,...)參數(shù)中fun為目標(biāo)函數(shù),x0為變量的初始值,x為返回的滿足要求的變量的值。A和b表示線性不等式約束,Aeq,beq表示線性等式約束,Lb和Ub分別為變量的下界和上界約束,nonlcon表示非線性約束條件,options為控制優(yōu)化過程的優(yōu)化參數(shù)向量。返回值fval為目標(biāo)函數(shù)。exitflag>0表示優(yōu)化結(jié)果收斂于解,exitflag=0表示優(yōu)化超過了函數(shù)值的計(jì)算次數(shù),exitflag<0表示優(yōu)化不收斂。lambda是拉格朗日乘子,顯示那個(gè)約束條件有效。grad表示梯度,hessian表示漢森矩陣。例4:求[X],X2],使得目標(biāo)函數(shù)f(X],J)二3(4叮+2X;+牡"+2X2+1)在約束條件1.5+X1*x-X1-x2<0,-X1*x2<10下取得最小值。我們?cè)O(shè)計(jì)的程序如下:先把目標(biāo)函數(shù)和約束條件分別編寫成獨(dú)立的m文件,注意,這樣的m文件必須用function開頭,并且文件名一定要和函數(shù)名一致。目標(biāo)函數(shù)的文件為:functionf=objfun(x)f=exp(x(l))*(4*x(l)人2+2*x(2)人2+4*x(l)*x(2)+2*x(2)+l);約束條件的文件為:function[c,ceq]=confun(x)c=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];ceq=[];接著,編寫完成優(yōu)化的程序如下:clearx0=[-11];options=optimset('largescale','off','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],[],[],@confun,options)運(yùn)行結(jié)果為:maxDirectionalIterF-countf(x)constraintStep-sizederivativeProcedure131.83940.510.0486271.85127-0.091971-0.556Hessianmodifiedtwice3110.3001679.3310.174150.5298340.92091-0.9655200.186965-1.5170.5-0.1686240.07290850.33131-0.05187280.0353322-0.033031-0.01428320.02355660.0031841-6.22e-0069360.02355049.032e-00811.76e-010HessianmodifiedOptimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:12x=-9.54741.0474fval=0.0236exitflag=1output=iterations:9funcCount:38stepsize:1algorithm:'medium-scale:SQP,Quasi-Newton,line-search'firstorderopt:[]cgiterations:[]例5:在上例的基礎(chǔ)上,再加上邊界約束條件,即加上X1工0,x2工0,則我們僅需要修改上面的第三個(gè)程序?yàn)椋篶learx0=[-11];lb=[0,0];ub=[];options=optimset('largescale','off','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options)現(xiàn)在得到的結(jié)果為:maxDirectionalIterF-countf(x)constraintStep-sizederivativeProcedure135.00090.513278.50041.355e-0201-0.0004
3118.53.04e-01312.43e-012HessianmodifiedOptimizationterminatedsuccessfully:Searchdirectionlessthan2*options.TolXandmaximumconstraintviolationislessthanoptions.TolConActiveConstraints:13x=01.5000fval=8.5000exitflag=1output=iterations:3funcCount:13stepsize:1algorithm:'medium-scale:SQP,Quasi-Newton,line-search'firstorderopt:[]cgiterations:[]三、實(shí)驗(yàn)內(nèi)容1.將例1中x的范圍改為[-5,5]你將得到怎
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 眼鏡行業(yè)視力問題免責(zé)協(xié)議
- 杭州市房屋裝修合同
- 掛靠物業(yè)公司合伙協(xié)議書
- 工程合同付款方式
- 泥工家裝裝修合同
- 租金遞增式商鋪?zhàn)赓U合同
- 垃圾焚燒發(fā)電項(xiàng)目投資合同
- 場(chǎng)地租賃協(xié)議注意事項(xiàng)
- 質(zhì)押擔(dān)保借款合同
- 優(yōu)化員工績(jī)效管理系統(tǒng)的具體實(shí)施方案
- 國(guó)際市場(chǎng)營(yíng)銷(高職)教學(xué)教案
- 消防設(shè)施維保服務(wù)投標(biāo)方案
- 城市軌道交通車輛電氣控制 課件 趙麗 第1-4章 城市軌道交通車輛電氣控制系統(tǒng)構(gòu)成、城市軌道交通車輛輔助供電系統(tǒng)、電動(dòng)列車常用電氣控制系統(tǒng)及其控制方法
- (2024年)新版黃金基礎(chǔ)知識(shí)培訓(xùn)課件
- 圖圖身體部位-課件
- 資產(chǎn)拆除報(bào)廢申請(qǐng)表
- 《社區(qū)康復(fù)》課件-第九章 言語(yǔ)障礙患者的社區(qū)康復(fù)實(shí)踐
- 萬(wàn)千教育學(xué)前讓幼兒都愛學(xué)習(xí):幼兒園高質(zhì)量學(xué)習(xí)活動(dòng)設(shè)計(jì)與組織
- 親歷電子病歷系統(tǒng)分級(jí)評(píng)價(jià)四級(jí)參評(píng)紀(jì)實(shí)-2022醫(yī)院信息化
- 情景交際-2022年中考英語(yǔ)真題匯編(全國(guó)通用)
- 2024年長(zhǎng)沙職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論