收藏 分享(赏)

最优化方法课程设计_斐波那契法分析与实现 完整版.doc

上传人:tangtianxu1 文档编号:2878254 上传时间:2018-09-29 格式:DOC 页数:17 大小:702.29KB
下载 相关 举报
最优化方法课程设计_斐波那契法分析与实现 完整版.doc_第1页
第1页 / 共17页
最优化方法课程设计_斐波那契法分析与实现 完整版.doc_第2页
第2页 / 共17页
最优化方法课程设计_斐波那契法分析与实现 完整版.doc_第3页
第3页 / 共17页
最优化方法课程设计_斐波那契法分析与实现 完整版.doc_第4页
第4页 / 共17页
最优化方法课程设计_斐波那契法分析与实现 完整版.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 最优化方最优化方 法法题 目 : 斐 波 那契 法 分析 与 实现 院 系 : 信息 与计 算 科学 学 院 专 业: 统 计 学 姓名 学号: 小 熊 熊 11071050137 指 导 教师 : 大胖胖 日 期: 2014 年 01 月 10 日摘 要科学的数学化是当代科学发展的一个主要趋势, 最优化理论与算法是一个重 要的数学分支, 它所研究的问题是讨论在众多的方案中什么样的方案最优以及怎 样找出最优方案.一维 搜索是 指寻求 一元函 数在某 个区间 上的最 优点的 方法. 这类 方法不 仅有 实用 价值 , 而且 大 量多维 最优化方 法都依 赖于一 系列 的 一维最 优化.本文 就

2、斐波 那契 法的 一 维搜 索 进行了 详细 的分析 ,并且 成功的 用 MATLAB 实现 了斐波 那契法 求解单峰函数的极小值问题.斐 波 那 契 法 的 一 维 搜 索 过 程 是 建 立 在 一 个 被 称 为 斐 波 那 契 数 列 的 基 础 上 进 行的 ,斐 波 那契 法 成功地 实现了单 峰函数 极值范 围的 缩 减.从理 论上来 说,斐 波 那契 法的 精 度比 黄 金分割 法要高. 但由 于斐波 那契 法 要事先 知道计算 函数值 的次 数, 故相比之下 , 黄金分割法更为简单一点 , 它不需要事先知道计算次数, 并且 当 n 7 时, 黄金分割法的收敛速率与斐波那契法越

3、来越接近.因此, 在实际应用 中, 常常采用黄金分割法 . 斐波那契法也是一种区间收缩算法, 和黄金分割法不 同的 是: 黄 金分 割 法每次 收缩只改 变搜索 区间的 一个 端 点,即 它是单 向收缩 法 . 而斐波那契法同时改变搜索区间的两个端点,是一种双向收缩法.关键字:一维搜索 斐波那契法 单峰函数 黄金分割法 MATLABAbstractMathematical sciences is a major trend in contemporary scientific development, optimization theory and algorithms is an impor

4、tant branch of mathematics, the problems it was discussed in numerous research programs in the best of what programs and how to find the optimal solution .One-dimensional search is the best method of seeking functions of one variable on the merits of a certain interval. Such methods not only have pr

5、actical value, but also a large number of multi-dimensional optimization methods rely on a series of one-dimensional optimization article on Fibonacci the one-dimensional search method carried out a detailed analysis, and successful in MATLAB Fibonacci method for solving unimodal function minimizati

6、on problem.Fibonacci method of one-dimensional search process is based on the Fibonacci sequence is called a Fibonacci conducted on, Fibonacci method successfully achieved a unimodal function extreme range reduction. Theory , Fibonacci method accuracy is higher than the golden section method, but th

7、e number of times due to the Fibonacci method to calculate function values to know in advance, so the contrast, the golden section method is more simply, it does not need to know in advance the number of calculations and at that time, the rate of convergence of golden section and the Fibonacci metho

8、d getting closer, so in practical applications, often using the golden section method. Fibonacci method is also a range contraction algorithm, and the golden section method the difference is: golden section each contraction only one endpoint to change the search range that it is unidirectional shrin

