0.618法的matlab和数值实验.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0.618法方法原理: 定理: 设是区间上的单峰函数, , 且. 如果, 则对每一个, 有; 如果, 则对每一个, 有. 根据上述定理, 只需选择两个试探点, 就可将包含极小点的区间缩短. 事实上, 必有 如果, 则; 如果, 则. 0.618 法的基本思想是, 根据上述定理, 通过取试探点使包含极小点的区间(不确定区间)不断缩短, 当区间长度小到一定程度时, 区间上各点的函数值均接近极小值, 因此任意一点都可作为极小点的近似. 0.618 法计算试探点的公式: 0.618法的算法步骤: = 1 \* GB3 ①置初始区间及精度要求, 计算试探点和, 计算函数值和. 计算公式是 令. = 2 \* GB3 ②若, 则停止计算. 否则, 当时, 转步骤 = 3 \* GB3 ③; 当时, 转步骤 = 4 \* GB3 ④. = 3 \* GB3 ③置, , ,, 计算函数值, 转步骤 = 5 \* GB3 ⑤. = 4 \* GB3 ④置, , ,, 计算函数值, 转步骤 = 5 \* GB3 ⑤. = 5 \* GB3 ⑤置, 返回步骤 = 2 \* GB3 ②. 实验流程图及其MATLAB实现: 1. 流程图: 开始 开始 置初始区间 置初始区间及精度要求 计算试探点和计算函数值 计算试探点和 计算函数值和 Y Y N N YN Y N 置, , 计算函数值 置, , 计算函数值 置, , 计算函数值 置 置 代码及数值算例: 程序源代码: function [x,k]=GSe(f,a,b,delta) % 0.618法求解单峰函数极小点 f=inline(f); N=10000; for k=1:N m=a+0.382*(b-a); n=a+0.618*(b-a); if f(m)f(n) a=m; m=n; else b=n; n=m; end if abs(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版

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档