黄金分割法
实验名称 黄金分割法 一、 实验目的:
掌握黄金分割法
二、 实验要求:
理解黄金分割法的算法的思想,利用计算机编写出此算法的程
序。
三、 实验学时数:
2学时
四、 实验类别:
基础实验
五、 实验内容:
min,(t),t(t,2)用黄金分割法求解,已知初始单谷敬意
,要求:(1)按精度;(2)按精度分别计算 ,,0.3,,0.001,,,,a,b,,3,5
六、 实验报告
a) 实验程序流程图
b) 主要模块代码
#include "stdio.h"
#include "math.h"
double f(double x)
{
return x*x+2*x;
}
void main( void)
{
double a1,y1,a2,y2,a,b,k,e;
a=-3; b=5; e=0.001; k=0.618;
a1=b-k*(b-a); y1=f(a1);
a2=a+k*(b-a); y2=f(a2);
while(fabs(b-a)>e)
{
if(y1>=y2)
{a=a1; a1=a2;y1=y2;
a2=a+k*(b-a); y2=f(a2);
}
else {
b=a2; a2=a1; y2=y1;
a1=b-k*(b-a); y1=f(a1);
}
}
printf("x*=%f\n",(a1+a2)/2);
printf("y*=%f\n",y1); }
c) 实例计算结果
i. 当时实例的计算结果 ,,0.3
ii. 当时实例的计算结果 ,,0.001
d) 收获体会