9、kage law Fibonacci search method while changing the two endpoints of the range, is a two-way contraction method.Key words: one-dimensional search Fibonacci method unimodal functionGolden Section function MATLAB目 录1.前言 11.1 一维搜索11.2 单峰函数11.3 单峰函数的性质12.斐波那契 法分析 22.1 区间缩短率22.2 斐波那契数列32.3 斐波那契法原理32.4 斐波

10、那契法与黄金分割法的关系63.斐波那契 法实现 73.1 斐波那契算法步骤73.2 斐波那契法的 MATLAB 程序83.3 斐波那契算法举例 104.课程设计 总结 124.1 概述 124.2 个人心得体会 125.参考文献 1301*1. 前言一维 搜索是 指寻求 一元函 数在某 区间上 的最优 值点的 方法. 这类 方法不 仅有 实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.斐 波 那 契 法 的 一 维 搜 索 过 程 是 建 立 在 一 个 被 称 为 斐 波 那 契 数 列 的 基 础 上 进 行的.从理论上来说, 斐波那契法的精度比黄金分割法要高.但由于斐波那契法

11、要 事先知道计算函数值的次数, 故相比之下, 黄金分割法更为简单一点 , 它不需要 事 先 知 道计 算 次 数 , 并 且当 n 7 时 , 黄 金分 割 法 的 收 敛 速率 与 斐 波 那 契 法越 来 越接近.因此,在实际应用中,常常采用黄金分割法.1.1 一维 搜索很 多 迭 代 下 降 算 法 具 有 一 个 共 同 点 , 即 得 到 点 x k 后 , 需 要 按 某 种 规 则 确 定 一个方向 d k , 再从 x k 出发 , 沿着方向 d k 在直线或射线上寻求目标函数的极小点, 进而得到 x k 的后继点 x k 1 .重复上面的做法, 直至求得问题的解.这里所谓求目

12、标函数在直线上的极小点,称为一维搜索或线性搜索.1.2 单峰 函数定 义 1 .2.1 设 f 是定义在闭 区间 a, b上的一元实 函数, x* 是 f 在 a, b上的极小点 , 对 x1 , x2 a, b 且 x1 x2 , 当 x2 x 时 , f x1 f x2 , 当 x* x 时 ,f x2 f x1 ,则称 f 是闭区间 a, b上的单峰函数.1.3 单峰 函数 的性质单 峰 函 数 具 有 很 重 要 的 性 质 : 通 过 计 算 闭 区 间 a, b内 两 个 不 同 点 处 的 函 数 值,就能确定一个包含极小点的子区间.这也是斐波那契法的理论基础.为了后面分析的方便

13、, 先证明下面的定理, 这个定理是斐波那契方法的理论 基础.定 理 1.3.1 设 f 是 闭 区 间 a, b 上 的 单 峰 函 数 , x1 , x2 a, b , 且 x1 x2 .如 果f x1 f x2 , 则 对 x a, x1 , 有 f x f x2 ; 如 果 f x1 f x2 , 则 对x x2 , b,有 f x f x1 .证明: (反证法)先证第一种情形.假设当 f x1 f x2 时, ,使得1xa,1*2f xf x2 . (1.3.1.1)显 然 x1 不 是 极 小 点 .这 时 有 两 种 可 能 性 , 要 么 极 小 点 x a, x1 , 要 么

14、x x1 , b .当 a, x1 时,根据单峰函数的定义,有f x2 f x1 . (1.3.1.2)这与假设矛盾.当 x1 , b时,根据单峰函数的定义,有f f x .1 (1.3.1.3)由 于 假 设 f x1 f x2 , 因 此 (1.3.1.3)式 与 (1.3.1.1)式 相 矛 盾 .综 上 可 知 , 当f x1 f x2 时,对 x a, x1 ,必有f x f x2 . (1.3.1.4)同理可以证明第二种情形.证毕. 根据上面的定理知: 只需选择两个试探点, 就可以将包含极小点的区间缩短.事 实 上 , 如 果 f x1 f x2 , 则 x x1 , b ; 如

