matlab 黃金分割法_第1頁
matlab 黃金分割法_第2頁
matlab 黃金分割法_第3頁
matlab 黃金分割法_第4頁
matlab 黃金分割法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、黃金分割法 東南大學(xué)機(jī)械學(xué)院*一 黃金分割法基本思路黃金分割法適用于a,b區(qū)間上的任何單谷函數(shù)求極小值問題,對(duì)函數(shù)除要求“單谷”外不做其他要求,甚至可以不連續(xù)。因此,這種方法的適應(yīng)面非常廣。黃金分割法也是建立在區(qū)間消去法原理基礎(chǔ)上的試探方法,即在搜索區(qū)間a,b內(nèi)適當(dāng)插入兩點(diǎn)a1,a2,并計(jì)算其函數(shù)值。a1,a2將區(qū)間分成三段,應(yīng)用函數(shù)的單谷性質(zhì),通過函數(shù)值大小的比較,刪去其中一段,是搜索區(qū)間得以縮小。然后再在保留下來的區(qū)間上作同樣的處理,如此迭代下去,是搜索區(qū)間無限縮小,從而得到極小點(diǎn)的數(shù)值近似解。二 黃金分割法的基本原理一維搜索是解函數(shù)極小值的方法之一,其解法思想為沿某一已知方向求目標(biāo)函數(shù)的

2、極小值點(diǎn)。一維搜索的解法很多,這里主要采用黃金分割法(0.618法)。該方法用不變的區(qū)間縮短率0.618代替斐波那契法每次不同的縮短率,從而可以看成是斐波那契法的近似,實(shí)現(xiàn)起來比較容易,也易于人們所接受。黃金分割法是用于一元函數(shù)f(x)在給定初始區(qū)間a,b內(nèi)搜索極小點(diǎn)xmin的一種方法。它是優(yōu)化計(jì)算中的經(jīng)典算法,以算法簡單、收斂速度均勻、效果較好而著稱,是許多優(yōu)化算法的基礎(chǔ),但它只適用于一維區(qū)間上的凸函數(shù),即只在單峰區(qū)間內(nèi)才能進(jìn)行一維尋優(yōu),其收斂效率較低。其基本原理是:依照“去劣存優(yōu)”原則、對(duì)稱原則、以及等比收縮原則來逐步縮小搜索區(qū)間。具體步驟是:在區(qū)間a,b內(nèi)取點(diǎn):a1 ,a2 把a(bǔ),b分為

3、三段。 如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+0.618*(b-a); 如果f(a1)<f(a2) ,令b=a2,a2=a1,a1=b-0.618*(b-a);如果(b-a)/b和(y1-y2)/y2都大于收斂精度重新開始循環(huán)。因?yàn)閍,b為單峰區(qū)間,這樣每次可將搜索區(qū)間縮小0.618倍,處理后的區(qū)間都將包含極小點(diǎn)的區(qū)間縮小,然后在保留下來的區(qū)間上作同樣的處理,如此迭代下去,將使搜索區(qū)a,b逐步縮小,直到滿足預(yù)先給定的精度時(shí),即獲得一維優(yōu)化問題的近似最優(yōu)解。插入點(diǎn)原理圖如下:三 實(shí)驗(yàn)程序框圖四 程序運(yùn)行結(jié)果例如:f=x2+2*x,給定搜索區(qū)間-3,5,求此函數(shù)

4、的極小點(diǎn)。1. 首先運(yùn)行主程序:2.會(huì)提示你輸入各個(gè)變量的值:2. 輸完各個(gè)變量的值,以及所求函數(shù)后,再運(yùn)行 :xmin=golden(f,a,b,e)系統(tǒng)調(diào)用m文件的內(nèi)容,這時(shí)候matlab就會(huì)輸出函數(shù)的最優(yōu)值。即該函數(shù)的最小值點(diǎn)在x=-1,最小點(diǎn)的函數(shù)值fmin=-1,一共經(jīng)過了29次迭代。五 實(shí)驗(yàn)心得 通過此次實(shí)驗(yàn),加深了對(duì)黃金分割法的基本理論和算法框圖及步驟的全面理解,掌握了matlab的使用方法。此方法適用于一維函數(shù)求最小值的問題。原理比較簡單,稍微復(fù)雜一點(diǎn)的就是縮小區(qū)間的時(shí)候怎么進(jìn)行換名,另外一個(gè)難點(diǎn)就是如何用matlab來實(shí)現(xiàn),此次實(shí)驗(yàn)通過自學(xué)matlab的基本操作以及matla

5、b編程語言,最后完成了此次實(shí)驗(yàn)。 附錄matlab程序代碼主程序:syms x a b e; %定義變量a=input('搜索區(qū)間的第一點(diǎn)a='); %確定搜索區(qū)間b=input('搜索區(qū)間的第二點(diǎn)b=');e=input('搜索精度ne='); %收斂精度disp('需求的優(yōu)化函數(shù)f=f(x),調(diào)用xmin=golden(f,a,b,e)');m文件:function xmin=golden(f,a,b,e)k=0;a1 =b-0.618*(b-a); %插入點(diǎn)的值a2 =a+0.618*(b-a);while b-a>e %循環(huán)條件 y1=subs(f,a1); y2=subs(f,a2);if y1>y2 %比較插入點(diǎn)的函數(shù)值的大小 a=a1; %進(jìn)行換名 a1=a2; y1=y2; a2=a+0.618*(b-a);else b=a2; a2=a1; y2=y1; a1=b-0.618*(b-a);endk=k+1;end %迭代到滿足條件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論