机械优化设计 黄金分割法.docx
《机械优化设计 黄金分割法.docx》由会员分享,可在线阅读,更多相关《机械优化设计 黄金分割法.docx(10页珍藏版)》请在冰点文库上搜索。
机械优化设计黄金分割法
实验报告
实验课程名称机械优化设计
实验项目名称黄金分割法
年级
专业矿山机械
学生姓名
学号
实验时间:
2012年10月4日
学生所在学院:
材料学院专业:
矿山机械班级:
机自101403
姓名
学号
实验组
实验时间
2012/10/4
指导教师
成绩
实验项目名称
黄金分割法求函数极小值
实验目的及要求:
掌握机械优化设计方法并能够理论联系实际地加以应用,任务是将课程所学的知识应用于实践,通过实际编写调试及运行程序加深理论知识的掌握并提高解决优化问题的能力。
实验(或算法)原理:
搜索区间的确定:
利用单峰函数值高-低-高的特征;已知搜索起点和初始步长然后从起点开始以初始步长向前试探,如果函数值变大,则改变步长方向。
如果函数值下降,则维持原来的试探方向,并将步长加倍。
黄金分割法:
黄金分割法适用于确定区间上的任何单谷函数求极小值的问题。
对函数除要求“单谷”之外没有任何其他要求。
1.给出初始搜索区间,及收敛精度将其赋以0.618。
2.计算a1和a2,并计算起对应的函数值y1,y2。
3.根据期间消去法原理缩短搜索区间,为了能用原来的坐标点计算公式,需进行区间名称的代换,并在保留区间中计算一个新的试验点及其函数值
4.检查区间是否缩短到足够小和函数值收敛到足够近,如果条件不满足则返回到步骤2。
5.如果条件满足,则取最后两试验点的平均值作为极小点的数值近似解。
实验硬件及软件平台:
vs2010
实验步骤:
1.确定所需求解的函数y=3*x2+2*x+1
2.确定搜索区间
3.画出程序框图
4.用c语言在vs2010上写出源代码
5.运行程序
6.检验试验结果
7.分析实验结果
实验内容(包括实验具体内容、算法分析、源代码等等):
本实验解决;函数y=3*x2+2x+1的极小值的求法;
用一维搜索(搜索区间的确定),和黄金分割法求解。
程序额框图为:
一维搜索
黄金分割
源程序为:
#include
#include
#include
doublef(doublex)
{doubley;
doublex2;
x2=x*x;
y=3*x2+2*x+1;
returny;
}
voidmain()
{doubleh=0.02,y1=1,a1=0,a2=h,y2=f(a2),a3,y3,x1,x2,a,b,x;inti,j,n=0;
if(y2>y1)
{h=-h;a3=a1;y3=y1;gotoLab2;
}
else
gotoLab3;
Lab2:
a1=a2;y1=y2;a2=a3;y2=y3;
Lab3:
a3=a2+h;y3=f(a3);
if(y3{h=2*h;
gotoLab2;}
else
{printf("a1=%3lf,a2=%3lf,a3=%3lf,y1=%3lf,y2=%3lf,y3=%3lf,\n",a1,a2,a3,y1,y2,y3);
a=a1;b=a3;
system("pause");
}
Lab4:
x2=a+0.618*(b-a);
y2=f(x2);
Lab5:
x1=a+0.382*(b-a);
y1=f(x1);
Lab6:
if(fabs(b-a)<0.0000000004)
{x=(a+b)/2.0;
printf("x=%lfymin=%lf\n",x,f(x));
system("pause");
exit(0);}
else
{if(y1{b=x2;
x2=x1;
y2=y1;
n++;
printf("n=%d,x1=%3lf,y1=%3lf,x2=%3lf,y2=%3lf,a=%3lf,b=%3lf\n",n,x1,y1,x2,y2,a,b);
system("pause");
gotoLab5;}
if(y1==y2)
{a=x1;
b=x2;
n++;
printf("n=%d,x1=%3lf,y1=%3lf,x2=%3lf,y2=%3lf,a=%3lf,b=%3lf\n",n,x1,y1,x2,y2,a,b);
system("pause");
gotoLab4;
}
if(y1>y2)
{a=x1;
x1=x2;
y1=y2;
x2=a+0.618*(b-a);
y2=f(x2);
n++;
printf("n=%d,x1=%3lf,y1=%3lf,x2=%3lf,y2=%3lf,a=%3lf,b=%3lf\n",n,x1,y1,x2,y2,a,b);
system("pause");
gotoLab6;
system("pause");
}
}
}
实验结果与讨论:
运行截图
通过运行得到:
当x=0.333331时,y取得极小值ymin=0.66667
经验证是正确解
指导教师意见:
签名:
年月日