用matlab求解非線性優(yōu)化問題

用matlab求解非線性優(yōu)化問題

ID:6721456

大?。?6.50 KB

頁數(shù):6頁

時(shí)間:2018-01-23

用matlab求解非線性優(yōu)化問題_第1頁
用matlab求解非線性優(yōu)化問題_第2頁
用matlab求解非線性優(yōu)化問題_第3頁
用matlab求解非線性優(yōu)化問題_第4頁
用matlab求解非線性優(yōu)化問題_第5頁
資源描述:

《用matlab求解非線性優(yōu)化問題》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、實(shí)驗(yàn)四用MATLAB求解非線性優(yōu)化問題一、實(shí)驗(yàn)?zāi)康模毫私釳atlab的優(yōu)化工具箱,利用Matlab求解非線性優(yōu)化問題。二、相關(guān)知識非線性優(yōu)化包括相當(dāng)豐富的內(nèi)容,我們這里就Matlab提供的一些函數(shù)來介紹相關(guān)函數(shù)的用法及其所能解決的問題。(一)非線性一元函數(shù)的最小值Matlab命令為fminbnd(),其使用格式為:X=fminbnd(fun,x1,x2)[X,fval,exitflag,output]=fminbnd(fun,x1,x2)其中:fun為目標(biāo)函數(shù),x1,x2為變量得邊界約束,即x1≤x

2、≤x2,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)化所采用的算法。例1:求函數(shù)在區(qū)間的最小值和相應(yīng)的值。解決此問題的Matlab程序?yàn)椋篶learfun='(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x)

3、)'ezplot(fun,[-2,2])[X,fval,exitflag,output]=fminbnd(fun,-2,2)結(jié)果為:X=0.2176fval=-1.1312exitflag=1output=iterations:13funcCount:13algorithm:'goldensectionsearch,parabolicinterpolation'(二)無約束非線性多元變量的優(yōu)化這里我們介紹兩個(gè)命令:fminsearch()和fminunc(),前者適合處理階次低但是間斷點(diǎn)多的函數(shù),后

4、者則對于高階連續(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=1表示優(yōu)化結(jié)果收斂,exitflag=0表示超過了最大迭代次數(shù)。返回值output有3個(gè)分量,其中iterations是優(yōu)化過程中迭代次數(shù),funcCount是代入函數(shù)值的次數(shù),algo

5、rithm是優(yōu)化所采用的算法。Options是一個(gè)結(jié)構(gòu),里面有控制優(yōu)化過程的各種參數(shù),參考o(jì)ptimset()命令來設(shè)置,一般情況下我們不必改動(dòng)它,即使用缺省設(shè)置就可以了。例2:求函數(shù)的最小值以及最小值點(diǎn)。完成該計(jì)算的Matlab程序如下:clearfun1='sin(x)+cos(y)'fun2='sin(x(1))+cos(x(2))'ezmesh(fun1)[X,fval]=fminsearch(fun2,[0,0])X=-1.57083.1416fval=-2.0000其中語句ezmesh(

6、)是為了畫出函數(shù)的圖形,注意這里fun1和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ù)的最小值

7、。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

8、)Step-sizeDirectionalderivative1210.2-10280.3694710.134277-0.02033140.1544190.459778-0.06964200.1347040.746874-2.28e-0055260.1329610.63991-1.1e-0076320.1329610.897232-7.32e-009Optimizationterminatedsuccessfully:Currentsearchdirectionisa

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。