一维搜索外推法程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(实验)材料(1)
安徽工程大学
机械优化设计
课程设计(实验)报告
专业班级:车辆工程 110 设计题目:一维搜索外推法程序设计
学生姓名:王阔
学生学号:3110104206
任课教师:梁利东
年月日
一、设计要求:
基于一维搜索算法思想,运用外推法编写C语言程序,确定搜索初始单谷区间。
已知条件:
1、目标函数:f(x)=x*x-5*x+9
2、初始点及步长:x=0,h=0.1(可采用输出方式赋值)……外推法数值迭代求解:初始单谷区间并输出
二、方法原理
从X=0开始,以初始步长h向前试探。如果函数值上升,则步长变号,即改变试探方向。如果函数值下降,则维持原来的试探方向,并将步长加倍。区间的始点,中间点依次沿试探方向移动一步。此过程一直进行到函数值再次上升时为止,即可找到搜索区间的终点。最后得到的三点即为搜索区间的始点,中间点和终点,形成函数值的“高—低。高”趋势—三、程序清单:#include stdio.h
#include math.h
double f(double x)
{return (x*x-5*x+9);
}
void main()
{double x0,x1,y1,x2,y2,x3,y3,h0;
0.1;
=0;h0= x0.
x1=x0;y1=f(x1);
x2=x1+h0;y2=f(x2);
if (y2>y1)
{ h0=-h0;x3=x1;x1=x2;x2=x3; y3=y1;y1=y2;y2=y3;
}
x3=x2+h0;y3=f(x3);
while (y3 { h0=2*h0;x1=x2;y1=y2; x2=x3;y2=y3; x3=x2+h0;y3=f(x3); } if (h0<0) { x2=x1;x1=x3;x3=x2;} printf(硜?春屜屮,x1); printf(硜?春屜屮,x3); } 四、实验结果(要求附上程序运行结果截图) 五、手算过程