搜索
您的当前位置:首页机械优化设计实验报告

机械优化设计实验报告

来源:乌哈旅游
《机械优化设计》课程论文

(2010-2011学年第二学期)

姓名: 张晓翔 班级:机械设计(4)班 学号: 0901104040 指导老师:黄致建老师

华侨大学厦门工学院

机械工程系

2011年12月12日

机械优化设计黄金分割法求最优值

1、黄金分割法基本思路:

黄金分割法适用于[a,b]区间上的任何单股函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。因此,这种方法的适应面非常广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值。a1,a2将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。

2、目标函数方程:

F=0.8*x^4-5*x^3-1*x^2-10*x+151

3 程序流程图如下:

求区间,如下程序

#include #include

#define f(x) 0.8*pow(x,4)-5*pow(x,3)-1*pow(x,2)-10*x+151 main() {

double dum,y0,y1,y2,x0,x1,x2,h,e,a,b,k; printf(\"x0=\"); scanf(\"%lf\ printf(\"h=\"); scanf(\"%lf\ printf(\"e=\"); scanf(\"%lf\ y0=f(x0); x1=x0+h; y1=f(x1); if(y0dum=x0;x0=x1;x1=dum; dum=y0;y0=y1;y1=dum; }

for(k=0;ky2=f(x2); if(y1if(x0>x2)

{dum=x0;x0=x2;x2=dum;} } else {

x0=x1;x1=x2;

y0=y1;y1=y2; } }

a=x0;b=x2;

printf(\"a=%.4lf b=%.4lf\\n\}

区间[-20,10]精度0.0001 带入黄金分割法程序 #include \"stdio.h\"

#include \"math.h\" double f(double x) { return 0.8*pow(x,4)-5*pow(x,3)-1*pow(x,2)-10*x+151; }

void main( void) { double a1,y1,a2,y2,a,b,k,e; a=0; b=10; e=0.001; k=0.618; a1=b-k*(b-a); y1=f(a1); a2=a+k*(b-a); y2=f(a2); while(fabs(b-a)>e) { if(y1>=y2) {a=a1; a1=a2;y1=y2; a2=a+k*(b-a); y2=f(a2); } else { b=a2; a2=a1; y2=y1; a1=b-k*(b-a); y1=f(a1); } } printf(\"x*=%f\\n\ printf(\"y*=%f\\n\}

x*=4.9242084 y*=-49.144121

因篇幅问题不能全部显示,请点此查看更多更全内容

Top