机械优化设计黄金分割法 外推法.doc





《机械优化设计黄金分割法 外推法.doc》由会员分享,可在线阅读,更多相关《机械优化设计黄金分割法 外推法.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除郑州大学机械优化设计部分程序1.外推法2.黄金分割法3.二次插值法4.坐标轮换法5.随机方向法6.四杆机构优化设计【精品文档】第 7 页1.外推法源程序:#include#include#define R 0.01double fun(double x) double m;m=x*x-10*x+36;return m;void main()double h0=R,y1,y2,y3,x1,x2,x3,h;x1=0;h=h0;x2=h;y1=fun(x1);y2=fun(x2);if(y2y1)h=-h;x3=x1;y3=y1;x1=x2;y1=y2
2、;x2=x3;y2=y3;x3=x2+h;y3=fun(x3);while(y3y2)h*=2.0;x1=x2;y1=y2;x2=x3;y2=y3;x3=x2+h;y3=fun(x3);printf(fun(%f)=%f,fun(%f)=%f,fun(%f)=%fn,x1,y1,x2,y2,x3,y3);运行过程及结果:fun(2.560000)=16.953600,fun(5.120000)=11.014400,fun(10.240000)=38.4576002.黄金分割法源程序:#include#include#define f(x) x*x*x*x-5*x*x*x+4*x*x-6*x+6
3、0 double hj(double *a,double *b,double e,int *n) double x1,x2,s; if(fabs(*b-*a)/(*b)f(x2) *a=x1; else *b=x2; *n=*n+1; s=hj(a,b,e,n); return s; void main() double s,a,b,e,m; int n=0; printf(输入a,b值和精度e值n);scanf(%lf %lf %lf,&a,&b,&e); s=hj(&a,&b,e,&n); m=(a+b)/2; printf(a=%lf,b=%lf,s=%lf,m=%lf,n=%dn,a,
4、b,s,m,n); 运行过程及结果:输入a,b值和精度e值-350.0001a=3.279466,b=3.279793,s=22.659008,m=3.279629,n=213.二次插值法源程序:#include#includeint main(void) double a1,a2,a3,ap,y1,y2,y3,yp,c1,c2,m; double j3; int i,h=1; void finding(double a3); finding(j); a1=j0; a2=j1; a3=j2; m=0.001; double f(double x); y1=f(a1); y2=f(a2); y3
5、=f(a3); for(i=1;1=1;i+) c1=(y3-y1)/(a3-a1); c2=(y2-y1)/(a2-a1)-c1)/(a2-a3); ap=0.5*(a1+a3-c1/c2); yp=f(ap); if(fabs(y2-yp)/y2)0) if(y2=yp) a1=a2;y1=y2; a2=ap;y2=yp; else a3=ap;y3=yp; else if(y2=yp) a3=a2;y3=y2; a2=ap;y2=yp; elsea1=ap;y1=yp; double x,y; if(y2y0) h=-h; a2=a0;y2=y0; do a0=a1;a1=a2; y0=
6、y1;y1=y2; a2=a1+h;y2=f(a2); h=2*h; while(y2=1;i+) a2=a1+h;y2=f(a2); if(y2=y1) break; h=2*h; a0=a1;y0=y1; a1=a2;y1=y2; return;运行过程及结果:a*=5.000000y*=11.0000004.坐标轮换法源程序:#include #include #include float fun1(float x,float a,float b) float y; y=x+a*b; return y; float fun2(float x,float y) float z; z=4*(
7、x-5)*(x-5)+(y-6)*(y-6); return z; main() float d1003,x1003,xx3,ax1003; float a1,a2,a3,h,t,y1,y2,y3,e,a,b,l,fi; int i,k; printf(输入初始点坐标n); scanf(%f%f,&x01,&x02); e=0.000001; l=0.618; x21=x01; x22=x02; k=0; k-; do x01=x21; x02=x22; k+; for(i=1;iy1) h=-h; a3=a1; y3=y1; a1=a2; a2=a3; y1=y2; y2=y3; a3=a2
8、+h; xi1=fun1(xi-11,di1,a3); xi2=fun1(xi-12,di2,a3); y3=fun2(xi1,xi2); doa1=a2; y1=y2; a2=a3; y2=y3; a3=a2+h; xi1=fun1(xi-11,di1,a3); xi2=fun1(xi-12,di2,a3); y3=fun2(xi1,xi2); while(y3a3;) t=a3; a3=a1; a1=t; t=y1; y3=y1; y1=t; a=a1; b=a3; a1=b-l*(b-a); a2=a+l*(b-a); xi1=fun1(xi-11,di1,a1); xi2=fun1(x
9、i-12,di2,a1); y1=fun2(xi1,xi2); xi1=fun1(xi-11,di1,a2); xi2=fun1(xi-12,di2,a2); y2=fun2(xi1,xi2); if(be;) if(y1=y2) a=a1; a1=a2; y1=y2; a2=a+l*(b-a); xi1=fun1(xi-11,di1,a2); xi2=fun1(xi-12,di2,a2); y2=fun2(xi1,xi2); elseb=a2; a2=a1; y2=y1; a1=b-l*(b-a); xi1=fun1(xi-11,di1,a1); xi2=fun1(xi-12,di2,a1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械优化设计黄金分割法 外推法 机械 优化 设计 黄金分割

限制150内