预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验报告 实验题目:0.618法的MATLAB实现 学生姓名: 学号: 实验时间:2013-5-13 实验名称:0.618法求解单峰函数极小点 实验目的及要求: 1.了解并熟悉0.618法的方法原理,以及它的MATLAB实现. 2.运用0.618法解单峰函数的极小点. 实验内容: 0.618法方法原理: 定理:设是区间上的单峰函数,,且.如果,则对每一个,有;如果, 则对每一个,有. 根据上述定理,只需选择两个试探点,就可将包含极小点的区间缩短.事实上,必有 如果,则; 如果,则. 0.618法的基本思想是,根据上述定理,通过取试探点使包含极小点的区间(不确定区间)不断缩短,当区间长度小到一定程度时,区间上各点的函数值均接近极小值,因此任意一点都可作为极小点的近似. 0.618法计算试探点的公式: 0.618法的算法步骤: =1\*GB3\*MERGEFORMAT①置初始区间及精度要求,计算试探点和,计算函数值和.计算公式是 令. =2\*GB3\*MERGEFORMAT②若,则停止计算.否则,当时,转步骤=3\*GB3\*MERGEFORMAT③;当时,转步骤=4\*GB3\*MERGEFORMAT④. =3\*GB3\*MERGEFORMAT③置,,,,计算函数值,转步骤=5\*GB3\*MERGEFORMAT⑤. =4\*GB3\*MERGEFORMAT④置,,,,计算函数值,转步骤=5\*GB3\*MERGEFORMAT⑤. =5\*GB3\*MERGEFORMAT⑤置,返回步骤=2\*GB3\*MERGEFORMAT②. 实验流程图及其MATLAB实现: 1.流程图: 开始 置初始区间及精度要求 计算试探点和 计算函数值和 Y N Y N 置,, 计算函数值 置,, 计算函数值 置 代码及数值算例: 程序源代码: function[x,k]=GSe(f,a,b,delta) %0.618法求解单峰函数极小点 f=inline(f); N=10000; fork=1:N m=a+0.382*(b-a); n=a+0.618*(b-a); iff(m)>f(n) a=m; m=n; elseb=n; n=m; end ifabs(b-a)<delta x=0.5*(b+a);break; end end 数值算例: , 初始区间,精度. (i)键入命令: >>[x,k]=GSe('2*x^2-x-1',-1,1,0.16) (ii)运行结果: x= 0.2229 k= 6 总结: 0.618法(黄金分割法)适用于单峰函数,故应先确定目标函数的单峰区间,方可进行迭代计算.但单峰区间不是很明显就能确定,故可用进退法寻找并确定单峰区间. 参考文献: 陈宝林编著《最优化理论与算法》清华大学出版社2005年10月第2版