15、果 f x1 f x2 , 则 x* a, x .这就是斐波那契法的理论基础.2. 斐波那契 法分析斐 波 那 契 法 的 一 维 搜 索 过 程 是 建 立 在 一 个 被 称 为 斐 波 那 契 数 列 的 基 础 上 进 行的.在此之前,有必要知道区间缩短率以及斐波那契数列的概念.2.1 区间 缩短 率定义 2.1.1 在逐次缩短区间时,设 )10(. )(10121211kkabab称 k k 1,2, 为区间缩短率.对于上面的 k 不外乎两种情况, 要么 k c , 要么 k c ( c 为常数).第一种2情况就可以引入前面提到的黄金分割法, 第二种情况就是下面要分析的斐波那契 法.

16、2.2 斐波 那契 数列斐波 那契 数列是 13 世纪 ,由意 大利 的数学 家列昂 纳多 斐波 那契 (Leonardo Fibonacci)提出 的,当 时和 兔子的 繁殖问 题有关 ,它是 一个 很重要 的数学 模型. 斐波 那契 数 列, 又 被称为“ 黄金 分割数 列 ”,它 指的 是 这样的 一个数 列:数列 的 第一个和第二个数都为 1,接下来每个数都等于前面两个数的和.在数学上,斐波那契数列有如下的递归定义: ,.32,10nFn故,斐波那契数列如表 2.2.1 所示.表 2.2.1 斐 波 那 契 数 列 表n 0 1 2 3 4 5 6 7 8 9 Fn 1 1 2 3 5

17、 8 13 21 34 55 斐波那契数列的通项公式(又称为“比内公式”)如下: nnna25151此时 ).,3(,1*2121 Nan2.3 斐波那契法原理在定义 2.1.1中,若 ,可取 .其中 满足斐波那契数列的递为 常 数 )ckkF1k推关系。斐波那契法成功地实现了单峰函数极值范围的缩减.现设某一单峰函数在闭区间a,b上有一极小点 ,则在此区间内任意取两点 ,使得xf *x 1ba和 1分别计算其函数值可能出现的以下两种情况:(1) .13.2., 11 所 示如 图内必 在此 时 极 小 点 babfa(2) *所 示如 图内必 在此 时 极 小 点f34可以看出, 只要在闭区间

18、 a, b内任意取两点 a1 和 b1 a1 b1 , 再计算其函数值加以比较,就可以把区间 a, b缩短成 a, b1 或 a1 , b.若要继续缩短搜索区间, 只需要在前一次区间内再取一点算出其函数值并与 f a1 或 f b1 加以比较即可. 因此, 计算函数的次数越多, 搜索区间就会缩得越小, 即区间的缩短率与函数的计算次数有关.下面分析如何确定试探点.假 设 第 k 次 试 探 前 的 区 间 为 ak 1 , bk 1 , 试 探 点 为 pk 、 qk , n 为 达 到 预 定 精度 需 要计算函数的次数,则有: .1,2,.,11nkabFaqpknkknk现在先证明用(2.

19、3.1)和(2.3.2)计算试探点时,第 k次迭代区间长度的缩短率为: 1knF分别考虑一下两种情形:(1) kkkk baqfpf 11,时 , 令当 kknkknknk abFabFFba 1111当 f pk f qk 时,令 ak 1 ak , bk 1 qk ; kknkknkkk abFaFb 111从上面的结果可以看出,不论哪种情形,区间缩小的比例都是一样的.利用上述比值,可以计算出经 n 1 次迭代 k n 1 所得到的区间长度.32112 abFFabFann 由此可知,只要 给定初始区间的长度 b1 a1 和精度要求 ,就可以求出计 算函数值的次数 n .令 b a ,即

20、,故可以推出:n1故先用(2.3.3)式计算出斐波那契数 Fn ,再根据 Fn 确定计算函数值的次数 n . 由于第5一次迭 代需计算两个试探点, 以后每次计算一个.因此,经过 n 1 次迭代就计算完 n 个试探点.注意, 在第 n 1 次迭代中并没有选择新的试探点 .根据(2.3.1)式和(2.3.2)式,必有 112nnbaqp又 因 为 pn1和 qn1 中 的 一 个 取 自 第 n 2 次 迭 代 中 的 试 探 点 .为 了 在 第 n 1 次 迭 代中能够缩短不确定区间,可以在第 n 2 次迭代之后(此时,已确定 pn1 qn1 ),在 pn1 的左边或右边取一点令: 0其 中

