机械优化设计实验指导书(共13页).doc
《机械优化设计实验指导书(共13页).doc》由会员分享,可在线阅读,更多相关《机械优化设计实验指导书(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验一一维搜索方法本实验求函数 f(x)=(x-3)2 以及f(x)=-(x-3)2的搜索区间a, b。并用黄金分割法和插值法分别求最优解。进退法:#include #include /* 函数 f(x)=(x-3)2 */double f(double x) return (x-3)*(x-3);/* 求搜索区间a,b的函数, x0-初始点; h0-初始步长 */void find_ab(double x0,double h0,double *a,double *b) double h,x1,y1,x2,y2,x3,y3; h=h0; x1=x0; y1=f(x1)
2、; x2=x1+h; y2=f(x2); if (y2=y1) * * for (;) h*=2.0; x3=x2+h; y3=f(x3); if (y20) * else */*黄金分割法 a,b-搜索区间a,b; e-精度 x,y-最优解X*,F*/void search_gold(double a,double b,double e, double *x,double *y) double x1,x2,y1,y2; x1=*; y1=f(x1); x2=*; y2=f(x2); do if (y1e); */*二次插值法a,b-搜索区间a,b; e-精度xpt,ypt-最优解X*,F*/
3、void search_insert(double a, double b, double e, double *xpt, double *fpt)double x1,x2,f1,f2,x3,f3,xp,fp,xp0,c1,c2;int k=1;x1=a; x3=b; x2=0.5*(a+b);f1=f(x1); f2=f(x2); f3=f(x3); xp0=0;for (;) c1=(f3-f1)/(x3-x1); c2=(f2-f1)/(x2-x1)-c1)/(x2-x3); if (c2=0.0) *, break; xp=0.5*(x1+x3-c1/c2); fp=f(xp); if
4、 (xp-x1)*(x3-xp)=0.0) * break; if (k!=1) if (fabs(xp0-xp)x2) if (f2fp) * else * else if (f2fp) x1=xp; f1=fp; else * xp0=xp; k+;实验二无约束优化方法-鲍威尔方法本实验用鲍威尔方法求函数 f(x)=(x1-5)2+(x2-6)2 的最优解。#include #include #include const MAXN = 10;double xkkMAXN,xkMAXN,skMAXN;int N;double F(double *x) return 4*pow(x0-5,2.
5、0)+pow(x1-6,2.0);double f(double x)for (int i=0; iN; i+) xkki=xki+x*ski;return F(xkk);/*无约束坐标轮换法x0-初始点e1-一维搜索精度e2-求解精度*/double nc_trans(double *x0,double e1,double e2)int i,j,k=1;double a,b,ax,ay,d;for (;) for (j=0; jN; j+) xkj=x0j; for (i=0; iN; i+) for (j=0; jN; j+) if (j=i) skj=1; else skj=0; fin
6、d_ab(0,1,&a,&b); search_gold(a,b,e2,&ax,&ay); for (j=0; jN; j+) xkj=xkkj; d=0; for (j=0; jN; j+) d+=(x0j-xkkj)*(x0j-xkkj); d=sqrt(d); printf(k=%d;,k); for (j=0; jN; j+) printf(,x%d=%lf;,j+1,xkkj); printf(d=%lfn,d); if (d=e1) break; for (j=0; jN; j+) x0j=xkkj; k+;for (j=0; jN; j+) x0j=xkkj;return F(x
7、kk);/*鲍威尔法x0-初始点e1-一维搜索精度e2-求解精度*/double nc_powell(double *x0,double e1,double e2)int i,j,k=1,m;double a,b,ax,ay,d;double ssMAXNMAXN,s1MAXN, ffMAXN,xMAXN,xnMAXN, xn1MAXN,f0,f1,f2,f3;for (i=0; iN; i+) for (j=0; jN; j+) if (j=i) ssij=1; else ssij=0;for (;) for (j=0; jN; j+) xkj=x0j; for (i=0; iN; i+)
8、for (j=0; jN; j+) skj=ssij; find_ab(0,1,&a,&b); search_gold(a,b,e2,&ax,&ay); for (j=0; jN; j+) xkj=xkkj; ffi=F(xk); for (j=0; jN; j+) xnj = xkkj; for (j=0; jN; j+) skj=xkkj-x0j; s1j=skj; find_ab(0,1,&a,&b); search_gold(a,b,e2,&ax,&ay); for (j=0; jN; j+) xj=xkkj; d=0; for (j=0; jN; j+) d+=(xj-x0j)*(x
9、j-x0j); d=sqrt(d); printf(k=%d;,k); for (j=0; jN; j+) printf(x%d=%lf;,j+1,x0j); printf(d=%lfn,d); if (d=e1) for (j=0; jN; j+) x0j=xj; break; f0=F(x0); d=f0-ff0; m=0; for (j=1; jN; j+) if (dffj-1-ffj) m=j; d=ffj-1-ffj; for (j=0; j=d) if (f2f3) for (j=0; jN; j+) x0j=xnj; else for (j=0; jN; j+) x0j=xn1
10、j; else for (i=m+1; iN; i+) for (j=0; jN; j+) ssi-1j=ssij; for (j=0; jN; j+) ssN-1j=s1j; for (j=0; jN; j+) x0j=xj; k+;for (j=0; jN; j+) x0j=xkkj;return F(xkk);实验三无约束优化方法-DFP方法本实验用DFP方法求函数 f(x)=(x1-5)2+(x2-6)2 的最优解。/* DFP法-求梯度*/double DF(double *x,double *df)df0=8*(x0-5); df1=2*(x1-6);return (sqrt(df
11、0*df0+df1*df1);/* DFP法-求构造矩阵Ak+1*/void computer_A(double AMAXN, double *cc, double *yy)double BMAXNMAXN,CMAXNMAXN, DMAXNMAXN,EMAXNMAXN;double a,b,c; int i,j,k;for (i=0; iN; i+) for (j=0; jN; j+) Bij=cci*ccj;for (i=0; iN; i+) for (j=0; jN; j+) Dij=yyi*yyj;for (i=0; iN; i+) for (j=0; jN; j+) Eij=0; fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 实验 指导书 13
限制150内