您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页0.618法的matlab实现

0.618法的matlab实现

来源:爱go旅游网
胡楼下公变0.22/0.38kV线路农网升级改造工程

实验报告

实验题目: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]及精度要求L0,计算试探点1和1,计算函数值f(1)和f(1).计算公式是 令k1.

②若bkakL,则停止计算.否则,当f(k)f(k)时,转步骤③;当f(k)f(k)时,转步骤④. ③置ak1k,bk1bk,k1k,k1ak10.618(bk1ak1),计算函数值f(k1),转步骤⑤. ④置ak1ak,bk1k,k1k,k1ak10.382(bk1ak1),计算函数值f(k1),转步骤⑤. ⑤置k:k1,返回步骤②.

四.实验流程图及其MATLAB实现:

1.流程图:

置初始区间[a1,b1]及精度要求

计算试探点1和1 页脚内容2 计算函数值f(1)和f(1) 胡楼下公变0.22/0.38kV线路农网升级改造工程

Y 置ak1ak,bk1k,k1k 置ak1k,bk1bk,k1k 计算函数值f(k1) N

N

Y

计算函数值f(k1) 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)(2) 数值算例:

minf(x)def2x2x1,

初始区间[a1,b1][1,1],精度L0.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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务