外點罰函數(shù)法_第1頁
外點罰函數(shù)法_第2頁
外點罰函數(shù)法_第3頁
外點罰函數(shù)法_第4頁
外點罰函數(shù)法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、太原理工大學(xué)機械學(xué)院機測系課程上機實驗報告課 程 名 稱: 機械優(yōu)化設(shè)計 班級機測2班日 期成績評定姓名陳明鑫實驗室機械館機房老師簽名實驗名稱利用外點罰函數(shù)法求解相關(guān)函數(shù)的極小值點所用軟件實驗?zāi)康募皟?nèi)容實驗?zāi)康模?.掌握并能夠建立最優(yōu)化基本類型問題的數(shù)學(xué)模型。2.掌握最優(yōu)化方法的基本概念、基本理論和基本方法,奠定最優(yōu)化的理論基礎(chǔ)。3.能夠熟練編制和調(diào)試最優(yōu)化方法的程序,奠定解決實際中的優(yōu)化問題的基礎(chǔ)實驗內(nèi)容:理解外點罰函數(shù)法并編寫相關(guān)程序求其極小值點。實驗原理步驟、實驗結(jié)果及分析 外點罰函數(shù)法計算結(jié)果*外點懲罰函數(shù)法計算結(jié)果*無約束優(yōu)化方法:鮑威爾法*+一維搜索方法:黃金分割法+*初始懲罰因子

2、:r0= 1.00* 遞增系數(shù):c0=10.00*初始坐標: x( 0)= 0., 0., f( 0)= 1.迭代輪數(shù) k= 1 x( 1)= 0., 0., f( 1)= 0. 迭代精度: 0.迭代輪數(shù) k= 2 x( 2)= 0., -0., f( 2)= 0. 迭代精度: 0.迭代輪數(shù) k= 3 x( 3)= 0., 0., f( 3)= 0. 迭代精度: 0.迭代輪數(shù) k= 4 x( 4)= 0., -0., f( 4)= 0. 迭代精度: 0.迭代輪數(shù) k= 5 x( 5)= 0., 0., f( 5)= 0. 迭代精度: 0.迭代輪數(shù) k= 6 x( 6)= 1., -0., f(

3、 6)= 1. 迭代精度: 0.迭代輪數(shù) k= 7 x( 7)= 1., 0., f( 7)= 1. 迭代精度: 0.迭代輪數(shù) k= 8 x( 8)= 1., -0., f( 8)= 1. 迭代精度: 0.迭代輪數(shù) k= 9 x( 9)= 1., -0., f( 9)= 1. 迭代精度: 0.*外點懲罰函數(shù)法優(yōu)化最優(yōu)點及目標函數(shù)值為: x( *)= 1., -0., f( *)= 1. 迭代精度: 0.罰函數(shù)法考核題 外點 :,其初始迭代點為,中止誤差 內(nèi)點 :,其初始迭代點為,中止誤差 *外點懲罰函數(shù)法計算結(jié)果*無約束優(yōu)化方法:鮑威爾法*+一維搜索方法:黃金分割法+*初始懲罰因子:r0= 1

4、.00* 遞增系數(shù):c0=10.00*初始坐標: x( 0)= 2., 2., f( 0)= 18.迭代輪數(shù) k= 1 x( 1)= 1., 0., f( 1)= 0. 迭代精度: 1.迭代輪數(shù) k= 2 x( 2)= 0., 0., f( 2)= 1. 迭代精度: 0.迭代輪數(shù) k= 3 x( 3)= 0., 0., f( 3)= 1. 迭代精度: 0.迭代輪數(shù) k= 4 x( 4)= 0., 0., f( 4)= 1. 迭代精度: 0.迭代輪數(shù) k= 5 x( 5)= 0., 0., f( 5)= 1. 迭代精度: 0.迭代輪數(shù) k= 6 x( 6)= 0., 0., f( 6)= 1.