21、辨 别 常 数q2.4 斐波 那契 法与黄 金分 割法的 关系斐波那契法也是一种区间收缩算法, 和黄金分割法不同的是: 黄金分割法每 次收 缩只 改 变搜 索 区间的 一个端点 ,即它 是单向 收缩法. 而斐 波那契 法同时 改变 搜索区间的两个端点,是一种双向收缩法.可以证明,黄金分割法可作为斐波那契法的极限形式. 斐波那契数列的递推关系为Fk 1 Fk Fk 1 , (2.4.1)其特征方程为2 - - 1 0 , (2.4.2)解(2.4.2)式,可以得到两个根251251,(2.4.3)满足递推关系(2.4.1)的一般解是(2.4.4)kkcF21又因为 F0 F1 1 ,故 1121

22、 22544, kkkFcc) 式 , 可 得) 式 代 入 (将 (6因此有: 618.0limli 1211 nnnn cF很明显,这个极限值恰好是黄金分割法中的参数 .所以 ,从理 论上来 说,斐 波那契 法的精 度比黄 金分割 法要高 .斐波 那契法 的 缺点 是要 事 先求 出 计算函 数值的次 数.相比 之下, 黄金分 割法来 得更简便 一点, 它不需要事先知道计算次数, 而且收敛速率与斐波那契法比较接近, 当 n 7 时,有618.0nF因此,在实际应用中,一般采用黄金分割法.3. 斐波那契 实现通过对上面的斐波那契法的原理进行分析之后, 可以写出斐波那契算法的步 骤如下:3.1

23、 斐波 那契 算法步 骤用斐波那契法求无约束问题 min f x, x R 的基本算法步骤如下: 选定初始区间和精度要 求 0 ,利用下式)(11abFn求出计算函数值的次数 n .并设 0 .接着由下式112abFaqpnn计算试探点 p1和 q1 .令 k 1 .如果 f pk 令f qk ,转;否则转 . )(1111 kknkkabFaqpb若 k n 2 ,则转;否则转.令7 1111 kknkkabFaqpb若 k n 2 ,则转;否则转.令 k k 1,转.令 pn pn1 , qn pn1 ,计算 f pn 和 f qn .若则令ff1nba否则令np停止计算,极小点 bax,

24、*3.2 斐波 那契 法的 MATLAB 程序用 MATLAB 编写斐波那契法程序如下所示: function x,minf = minFBNQ(f,a,b,delta,eps) format long;if nargin=4 %输入 参数 的个 数eps=1.0e-6;endF=ones(2,1); %产生 一个 2行 1列值 全为 1的矩 阵N=(b-a)/eps; c=F(2)-N; n=2;while cfqa=p; %第一 种情 况, 改变 区间 的左 端点p=q;q=a+F(n-k-1)*(b-a)/F(n-k); %缩短 搜索 区间if(k=n-3)8break;else k=k

25、+1;end elseb=q; %第二 种情 况, 改变 区间 的右 端点q=p;p=a+F(n-k-2)*(b-a)/F(n-k); %缩短 搜索 区间if(k=n-3)break;else k=k+1;endendendif k=100000 disp(未找 到最 小值 ! );x=NaN;minf=NaN; %not a number!return;endq=p+delta; fp=subs(f,findsym(f),p); fq=subs(f,findsym(f),q); if fpfqa=p;else b=p;end x=(a+b)/2; minf=subs(f,findsym(f)

26、,x); format short;end调用格式: x, min f min FBNQ f , a, b, delta, eps . 符号说明:x 目标函数取最小值时的自变量;min f 目标函数的最小值;f 目标函数;a 极值区间左端点; b 极值区间右端点; delta 算法结束参数;eps 精度 ;3.3 斐波 那契 算法举 例现在,用上面的 MATLAB 程序求解两个一维搜索问题,并进行验证. 问题一:9试用斐波那契法求函数 f x 3x 2 12x 10 的极小点, 要求缩短后的区 间不大于初始给定的区间 1,4的 0.05 倍.解:在 MATLAB 窗口输入如下命令 syms x

27、; f=3*x2-12*x+10; x,minf=minFBNQ(f,1,4,0.05)运行结果为x =2.0000minf =-2.0000下面用数学分析的方法来验证所求结果的正确性:因为 f x 3x 2 12x 10 是二次函数,将其配方后可得 f x 3x 22 2 .对称轴为直线 x 2 .由于 x 2 1,4, 抛物线的开口向上, 故在顶点处取得极小值 (也 是 最 小 值 ).顶 点 的 纵 坐 标 y 2 即 为 函 数 f x 3x 2 12x 10 在 区 间 1,4上的极小点.证毕.因此, 这个结果和用 MATLAB 求解的结果是一致的.说明了斐波那契法的正确性.问题二:

28、用斐波那契法求解下列问题min f x 2x 2 x 1 . 初始区间为 1,1,精度要 求 0.16 .解:在 MATLAB 窗口输入如下命令 syms x; f=2*x2-x-1; x,minf=minFBNQ(f,-1,1,0.16)运行结果为x =0.2500minf =-1.125010下面用数学分析的方法验证所求结果的正确性:二次函数 的对称轴 抛物线的开口向上故12xf 1,42abx在顶点处取得最小值.顶点纵坐标为 即为函数25.89cy在区间-1,1 上的极小点(也是最小点).证毕2xf所以,跟上一个问题的结论一样,这个结果证明了斐波那契法的正确性.4. 课程设计 总结4.1

29、 概述 最优化理论与算法是一个重要的数学分支, 它所研究的问题是讨论在众多的方案 中什么 样的方 案最优 以及怎样 找出最 优方案 .求解 最优问 题是一 个艰难 而具 有挑战性的过程, 最优化方法涵盖了无约束最优化问题、 凸集与凸函数 、 等式约 束最优化问题和不等式约束最优化问题等知识点.本次课程设计的题目是: 斐波那契分析与实现. 斐波那契法的一维搜索过程 是建立在一个被称为斐波那契数列的基础上进行的, 斐波那契法成功地实现了单 峰 函 数 极 值 范 围 的 缩 减 .从 理 论 上 来 说 , 斐 波 那 契 法 的 精 度 比 黄 金 分 割 法 要 高 . 但由于斐波那契法要事先

30、知道计算函数值的次数, 故相比之下, 黄金分割法更为 简 单 一 点, 它 不 需 要 事 先 知 道 计 算 次 数 ,并 且 当 n 7 时 , 黄 金分 割 法 的 收 敛 速 率与 斐波 那 契法 越 来越接 近.因此 ,在实 际应用 中, 常 常采用黄 金分割 法. 斐波 那契法也是一种区间收缩算法, 和黄金分割法不同的是: 黄金分割法每次收缩只 改变 搜索 区 间的 一 个端点 ,即它是 单向收 缩法. 而 斐 波那契 法同时 改变搜 索区间 的两个端点,是一种双向收缩法.4.2 个人 心得 体会 通过本次课程设计, 我知道了一维搜索的概念, 深刻理解了单峰函数的定义和 性 质 .

31、学 会 了 区 间 缩 短 率 是 怎 样 定 义 的 以 及 斐 波 那 契 数 列 的 定 义 和 性 质 .在 此 基础上, 我还深刻理解了斐波那契法进行一维搜索的原理, 并且知道了一维搜索 的斐 波那契 法与黄 金分割 法的关系 ,并进 行相关 证明和 验证, 增强了 说服力.另 外, 我成功 的实现 了斐波 那契 算法的 MATLAB 程序 并用数 学分析 的理论 方法 证明 了程 序求解 的正 确性.通过 斐波那 契的 MATLAB 实现 ,让我 更加 熟悉 MATLAB 编程 了,感觉使用 MATLAB 软件求解很多数学问题还是很方便的.115. 参考文献1 陈宝林.最优化理论与算法M.北京:清华大学出版社,2005.2 董文 永,刘 进,丁 健立, 朱福喜 .最优 化技术 与数学 建模 M.北京 :清华 大 学出版社,2010.3 张光澄.非线性最优化计算方法M.北京:高等教育出版社,2005.4 龚纯,王正林.精通 MATLAB 最优化计算(第 2 版)M.北京:电子工业出版 社,2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报