




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、機(jī)械優(yōu)化設(shè)計(jì)上機(jī)實(shí)踐報(bào)告班級(jí): 機(jī)械(茅以升) 101姓名 :學(xué)號(hào) :1004010510成績(jī) :指導(dǎo)教師:迎輝日期 :2013.11.201 一維搜索方法上機(jī)實(shí)踐報(bào)告1、寫(xiě)出所選擇的一維搜索算法的基本過(guò)程、原理(可附流程圖說(shuō)明)。(一)進(jìn)退法1. 算法原理進(jìn)退法是用來(lái)確定搜索區(qū)間(包含極小值點(diǎn)的區(qū)間)的算法,其理論依據(jù)是:f ( x) 為單谷函數(shù)(只有一個(gè)極值點(diǎn)) ,且 a,b 為其極小值點(diǎn)的一個(gè)搜索區(qū)間,對(duì)于任意x1, x2 a, b ,如果 fx1fx2,則 a, x2 為極小值的搜索區(qū)間,如果fx1fx2,則 x1,b為極小值的搜索區(qū)間。因此,在給定初始點(diǎn)x0 ,及初始搜索步長(zhǎng)h 的情
2、況下,首先以初始步長(zhǎng)向前搜索一步,計(jì)算 fx0h 。(1) 如果 f x0f x0h則可知搜索區(qū)間為%h,其中 %待求,為確定%,后退一步計(jì)算f ( x0h), 為縮 x, x0xx小系數(shù),且01 ,直接找到合適的* ,使得 f (x0* h)f x0,從而確定搜索區(qū)間 x0* h, x0h 。(2) 如果 f x0f x0h則可知搜索區(qū)間為0 %待求,為確定%,前進(jìn)一步計(jì)算f (x0h),為放大 x , x,其中 xx系數(shù),且1 ,知道找到合適的*,使得 f x0hf (x0* h) ,從而確定搜索區(qū)間 x0, x0* h 。2. 算法步驟用進(jìn)退法求一維無(wú)約束問(wèn)題min f ( x), x
3、R 的搜索區(qū)間 (包含極小值點(diǎn)的區(qū)間) 的基本算法步驟如下:(1) 給定初始點(diǎn) x(0),初始步長(zhǎng) h0 ,令 h h0 , x(1)x(0), k0 ;(2) 令 x(4)x(1)h,置 kk 1 ;(3) 若f x(4)fx(1) ,則轉(zhuǎn)步驟( ),否則轉(zhuǎn)步驟(5);4(4) 令(2)(1)(1)(4),f x(2)f x(1),f x(1)f x(4),令 h2h ,轉(zhuǎn)步驟( );xx , xx2(5) 若 k1 ,則轉(zhuǎn)步驟( 6)否則轉(zhuǎn)步驟( 7);(6) 令hh ,(2)(4)(2)(4)xx,fxf x,轉(zhuǎn)步驟( );2(7) 令 x(3)x(2) , x(2)x(1) , x(1
4、)x(4),停止計(jì)算,極小值點(diǎn)包含于區(qū)間 x(1) , x(3) 或 x(3) , x(1) (二)黃金分割法1、黃金分割法基本思路:黃金分割法適用于 a , b 區(qū)間上的任何單股函數(shù)求極小值問(wèn)題,對(duì)函數(shù)除要求“單谷”外不做其他要求,甚至可以不連續(xù)。因此,這種方法的適應(yīng)面非常廣。黃金分割法也是建立在區(qū)間消去法原理基礎(chǔ)上的試探方法,即在搜索區(qū)間 a , b 適當(dāng)插入兩點(diǎn) a1,a2,并計(jì)算其函數(shù)值。a1,a2 將區(qū)間分成三段, 應(yīng)用函數(shù)的單谷性質(zhì), 通過(guò)函數(shù)值大小的比較,刪去其中一段,是搜索區(qū)間得以縮小。然后再在保留下來(lái)的區(qū)間上作同樣的處理,如此迭代下去,是搜索區(qū)間無(wú)限縮小,從而得到極小點(diǎn)的數(shù)值
5、近似解。2 黃金分割法的基本原理一維搜索是解函數(shù)極小值的方法之一, 其解法思想為沿某一已知方向求目標(biāo)函數(shù)的極小值點(diǎn)。一維搜索的解法很多,這里主要采用黃金分割法( 0.618 法)。該方法用不變的區(qū)間縮短率 0.618 代替斐波那契法每次不同的縮短率,從而可以看成是斐波那契法的近似,實(shí)現(xiàn)起來(lái)比較容易,也易于人們所接受。圖 1黃金分割法是用于一元函數(shù) f(x) 在給定初始區(qū)間 a,b 搜索極小點(diǎn) * 的一種方法。它是優(yōu)化計(jì)算中的經(jīng)典算法,以算法簡(jiǎn)單、收斂速度均勻、效果較好而著稱(chēng),是許多優(yōu)化算法的基礎(chǔ),但它只適用于一維區(qū)間上的凸函數(shù) 6 ,即只在單峰區(qū)間才能進(jìn)行一維尋優(yōu),其收斂效率較低。其基本原理是
6、:依照“去劣存優(yōu)”原則、對(duì)稱(chēng)原則、以及等比收縮原則來(lái)逐步縮小搜索區(qū)間 7 。具體步驟是: 在區(qū)間 a,b取點(diǎn):a1令 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都大于收斂精度重新開(kāi)始。因?yàn)閍,b 為單峰區(qū)間,這樣每次可將搜索區(qū)間縮小0.618 倍或 0.382 倍,處理后的區(qū)間都將包含極小點(diǎn)的區(qū)間縮小,然后在保留下來(lái)的區(qū)間上作同樣的處理,如此迭代下去,將使搜索區(qū)a,b 逐步縮小,直到滿足預(yù)先給定的精度時(shí),即獲得一維優(yōu)化問(wèn)題的近似最優(yōu)解。黃金分割法原理如圖所示,3 程
7、序流程如下:4 實(shí)驗(yàn)所編程序框圖開(kāi)始給定 a=-3,b=5,收斂精度 =0.001r=0.618a1=b-r*(b-a)y1=f(a1)a2=a+r*(b-a)y2=f(a2)是否y1=y2a=a1b=a2a1=a2y1=y2a2=a1y2=y1a2=a+r*(b-a)a1=b-r*(b-a)y2=f(a2)y1=f(a1) (b-a)/b 和(y2-y1 )/y2 ?否是算例 1: minf(x)= x*x+2*x(1)C+ 程序如下:#include #include #define f(x) x*x+2*xdouble calc(double *a,double *b,double e,
8、int *n) double x1,x2,s; if(fabs(*b-*a)f(x2)*a=x1;else*b=x2;*n=*n+1;s=calc(a,b,e,n);return s;main() double s,a,b,e;int n=0;scanf(%lf %lf %lf,&a,&b,&e);s=calc(&a,&b,e,&n);printf(a=%lf,b=%lf,s=%lf,n=%dn,a,b,s,n);2、程序運(yùn)行結(jié)果:算例 2: minf=x2-10*x+36理論最優(yōu)解:x*=5.0 , f ( x* ) =11.0( 1) MATLAB程序清單:functionf=myfun_
9、yi(x)f=x2-10*x+36 fminbnd(myfun_yi,1,12)( 2)運(yùn)行結(jié)果: fminbnd(myfun_yi,1,12)f = 11.0407f =18.8309f =12.9691f =11f =11.0000f =11.0000ans =5( 3)結(jié)果分析: 由迭代程序 f=11.0 ,ans=5,與理論結(jié)果相等算例 3: minf=x4-5*x3+4*x2-6*x+60理論最優(yōu)解:x*=3.2796 , f ( x* ) =22.6590( 1) MATLAB程序清單:functionf=myfun_yi(x)f=x4-5*x3+4*x2-6*x+60 fminb
10、nd(myfun_yi,1,12)( 2)運(yùn)行結(jié)果: fminbnd(myfun_yi,1,12)f = 165.3948f =1.5836e+03f =24.8730f =35.9194f =23.9089f =22.7621f =31.7507f =22.6673f =22.6594f =22.6590f =22.6590f =22.6590f =22.6590ans =3.2796( 3)結(jié)果分析: 由迭代程序得 f =22.659 , ans =3.2796 ,與理論最優(yōu)解相等2 無(wú)約束優(yōu)化搜索方法上機(jī)實(shí)踐報(bào)告1、寫(xiě)出所選擇的無(wú)約束優(yōu)化搜索算法的基本過(guò)程、原理(可附流程圖說(shuō)明)。鮑威爾
11、改進(jìn)方法鮑威爾( Powell )法是直接利用函數(shù)值來(lái)構(gòu)造共軛方向的一種方法在鮑威爾基本算法中,每一輪迭代都用連結(jié)始點(diǎn)和終點(diǎn)所產(chǎn)生出的搜索方向去替換原向量組中的第一個(gè)向量,而不管它的“好壞” ,這是產(chǎn)生向量組線性相關(guān)的原因所在。在改進(jìn)的算法中首先判斷原向量組是否需要替換。如果需要替換,還要進(jìn)一步判斷原向量組中哪個(gè)向量最壞,然后再用新產(chǎn)生的向量替換這個(gè)最壞的向量,以保證逐次生成共軛方向。2、程序計(jì)算結(jié)果分析:中間各步驟的結(jié)果分析及與理論計(jì)算結(jié)果分析對(duì)比。算例 1: min f=4*(x(1)-5)2+(x(2)-6)2初始點(diǎn): x0=8;9,f(x0)=45最優(yōu)解: x*=5;6,f(x*)=0
12、(1)MATLAB程序清單:functionf=myfun_wuyueshu(x)f=4*(x(1)-5)2+(x(2)-6)2 x,fval=fminunc(myfun_wuyueshu,x0)(2) 運(yùn)行結(jié)果:f =45Warning: Gradient must be provided for trust-region algorithm; using line-search algorithm instead. In fminunc at 367 f =45.0000f =45.0000f =23.5625f =23.5625f =23.5625f =2.6958f =2.6958f
13、=2.6958f =1.3788f =1.3788f =1.3788f =0.0054f =0.0054f =0.0054f =6.4975e-05f =6.4973e-05f =6.4975e-05f =6.1579e-09f =6.1522e-09f =6.1443e-09f =1.7876e-12f =1.8627e-12f =1.5586e-12Local minimum found.Optimization completed because the size of the gradient is less than the default value of the function
14、 tolerance.x =5.00006.0000fval =1.7876e-12(3) 結(jié)果分析: 由迭代程序得x = 5.0000; 6.0000,fval =1.7876e-12,與理論最優(yōu)解相等。算例 2:min f=(x(1)2+x(2)-11)2+(x(1)+x(2)2-7)2初始點(diǎn): x0=1;1,f(x0)=106最優(yōu)解: x*=3;2,f(x*)=0(1)MATLAB程序清單:functionf=myfun_wuyueshu(x)f=(x(1)2+x(2)-11)2+(x(1)+x(2)2-7)2 x,fval=fminunc(myfun_wuyueshu,x0)(2) 運(yùn)
15、行結(jié)果: x0=1;1x0 =11 x,fval=fminunc(myfun_wuyueshu,x0)f =106Warning: Gradient must be provided for trust-region algorithm; using line-search algorithm instead. In fminunc at 367 f =106.0000f =106.0000f =29.5430f =29.5430f =29.5430f =1.7450e+04f =1.7450e+04f =1.7450e+04f =90.3661f =90.3661f =90.3661f =0
16、.3575f =0.3575f =0.3575f =0.0179f =0.0179f =0.0179f =0.0064f =0.0064f =0.0064f =1.0048e-06f =1.0044e-06f =1.0049e-06f =4.8639e-09f =4.8567e-09f =4.8781e-09f =5.2125e-12f =5.8703e-12f =5.7870e-12Local minimum found.Optimization completed because the size of the gradient is less than the default value
17、 of the function tolerance.x =3.00002.0000fval =5.2125e-12(3) 結(jié)果分析: 由迭代程序得 x=3;2,fval = 5.2125e-12,與理論最優(yōu)解相等算例 3: ff=x0*x0+2*x1*x1-4*x0-2*x0*x1;(1)鮑威爾改進(jìn)算法C+程序清單:#include stdio.h#include stdlib.h#include math.hdouble objf(double x)double ff;ff=x0*x0+2*x1*x1-4*x0-2*x0*x1;return(ff);void jtf(double x0 ,
18、double h0,double s ,int n,double a ,double b )int i;double *x3,h,f1,f2,f3;for (i=0;i3;i+)xi=(double *)malloc (n*sizeof(double);h=h0;for(i=0;in;i+)*(x0+i)=x0i;f1=objf(x0);for(i=0;i=f1)h= -h0;for (i=0;in;i+)*(x2+i)=*(x0+i);f3=f1;for(i=0;in;i+)*(x0+i)= *(x1+i);*(x1+i)= *(x2+i);f1=f2;f2=f3;for(;)h=2. *h
19、;for(i=0;in;i+)*(x2+i)=* (x1+i) +h*si;f3= objf(x2);if(f2f3)break;else for(i=0;in;i+) *(x0+i)= *(x1+i);*(x1+i)= *(x2+i);f1=f2;f2=f3;if(h0. )for(i=0;in;i+)ai=*(x2+i);bi=*(x0+i);elsefor(i=0;in;i+)ai=*(x0+i);bi=*(x2+i);for(i=0;i3;i+)free(xi);double gold(double a,double b,double eps,int n,double xx)int i
20、;double f1,f2,*x2,ff,q,w;for(i=0;i2;i+)xi=(double*)malloc (n*sizeof(double);for(i=0;if2)for(i=0;in;i+)bi=*(x0+i);*(x0+i)=*(x1+i);f1=f2;for(i=0;in;i+)*(x1+i)=ai+0.382*(bi-ai);f2=objf(x1);elsefor(i=0;in;i+)ai=*(x1+i);*(x1+i)=*(x0+i);f2=f1;for(i=0;in;i+)*(x0+i)=ai+0.618*(bi-ai);f1=objf(x0);q=0;for(i=0;
21、ieps);for(i=0;in;i+)xxi=0.5*(ai+bi);ff=objf(xx);for(i=0;i2;i+)free(xi);return(ff);double oneoptim(double x0,double s,double h0,double epsg,int n,double x)double *a,*b,ff;a=(double *)malloc(n*sizeof(double);b=(double *)malloc(n*sizeof(double);jtf(x0,h0,s,n,a,b);ff=gold(a,b,epsg,n,x);free(a);free(b);r
22、eturn(ff);double powell(double p,double h0,double eps,double epsg,int n,double x)int i,j,m;double *xx4,*ss,*s;double f,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;ss=(double *)malloc(n*(n+1)*sizeof(double);s=(double *)malloc(n*sizeof(double);for (i=0;in;i+)for (j=0;j=n;j+)*(ss+i*(n+1)+j)=0;*(ss+i*(n+1)+i)=1;for (
23、i=0;i4;i+)xxi=(double *)malloc(n*sizeof(double);for (i=0;in;i+)*(xx0+i)=pi;for(;)for (i=0;in;i+)*(xx1+i)=*(xx0+i);xi=*(xx1+i);f0=f1=objf(x);dlt=-1;for (j=0;jn;j+)for (i=0;idlt)dlt=df;m=j;sdx=0.;for (i=0;in;i+)sdx=sdx+fabs(xi-(*(xx1+i);if(sdxeps)free(ss);free(s);for (i=0;i4;i+)free(xxi);return(f);for
24、 (i=0;in;i+)*(xx2+i)=xi;f2=f;for (i=0;in;i+)*(xx3+i)=2.*(*(xx2+i)-(*(xx1+i);xi=*(xx3+i);fx=objf(x);f3=fx;q=(f1-2*f2+f3)*(f1-f2-dlt)*(f1-f2-dlt);d=0.5*dlt*(f1-f3)*(f1-f3);if(f3f1)|(qd)if(f2=f3)for (i=0;in;i+)*(xx0+i)=*(xx2+i);elsefor (i=0;in;i+)*(xx0+i)=*(xx3+i);elsefor (i=0;in;i+)*(ss+(i+1)*(n+1)=xi
25、-(*(xx1+i);*(s+i)=*(ss+(i+1)*(n+1);f=oneoptim(xx0,s,h0,epsg,n,x);for(i=0;in;i+)*(xx0+i)=xi;for (j=m+1;j=n;j+)for (i=0;in;i+)*(ss+i*(n+1)+j-1)=*(ss+i*(n+1)+j);void main()double p=1,1;double ff,x2,x1,x2,f;ff=powell(p,0.3,0.001,0.0001,2,x);printf(shuchuzuiyoujie:n);x1=x1;x2=x2;f=ff;printf(x1=%f,x2=%f,f
26、=%fn,x1,x2,f);getchar();(2)運(yùn)行結(jié)果為:3約束優(yōu)化搜索方法上機(jī)實(shí)踐報(bào)告1、寫(xiě)出所選擇的約束優(yōu)化搜索算法的基本過(guò)程、原理(可附流程圖說(shuō)明)。2、程序計(jì)算結(jié)果分析:中間各步驟的結(jié)果分析及與理論計(jì)算結(jié)果分析對(duì)比。算例 1: min f= (x(1)-2)2+(x(2)-1)2;s.t g1(x)=x(1)2-x(2)=0g2(x)=x(1)+x(2)-2 x,fval=fmincon(myfun_constrain,x0,A,b,mycon)( 2)運(yùn)行結(jié)果: A=-1,0;0,-1b=0;0x0=3;3A =-100-1b =00x0 =33 x,fval=fmincon
27、(myfun_constrain,x0,A,b,mycon)Warning: The default trust-region-reflective algorithm does not solve problems with the constraints you havespecified. FMINCON will use the active-set algorithm instead. For information on applicable algorithms, seeChoosing the Algorithm in the documentation. In fmincon
28、 at 486 f =5c =64ceq =f =5.0000c =6.00004.0000ceq =f =5.0000c =6.00004.0000ceq =f =2.0000c =1.0000-1.0000ceq =f =2.0000c =1.0000-1.0000ceq =f =2.0000c =1.0000-1.0000ceq =f =1.0000c =1.0e-15 *0.99920.4441ceq =f =1.0000c =1.0e-07 *0.29800.1490ceq =f =1.0000c =1.0e-07 *-0.1490 0.1490ceq =Local minimum
29、found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance.Active inequalities (to wit
30、hin options.TolCon = 1e-06):lowerupperineqlinineqnonlin12x =1.00001.0000fval =1.0000(3)結(jié)果分析: 由迭代程序得 x =1.0000; 1.0000,fval =1.0000,與理論最優(yōu)解相等算例 2. minf=1000-x(1)2-2*x(2)2-x(3)2-x(1)*x(2)-x(1)*x(3);S.t g1(x)=x(1)2+x(2)2+x(3)2-25=0g2(x)8*x(1)+14*x(2)+7*x(3)-56=0g3(x)=-x(1)=0g4(x)=-x(2)=0g5(x)=-x(3) x,fv
31、al=fmincon(myfun_constrain,x0,A,b,mycon)(2)運(yùn)行結(jié)果 A=-1,0,0;0,-1,0;0,0,-1 b=0;0;0x0=2;2;2A =-1000-1000-1b =000x0 =222 x,fval=fmincon(myfun_constrain,x0,A,b,mycon)Warning: The default trust-region-reflective algorithm does not solve problems with the constraints you havespecified. FMINCON will use the a
32、ctive-set algorithm instead. For information on applicable algorithms, seeChoosing the Algorithm in the documentation. In fmincon at 486 c =-132ceq =c =-13.00002.0000ceq =c =-13.00002.0000ceq =c =-13.00002.0000ceq =c =-5.9320 0ceq =c =-5.9320 0.0000ceq =c =-5.9320 0.0000ceq =c =-5.9320 0.0000ceq =c =1.15620.0000ceq =c =1.15620.0000ceq =c =1.15620.0000ceq =c =1.15620.0000ceq =c =31.57130.0000ceq =c =8.18510.0000ceq =c =8.18510.0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生社會(huì)實(shí)踐能力的多元化發(fā)展與評(píng)價(jià)考核試卷
- 保健食品營(yíng)養(yǎng)需求分析與滿足策略實(shí)施效果考核試卷
- 合成氣制合成油考核試卷
- 國(guó)際貿(mào)易信用證條款解析與應(yīng)用考核試卷
- 網(wǎng)購(gòu)家具合同范本
- 簡(jiǎn)單的工傷合同范本
- 賣(mài)車(chē)簡(jiǎn)單合同范本
- 農(nóng)業(yè)訂單合同范本
- 電視購(gòu)物產(chǎn)品退換政策協(xié)議
- 瑜伽培訓(xùn)合同協(xié)議書(shū)
- 婦產(chǎn)科運(yùn)用PDCA降低產(chǎn)后乳房脹痛發(fā)生率品管圈成果報(bào)告書(shū)
- 第四章泵的汽蝕
- 數(shù)字孿生水利工程建設(shè)技術(shù)導(dǎo)則(試行)
- 零售藥店醫(yī)保培訓(xùn)試題及答案,零售藥店醫(yī)保培
- GB/T 90.1-2023緊固件驗(yàn)收檢查
- 2023屆高三生物一輪復(fù)習(xí)必修一二背誦默寫(xiě)紙條課堂默寫(xiě)
- 地表沉陷巖移觀測(cè)研究報(bào)告(完整資料)
- (魯科版五四制)小學(xué)三四五年級(jí)全部單詞(帶音標(biāo))
- 一年級(jí)英語(yǔ)-日常用語(yǔ)
- 湘教版二年級(jí)下冊(cè)科學(xué)教案
- 人教版三年級(jí)下冊(cè)語(yǔ)文閱讀理解及答案(完整版)
評(píng)論
0/150
提交評(píng)論