课程设计(实验)材料(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);
}
四、实验结果(要求附上程序运行结果截图)
五、手算过程