资源描述:
《机械优化设计一维搜索实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《机械优化设计》实验报告班级:机械设计(2)班姓名:邓传淮学号:0901102008最新范本,供参考!1实验名称:一维搜索黄金分割法求最佳步长2实验目的:通过上机编程,理解一维搜索黄金分割法的原理,了解计算机在优化设计中的应用。3黄金分割法的基本原理 黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点α*的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数[6],即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对
2、称原则、以及等比收缩原则来逐步缩小搜索区间[7]。具体步骤是:在区间[a,b]内取点:a1,a2把[a,b]分为三段。如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+r*(b-a);如果f(a1)3、预先给定的精度时,即获得一维优化问题的近似最优解。黄金分割法原理如图所示,4实验所编程序框图(1)进退发确定单峰区间的计算框图最新范本,供参考!(2)黄金分割法计算框图最新范本,供参考!最新范本,供参考!5程序源代码(1)进退发确定单峰区间的程序源代码#include#include#definef(x)pow(x,4)-3*pow(x,3)-5*pow(x,2)-14*x+46main(){intk;doublex,h,x1,x2,x3;doublef1,f2,f3,f;doublea,b;x1=0;h=1;x
4、2=x1+h;f1=f(x1);f2=f(x2);if(f1>f2){h=2*h;x3=x2+h;f3=f(x3);}else{h=-h;x1=x2;f1=f2;x3=x2+h;f3=f(x3);}printf("x1=%lf,x2=%lf ",x1,x2);do{x1=x2;x2=x3;f1=f2;f2=f3;x3=x2+h;f3=f(x3);}while(f30){最新范本,供参考!a=x1;b=x3;}else{a=x3;b=x1;}printf("a=%lf,b=%lf",a,b);}(2)黄金分割法的程序源代码
5、#include#include#definef(x)=pow(x,4)-3*pow(x,3)-5*pow(x,2)-14*x+46main(){intk;doublex,h,x1,x2,x3,c;doublef1,f2,f3,f;doublea,b;printf("inputc:");scanf("%lf",&c);a=1;b=5;x1=b-0.618*(b-a);printf("x1=%lf",x1);f1=f(x1);printf("f1=%lf",f1);x2=a+0.618*(b-a);printf
6、("x2=%lf",x2);f2=f(x2);printf("f2=%lf",f2);k=0;loop:{if(f17、intf("f1=%lf",f1);x2=a+0.618*(b-a);printf("x2=%lf",x2);f2=f(x2);printf("f2=%lf",f2);}k=k+1;printf("k=%d",k);}if(fabs(b-a