您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 黄金分割法-机械优化设计-C语言程序
基于C语言的黄金分割法的优化设计1,黄金分割法的程序流程图2,对应流程图的C语言程序下面应用C语言程序利用黄金分割法求一元函数F=1.2*X^4-1*X^3-9*X^2-22*X+210的最优解,已知初始区间为[1,7],取收敛精度e=10-6。C语言程序如下://机械优化设计,黄金分割法(0.618法)的C语言源程序#includestdio.h#includemath.h#definef(x)1.2*pow(x,4)+(-1)*pow(x,3)+(-9)*pow(x,2)+(-22)*pow(x,1)+210//定义函数F=1.2*X^4-1*X^3-9*X^2-22*X+210#defineM0.618//定义常变量M=0.618,流程图中的λ用大写字母M代替voidmain(){doubley1,y2,x1,x2,x,a,b,e;//流程图中的а用x代替intn;n=1;printf(请输入收敛精度e=);//流程图中的收敛精度ε用小写字母e代替scanf(%lf,&e);printf(请输入区间左值a=);scanf(%lf,&a);printf(请输入区间右值b=);scanf(%lf,&b);printf(nabx1x2y1y2\n);x1=b-M*(b-a);x2=a+M*(b-a);y1=f(x1);y2=f(x2);printf(%d%.4lf%.4lf%.4lf%.4lf%.4lf%.4lf\n,n,a,b,x1,x2,y1,y2);n=n++;do{if(y1y2){b=x2;x2=x1;y2=y1;x1=b-M*(b-a);y1=f(x1);printf(%d%.4lf%.4lf%.4lf%.4lf%.4lf%.4lf\n,n,a,b,x1,x2,y1,y2);n=n++;}else{a=x1;x1=x2;y1=y2;x2=a+M*(b-a);y2=f(x2);printf(%d%.4lf%.4lf%.4lf%.4lf%.4lf%.4lf\n,n,a,b,x1,x2,y1,y2);n=n++;}}while(fabs((b-a)/b)=e&&fabs((y2-y1)/y2)=e);x=(a+b)*0.5;printf(x=%.5lf\n,x);getchar();}3.运行结果:
本文标题:黄金分割法-机械优化设计-C语言程序
链接地址:https://www.777doc.com/doc-5720194 .html