ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:18.94KB ,
资源ID:21489743      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21489743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(机械优化设计实验指导书Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

机械优化设计实验指导书Word文档下载推荐.docx

1、 本课程实验成绩依据以下几个方面进行考核 1、实验报告 2、考核所编制的程序 3、实验纪律、出勤等实验一 一维搜索方法本实验求函数 f(x)=(x-3)2 的搜索区间a,b。并用黄金分割法和插值法分别求最优解#include stdio.h/* 函数 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;

2、x1=x0; y1=f(x1); x2=x1+h; y2=f(x2); if (y2=y1) h=-h0; x3=x1; y3=y1; x1=x2; y1=y2; x2=x3; y2=y3; for (;) h*=2.0; x3=x2+h; y3=f(x3); if (y20) *a=x1; *b=x3; else *a=x3; *b=x1;/* 黄金分割法 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

3、=a+0.382*(b-a); x2=a+0.618*(b-a); do if (y1e); *x=0.5*(a+b); *y=f(*x); 二次插值法 xpt,ypt-最优解X*,F*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; c1=(f3-f1)/(x3-x1); c

4、2=(f2-f1)/(x2-x1)-c1)/(x2-x3); if (c2=0.0) *xpt=x2; *fpt=f2; break; xp=0.5*(x1+x3-c1/c2); fp=f(xp); if (xp-x1)*(x3-xp)=0.0) *xpt=x2; if (k!=1) if (fabs(xp0-xp)x2) if (f2fp) x3=xp; f3=fp; x1=x2; f1=f2; x2=xp; f2=fp; else if (f2const MAXN = 10;double xkkMAXN,xkMAXN,skMAXN;int N;double F(double *x) ret

5、urn 4*pow(x0-5,2.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 (j=0; j j+) xkj=x0j; for (i=0; i+) for (j=0; j+) if (j=i) skj=1; else skj=0;

6、 find_ab(0,1,&a,&b); search_gold(a,b,e2,&ax,&ay); j+) xkj=xkkj; d=0; j+) d+=(x0j-xkkj)*(x0j-xkkj); d=sqrt(d); printf(k=%d;,k); j+),x%d=%lf;,j+1,xkkj);d=%lfn,d); if (d=e1) break; j+) x0j=xkkj; 鲍威尔法double nc_powell(double *x0,double e1,double e2) int i,j,k=1,m; double ssMAXNMAXN,s1MAXN, ffMAXN,xMAXN,x

7、nMAXN, xn1MAXN,f0,f1,f2,f3; i+) for (j=0; j+) if (j=i) ssij=1; else ssij=0; j+) skj=ssij; ffi=F(xk); j+) xnj = xkkj; j+) skj=xkkj-x0j; s1j=skj; find_ab(0,1,& search_gold(a,b,e2,& j+) xj=xkkj; j+) d+=(xj-x0j)*(xj-x0j);x%d=%lf;,j+1,x0j);=e1) j+) x0j=xj; break; f0=F(x0); d=f0-ff0; m=0; for (j=1; j+) if

8、 (d=d) if (f2f3) for (j=0; j+) x0j=xnj; else for (j=0; j+) x0j=xn1j; for (i=m+1; ssi-1j=ssij; j+) ssN-1j=s1j;实验三 无约束优化方法-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(df0*df0+df1*df1);/* DFP法-求构造矩阵Ak+1*/void computer

9、_A(double AMAXN,double *cc, double *yy) double BMAXNMAXN,CMAXNMAXN, DMAXNMAXN,EMAXNMAXN; double a,b,c; int i,j,k; Bij=cci*ccj; Dij=yyi*yyj; j+) Eij=0; for (k=0; k k+) Eij+=Aik*Dkj; Cij=0; k+) Cij+=Eik*Akj; a=0; i+) a+=cci*cci; b=0; c=0; j+) c+=yyj*Aji; b+=c*yyi; Aij+=Bij/a-Cij/b; DFP法double nc_dfp(d

10、ouble *x0,double e1,double e2) double AMAXNMAXN,gkMAXN, g0MAXN, ccMAXN,yyMAXN; d=DF(x0,g0);=e1) return F(x0); Aij=1; else Aij=0; i+) xki=x0i; k+) skj=0; for (i=0; i+) skj+=-Aji*g0i; printf(=%lf=,ax); d=DF(xk,gk);,j+1,xkj); if (d#define sqr(x) (x)*(x) #define N 10int nt;double funt(double *x,double *

11、g,int *b) int i; g0=x0; g1=x1-1; g2=11-x0-x1; *b=1;nt; i+) if (gi0) *b=0; return sqr(x0-8)+sqr(x1-8);void find_sk(int nmax,double sk) double sm,c;int i; sm = 0; for (i = 0; i nmax; i+) c =(double)(rand()+1.0)/RAND_MAX; c = 2*c-1; sm += c*c; ski = c; sm = sqrt(sm);nmax; i+) ski = ski/sm;void main() d

12、ouble a,a0,f0,f,e,skN,xkN,x0N,gN; int b1,b2,b,mt,M,i,k; nt=3; M=50; a0=0.4,e=0.01; x00=2; x01=3; mt=2; f0 = funt(x0,g,& for(i=0;mt; if(!b) return; k=0; srand( (unsigned)time( NULL ) ); for(; if(a0=e) break; if(k=M) a0=0.5*a0; find_sk(mt,sk); a=a0; for (i = 0; i+) xki = x0i+a*ski; f=funt(xk,g,&b1); i

13、f(!(b1 & ff0) a=-a0;b2); if(b2 &f0) b=1; else b=1;b) k+; continue; k=0; f0=f; for(i=0; for(; if(b1 &f0) f0=f; else break;%sn, * 最优结果 *); i+) printf(x*%d = %lfn,i+1,x0i);f* = %lfn,f0);/* * 最优结果 * x*1 = 5.511014 x*2 = 5.488826 f* =12.501044*/实验五 约束优化方法-复合型法 本实验用复合型法求目标函数的最优解 int i;/* 排序-按函数值从小到大 */voi

14、d sort(double pxNN,double *pf,int K,int mt) double t;K-1; i+) for(j=i+1;K; j+) if(pfjpfi) t=pfi; pfi=pfj; pfj=t; for(k=0; k+) t=pxik; pxik=pxjk; pxjk=t; int i,j,mt,b; double a,f,f0,fr,d,e,c,gN,x0N,xrN; int H,K;/*H-坏点,K-复合形顶点数*/ double pxNN,pfN;/*复合形顶点及相应的函数值*/ double XLN=2,2,XHN=10,10;/*给定变量的下限和上限*/ /*不等式个数*/ /*变量个数*/ e=0.001; K=3; i+) /*产生初始复合形 */ for (j = 0; j mt; j+) pxij=XLj+c*(XHj-XLj); pfi=funt(pxi,g,& while (! sort(px,pf,K,mt); a=1.3; H=K-1;) x0i=0; for(j=0; j+)if(j!=H)x0i+=pxji; x0i/=K-1; i+) xri=x0i+a*(x0i-pxHi); fr=funt(xr,g,&

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1