5、迭代精度: 0.迭代輪數(shù) k= 7 x( 7)= 0., 0., f( 7)= 1. 迭代精度: 0.迭代輪數(shù) k= 8 x( 8)= 0., 0., f( 8)= 1. 迭代精度: 0.迭代輪數(shù) k= 9 x( 9)= 0., 0., f( 9)= 1. 迭代精度: 0.迭代輪數(shù) k= 10 x( 10)= 0., 0., f( 10)= 1. 迭代精度: 0.*外點懲罰函數(shù)法優(yōu)化最優(yōu)點及目標函數(shù)值為: x( *)= 0., 0., f( *)= 1. 迭代精度: 0.算法程序?qū)崿F(xiàn)/*鮑威爾法*/ #include #include #include #include #include #d

6、efine N 2 /*優(yōu)化設(shè)計維數(shù)*/#define EPSIN 0. /*迭代精度*/#define H_QJ 1.0 /*初始區(qū)間搜索步長*/#define Y_F 1 /*一維搜索方法選擇:1黃金分割法*/ /* 2二次插值法*/ #define MC 10.0 /*懲罰因子遞增系數(shù)*/#define NG 1 /*不等式約束個數(shù)*/#define NH 1 /*等式約束個數(shù)*/FILE *fp;double mr=1.0; /*外點懲罰因子*/char outname50=外點懲罰函數(shù)法計算結(jié)果.txt; /*計算結(jié)果輸出文件*/*給出初始點坐標*/void csd_x(double

7、 x0)int i;for(i=0;iN;i+) /*初始點為坐標原點的情況*/x0i=0.0;return;/*目標函數(shù)*/double hanshu1(double x)double f;f=x0*x0+x1*x1; return f;/*不等式約束方程*/void strain(double x,double g,double h)double eb;eb=EPSIN;g0=x0-1.0-eb*10.0;/g1=1.0-(x0+x1)-eb*10.0;h0=0.0; /*至少有一個為0的等式約束*/return;/*以上為修改部分*/*懲罰函數(shù)*/double hanshu(double

8、 x)int i;double f,f1,gNG,hNH;f=hanshu1(x);strain(x,g,h);f1=0.0;for(i=0;iNG;i+)if(gi0.0)f1+=gi*gi;for(i=0;iNH;i+)f1+=hi*hi;f+=mr*f1; return f;/*計算f(xk+as)*/double xkadd(double x,double d,double a)int i;double x1N;for(i=0;iN;i+)x1i=xi+a*di;return hanshu(x1);/*輸出選定的一維迭代方法*/void ywddf(int yw)switch(yw)c

9、ase 1:fprintf(fp,+一維搜索方法:黃金分割法+nn);break;case 2:fprintf(fp,+一維搜索方法:二次插值法+nn);break;return;/*輸出當前迭代點坐標及目標函數(shù)值*/double xfout(double x,int m)int j;double f;f=hanshu(x);fprintf(fp, x(%3d)=,m);for(j=0;jf2)a2=a3;a3=0.0;f1=f2;f2=f3;f3=f1;h=-h;doa1=a2;a2=a3;f1=f2;f2=f3;a3=a2+h;f3=xkadd(x,d,a3);h=2*h;while(f3

10、0.0)ab0=a1;ab1=a3;elseab0=a3;ab1=a1;return;/*黃金分割法*/void goldcut(double x,double d,double h,double ebsin)double a1,a2,f1,f2,a,b,ab2;int i;csssqj(x,d,h,ab);a=ab0;b=ab1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);a2=a+0.618*(b-a);f2=xkadd(x,d,a2);doif(f1f2)a=a1;a1=a2;f1=f2;a2=a+0.618*(b-a);f2=xkadd(x,d,a2);else

