機(jī)械優(yōu)化設(shè)計一維搜索實(shí)驗(yàn)報告_第1頁
機(jī)械優(yōu)化設(shè)計一維搜索實(shí)驗(yàn)報告_第2頁
機(jī)械優(yōu)化設(shè)計一維搜索實(shí)驗(yàn)報告_第3頁
機(jī)械優(yōu)化設(shè)計一維搜索實(shí)驗(yàn)報告_第4頁
機(jī)械優(yōu)化設(shè)計一維搜索實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上機(jī)械優(yōu)化設(shè)計實(shí)驗(yàn)報告班級: 機(jī)械設(shè)計(2)班 姓名: 鄧傳淮 學(xué)號: 1 實(shí)驗(yàn)名稱:一維搜索黃金分割法求最佳步長2 實(shí)驗(yàn)?zāi)康模和ㄟ^上機(jī)編程,理解一維搜索黃金分割法的原理,了解計算機(jī)在優(yōu)化設(shè)計中的應(yīng)用。3 黃金分割法的基本原理 黃金分割法是用于一元函數(shù)f(x)在給定初始區(qū)間a,b內(nèi)搜索極小點(diǎn)*的一種方法。它是優(yōu)化計算中的經(jīng)典算法,以算法簡單、收斂速度均勻、效果較好而著稱,是許多優(yōu)化算法的基礎(chǔ),但它只適用于一維區(qū)間上的凸函數(shù)6,即只在單峰區(qū)間內(nèi)才能進(jìn)行一維尋優(yōu),其收斂效率較低。其基本原理是:依照“去劣存優(yōu)”原則、對稱原則、以及等比收縮原則來逐步縮小搜索區(qū)間7。具體步驟是:

2、在區(qū)間a,b內(nèi)取點(diǎn):a1 ,a2 把a(bǔ),b分為三段。如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+r*(b-a);如果f(a1)<f(a2) ,令b=a2,a2=a1,a1=b-r*(b-a),如果(b-a)/b和(y1-y2)/y2都大于收斂精度重新開始。因?yàn)閍,b為單峰區(qū)間,這樣每次可將搜索區(qū)間縮小0.618倍或0.382倍,處理后的區(qū)間都將包含極小點(diǎn)的區(qū)間縮小,然后在保留下來的區(qū)間上作同樣的處理,如此迭代下去,將使搜索區(qū)a,b逐步縮小,直到滿足預(yù)先給定的精度時,即獲得一維優(yōu)化問題的近似最優(yōu)解。黃金分割法原理如圖所示, 4 實(shí)驗(yàn)所編程序框圖(1) 進(jìn)退發(fā)確定單峰

3、區(qū)間的計算框圖 (2)黃金分割法計算框圖5 程序源代碼(1)進(jìn)退發(fā)確定單峰區(qū)間的程序源代碼#include<stdio.h>#include<math.h>#define f(x) pow(x,4)-3*pow(x,3)-5*pow(x,2)-14*x+46main() int k; double x,h,x1,x2,x3; double f1,f2,f3,f; double a,b; x1=0; h=1; x2=x1+h; f1=f(x1); f2=f(x2); if (f1>f2) h=2*h; x3=x2+h; f3=f(x3); else h=-h; x1

4、=x2; f1=f2; x3=x2+h; f3=f(x3); printf("x1=%lf,x2=%lf0",x1,x2); do x1=x2; x2=x3; f1=f2; f2=f3; x3=x2+h; f3=f(x3); while(f3<f2); if (h>0) a=x1; b=x3; else a=x3; b=x1; printf("a=%lf,b=%lfn",a,b);(2)黃金分割法的程序源代碼#include<stdio.h>#include<math.h>#define f(x)=pow(x,4)-3

5、*pow(x,3)-5*pow(x,2)-14*x+46main() int k; double x,h,x1,x2,x3,c; double f1,f2,f3,f; double a,b; printf("input c:n"); scanf("%lf",&c); a=1; b=5; x1=b-0.618*(b-a);printf("x1=%lf ",x1); f1=f(x1);printf("f1=%lf ",f1); x2=a+0.618*(b-a);printf("x2=%lf "

6、;,x2); f2=f(x2);printf("f2=%lf ",f2); k=0;loop: if(f1<f2) b=x2;printf("b=%lf ",b); x2=x1;printf("x2=%lf ",x2); f2=f1;printf("f2=%lf ",f2); x1=a+0.382*(b-a);printf("x1=%lf ",x1); f1=f(x1);printf("f1=%lf ",f1); else a=x1;printf("a=%lf ",a); x1=x2;printf("x1=%lf ",x1); f1=f2;printf("f1=%lf ",f1); x2=a+0.618*(b-a);printf("x2=%lf ",x2); f2=f(x2);printf("f2=%lf ",f2); k=k+1; printf("k=%dn",k); if(fabs(b-a<c) x=0.5*(b+a);pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論