实验报告
实验题目:0.618法的MATLAB实现 学生姓名: 学号:
实验时间:2013-5-13
一.实验名称:0.618法求解单峰函数极小点 二.实验目的及要求:
1.了解并熟悉0.618法的方法原理,以及它的MATLAB实现. 2.运用0.618法解单峰函数的极小点.
三.实验内容:
1. 0.618法方法原理:
定理:设f是区间[a,b]上的单峰函数,x(1), x(2)[a, b],且x(1)x(2).如果f(x(1))f(x(2)),则对每一个
x[a,x(1)],有f(x)f(x(2));如果f(x(1))f(x(2)),
(2)则对每一个x[x, b],有f(x)f(x(1)).
根据上述定理,只需选择两个试探点,就可将包含极小点的区间缩短.事实上,必有 如果f(x(1))f(x(2)),则x[x(1),b];
页脚内容1
胡楼下公变0.22/0.38kV线路农网升级改造工程
如果f(x(1))f(x(2)),则x[a,x(2)].
0.618法的基本思想是,根据上述定理,通过取试探点使包含极小点的区间(不确定区间)不断缩短,当区间长度小到一定程度时,区间上各点的函数值均接近极小值,因此任意一点都可作为极小点的近似.
0.618法计算试探点的公式: 2. 0.618法的算法步骤:
①置初始区间[a1,b1]及精度要求L0,计算试探点1和1,计算函数值f(1)和f(1).计算公式是 令k1.
②若bkakL,则停止计算.否则,当f(k)f(k)时,转步骤③;当f(k)f(k)时,转步骤④. ③置ak1k,bk1bk,k1k,k1ak10.618(bk1ak1),计算函数值f(k1),转步骤⑤. ④置ak1ak,bk1k,k1k,k1ak10.382(bk1ak1),计算函数值f(k1),转步骤⑤. ⑤置k:k1,返回步骤②.
四.实验流程图及其MATLAB实现:
1.流程图:
置初始区间[a1,b1]及精度要求
计算试探点1和1 页脚内容2 计算函数值f(1)和f(1) 胡楼下公变0.22/0.38kV线路农网升级改造工程
Y 置ak1ak,bk1k,k1k 置ak1k,bk1bk,k1k 计算函数值f(k1) N
N
Y
计算函数值f(k1) 2. 代码及数值算例: (1) 程序源代码:
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;
页脚内容3
胡楼下公变0.22/0.38kV线路农网升级改造工程
m=n; elseb=n; n=m; end
ifabs(b-a) minf(x)def2x2x1, 初始区间[a1,b1][1,1],精度L0.16. (i)键入命令: >>[x,k]=GSe('2*x^2-x-1',-1,1,0.16) (ii)运行结果: x= 0.2229 k= 页脚内容4 胡楼下公变0.22/0.38kV线路农网升级改造工程 6 五.总结: 0.618法(黄金分割法)适用于单峰函数,故应先确定目标函数的单峰区间,方可进行迭代计算.但单峰区间不是很明显就能确定,故可用进退法寻找并确定单峰区间. 六.参考文献: 陈宝林编著《最优化理论与算法》清华大学出版社2005年10月第2版 页脚内容5 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务