11、b=a2;a2=a1;f2=f1;a1=b-0.618*(b-a);f1=xkadd(x,d,a1);while(b-aebsin);for(i=0;iN;i+)xi+=(b+a)*di/2;return;/*二次插值法*/int rccz(double x,double d,double h,double ebsin)double a1,a2,a3,a4,f1,f2,f3,f4,c1,c2,ab2;int i,p=0,k=0;csssqj(x,d,h,ab);a1=ab0;a3=ab1;a2=(a1+a3)/2;f1=xkadd(x,d,a1);f2=xkadd(x,d,a2);f3=xka

12、dd(x,d,a3);while(1)c1=(f3-f1)/(a3-a1);c2=(f2-f1)/(a2-a1)-c1)/(a2-a3);if(0=c2)p=1;break;a4=0.5*(a1+a3-c1/c2);if(a4-a1)*(a3-a4)=0.0)p=2;break;f4=xkadd(x,d,a4);if(1=k&fabs(a4-a2)=ebsin)break;if(a4f4)f1=f2;a1=a2;k=1;a2=a4;f2=f4;elsea3=a4;f3=f4;elseif(f2f4)f3=f2;a3=a2;k=1;a2=a4;f2=f4;elsea1=a4;f1=f4;if(0

13、=p)f1=f4-f2?a4:a2;elsef1=a2;for(i=0;iN;i+)xi+=f1*di;return p;/*鮑威爾*/void baowr(double x,double h,double ebsin,int yw)double dNN,x0N,x1N,fN+2,df,df1;int i,j,k=1,m;fN=hanshu(x);for(i=0;iN;i+)for(j=0;jN;j+)dij=0.0;for(i=0;iN;i+)dii=1.0;dofor(i=0;iN;i+)x0i=xi;f0=fN;switch(yw)case 1:for(i=0;iN;i+)goldcut

14、(x,di,h,ebsin);fi+1=hanshu(x);break;case 2:for(i=0;iN;i+)j=rccz(x,di,h,ebsin);fi+1=hanshu(x);break;for(i=0;iN;i+)x1i=2*xi-x0i;fN+1=hanshu(x1);df=0.0;m=0;for(i=0;idf)df=df1;m=i;df1=(f0-2*fN+fN+1)*(f0-fN-df)*(f0-fN-df);df1-=0.5*df*(f0-fN+1)*(f0-fN+1);if(fN+1=f0|df1=0.0)if(fNfN+1)for(i=0;iN;i+)xi=x1i;e

15、lsefor(i=m;iN-1;i+)for(j=0;jN;j+)dij=di+1j;for(i=0;iN;i+)dN-1i=xi-x0i;switch(yw)case 1:goldcut(x,dN-1,h,ebsin);break;case 2:j=rccz(x,dN-1,h,ebsin);break;fN=hanshu(x);df=0.0;for(i=0;iebsin);return;/*外點懲罰函數(shù)法*/void sumt(double x,double h,double ebsin,int yw)int i,k;double x0N,fact,f,mc;mc=MC;fprintf(fp

16、,*外點懲罰函數(shù)法計算結(jié)果*nn);fprintf(fp,*無約束優(yōu)化方法:鮑威爾法*n);ywddf(yw); /*輸出一維迭代方法*/fprintf(fp,*初始懲罰因子:r0=%5.2lf*n,mr);fprintf(fp,* 遞增系數(shù):c0=%5.2lf*nn,mc);fprintf(fp,初始坐標:n);f=xfout(x,0);fprintf(fp,n);k=1;dofprintf(fp,迭代輪數(shù) k=%3d n,k);for(i=0;iN;i+)x0i=xi;baowr(x,h,ebsin,yw);f=xfout(x,k);fact=0.0;for(i=0;iebsin);fprintf(fp,*n);fprintf(fp,外點懲罰函數(shù)法優(yōu)化最優(yōu)點及目標函數(shù)值為:n);fprintf(fp, x( *)=);for(i=0;iN-1;i+)fprintf(fp,%15.7lf,xi);fprintf(fp,%

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論