最优化方法课程设计-斐波那契法分析与实现-完整版(新)_第1页
最优化方法课程设计-斐波那契法分析与实现-完整版(新)_第2页
最优化方法课程设计-斐波那契法分析与实现-完整版(新)_第3页
最优化方法课程设计-斐波那契法分析与实现-完整版(新)_第4页
最优化方法课程设计-斐波那契法分析与实现-完整版(新)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。同是寒窗苦读,怎愿甘拜下风!SCHU 5题 目:院 系:专 业:姓名学号:指导教师:最优化方法斐波那契法分析与实现信息与计算科学学院 统计学小 熊 熊 11071050137大胖胖日 期:2014年01月10日科学的数学化是当代科学发展的一个主要趋势, 最优化理论与算法是一个重 要的数学分支,它所研究的问题是讨论在众多的方案中什么样的方案最优以及怎 样找出最优方案.一维搜索是指寻求一元函数在某个区间上的最优点的方法 .这类方法不仅有 实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化 .本文就斐波 那契法的一维搜索

2、进行了详细的分析,并且成功的用 MATLA眩现了斐波那契法 求解单峰函数的极小值问题.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的,斐波那契法成功地实现了单峰函数极值范围的缩减.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要事先知道计算函数值的次 数,故相比之下,黄金分割法更为简单一点,它不需要事先知道计算次数,并且 当n 7时,黄金分割法的收敛速率与斐波那契法越来越接近.因此,在实际应用 中,常常采用黄金分割法.斐波那契法也是一种区间收缩算法,和黄金分割法不 同的是:黄金分割法每次收缩只改变搜索区间的一个端点,即它是单向收缩法 . 而斐波那契法同

3、时改变搜索区间的两个端点,是一种双向收缩法.关键字:一维搜索斐波那契法单峰函数黄金分割法 MATLABAbstractMathematical sciences is a major trend in contemporary scientific development, optimization theory and algorithms is an important branch of mathematics, the problems it was discussed in numerous research programs in the best of what programs

4、 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 practical value, but also a large number of multi-dimensional optimization methods rely on a series of one-dimensional

5、 optimization article on Fibonacci the one-dimensional search method carried out a detailed analysis, and successful in MATLAB Fibonacci method for solving unimodal function minimization problem.Fibonacci method of one-dimensional search process is based on the Fibonacci sequence is called a Fibonac

6、ci conducted on, Fibonacci method successfully achieved a unimodal function extreme range reduction. Theory , Fibonacci method accuracy is higher than the golden section method, but the number of times due to the Fibonacci method to calculate function values to know in advance, so the contrast, the

7、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 method getting closer, so in practical applications, often using the golden section method. Fibonacci method is also a ra

8、nge 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 shrinkage law Fibonacci search method while changing the two endpoints of the range, is a two-way contraction method.Key

9、words: one-dimensional search Fibonacci method unimodal functionGolden Section function MATLAB1 .前言 11.1 一维搜索11.2 单峰函数11.3 单峰函数的性质12 .斐波那契法分析 22.1 区间缩短率22.2 斐波那契数列32.3 斐波那契法原理32.4 斐波那契法与黄金分割法的关系63 .斐波那契法实现 73.1 斐波那契算法步骤73.2 斐波那契法的MATLA程序83.3 斐波那契算法举例 104 .课程设计总结124.1 概述 124.2 个人心得体会 125 .参考文献13所谓的光辉

10、岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。1 .前言一维搜索是指寻求一元函数在某区间上的最优值点的方法.这类方法不仅有 实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要 事先知道计算函数值的次数,故相比之下,黄金分割法更为简单一点,它不需要事先知道计算次数,并且当n 7时,黄金分割法的收敛速率与斐波那契法越来 越接近.因此,在实际应用中,常常采用黄金分割法. 1.1 一维搜索很多迭代下降算法具有一个共同点,即得到点xk后,需要

11、按某种规则确定一个方向d k,再从xk出发,沿着方向d k在直线或射线上寻求目标函数的极小点,进而得到xk的后继点xk1.重复上面的做法,直至求得问题的解.这里所谓求目标函数在直线上的极小点,称为一维搜索或线性搜索. 1.2单峰函数定义1.2.1 设f是定义在闭区间a, b上的一元实函数,x*是f在a,b上的极小 *点,对x1,x2a,b 且 x1x2,当x2x 时,fxfx2,当 xx1时,f x2f x1 ,则称f是闭区间a,b上的单峰函数. 1.3单峰函数的性质单峰函数具有很重要的性质:通过计算闭区间a,b内两个不同点处的函数值,就能确定一个包含极小点的子区间.这也是斐波那契法的理论基础

12、.为了后面分析的方便,先证明下面的定理,这个定理是斐波那契方法的理论 基础.定理1.3.1设f是闭区间a, b上的单峰函数,x1, x2 a,b ,且x m .如果f xfx2,则对 xa, x,有 f x fx2;如果 fxfx2,则对x x2 ,b,有 f x f x1 .证明:(反证法)先证第一种情形.假设当f x1f x2时,X a, x1 ,使得f x2(1.3.1.1)显然不是极小点.这时有两种可能性,要么极小点 x a, X1 ,要么x Xi,b .当Xa, xi时,根据单峰函数的定义,有f x2f x1 .031Z这与假设矛盾.当xxi,b时,根据单峰函数的定义,有f x f

13、x .(1.3.1.3)由于假设f xif x2 ,因此(1.3.1.3)式与(1.3.1.1)式相矛盾.综上可知,当f xif x2 时,对 x a, x,必有f x f x2 .(1.3.1.4)同理可以证明第二种情形.证毕.根据上面的定理知:只需选择两个试探点,就可以将包含极小点的区 间缩短.事实上,如果 fxifx2,则 x*xi,b;如果 fxifx2,则 x a, x 2 .这就是斐波那契法的理论基础.2 .斐波那契法分析斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 的.在此之前,有必要知道区间缩短率以及斐波那契数列的概念. 2.1区间缩短率bi a1i(0 i

14、 1)2(02 1)akbk 1ak 1k(0 k 1)定义2.1.1在逐次缩短区间时,设 h ai b a同是寒窗苦读,怎愿甘拜下风!称k k 1,2,为区间缩短率.所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。对于上面的k不外乎两种情况,要么k c ,要么k c ( c为常数).第一种 情况就可以引入前面提到的黄金分割法,第二种情况就是下面要分析的斐波那契 法. 2.2斐波那契数列斐波那契数列是13世纪,由意大利的数学家列昂纳多斐波那契(LeonardoFibonacci)提出的,当时和兔子的繁殖问题有关,它是一个很重要的数学模型.斐波那契数列,又被称为“黄金分割

15、数列”,它指的是这样的一个数列:数列的第一个和第二个数都为1,接下来每个数都等于前面两个数的和.在数学上,斐波那契数列有如下的递归定义:Fo Fi 1Fn Fn 1 Fn2,n 2,3,.故,斐波那契数列如表2.2.1所示.表2.2.1斐波那契数列表n0123456789Fn11235813213455斐波那契数列的通项公式(又称为“比内公式”)如下: n n11515an 522此时 a11, a2 1,an an 1 an 2(n 3, n N*).2.3斐波那契法原理在定义2.1.1中,若kc(c为常数),可取k旦.其中Fk满足斐波那契数列的递推关系。斐波那契法成功地实现了单峰函数极值范

16、围的缩减.现设某一单峰函数f X在闭区ia,b上有一极小点x ,则在此区间内任息取两点a1和b,使得a1 b 分别计算其函数值可能出现的以下两种情况:(1) f a1 f句,此时极小点x*必在a,b1内.如图2.3.1所示.(2) f a1 f b1,此时极小点x*必在”,b内.如图2.3.2所示.同是寒窗苦读,怎愿甘拜下风!/(V)图2.3. 2情况的单峰函数图/(父)图2, 3. 2情况的单峰函数图可以看出,只要在闭区间a, b内任意取两点a1和b1ab1 ,再计算其函数值加以比较,就可以把区间 a, b缩短成a, bi或a1, b .若要继续缩短搜索区间,只需要在前一次区间内再取一点算出

17、其函数值并与f 4或f b加以比较即可.因此,计算函数的次数越多,搜索区间就会缩得越小,即区间的缩 短率与函数的计算次数有关.下面分析如何确定试探点.假设第k次试探前的区间为ak 1 , bk 1,试探点为Pk、qk, n为达到预定精度需 要计算函数的次数,则有:Pk akqkakJ bFn k 1d bkFn k1ak , k 1,2nak ,k 1,2,n1.1.)和(2.3.2 )计算试探点时,第k次迭代区间长度的缩现在先证明用(2.3.1短率为:上0Fnk1所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。分别考虑一下两种情形:(1)当 fPkf qk时,令 ak

18、 iak, bk ibkbk iak ibkPkakFn k i ,Fbkn k iakFn k i ,F bkn k iakFn k ,-bkakFn k i当f Pk时,令 ak iak , bk iqk ;ak i qk akakFn kFn k ibkakakFnFn k ibkak从上面的结果可以看出,不论哪种情形,区间缩小的比例都是一样的利用上述比值,可以计算出经nbn an 且 bni an i 互&F2F2 F3i次迭代kFn1 bFnain iFni所得到的区间长度.biaia和精度要求,就可以求出计算,故可以推出:ai由此可知,只要给定初始区间的长度 bi 函数值的

19、次数n.令b a ,即2b aiFnFn ) b故先用(2.3.3)式计算出斐波那契数Fn ,再根据Fn确定计算函数值的次数n .由于第 一次迭代需计算两个试探点,以后每次计算一个.因此,经过n i次迭代就计算完n个试探点.注意,在第n i次迭代中并没有选择新的试探点.根据(2.3.(1) (2.3.2)式,必有i hpni qn i an i bn i2又因为Pni和qni中的一个取自第n 2次迭代中的试探点.为了在第n i次迭代中能够缩短不确定区间,可以在第n 2次迭代之后(此时,已确定Pn i qni ),在Pn i的左边或右边取一点令:Pn Pn i qn Pn i 其中辨别常数0 2

20、.4斐波那契法与黄金分割法的关系斐波那契法也是一种区间收缩算法, 和黄金分割法不同的是:黄金分割法每 次收缩只改变搜索区间的一个端点,即它是单向收缩法 .而斐波那契法同时改变 搜索区间的两个端点,是一种双向收缩法.可以证明,黄金分割法可作为斐波那契法的极限形式.斐波那契数列的递推关系为 同是寒窗苦读,怎愿甘拜下风!所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。其特征方程为解(2.4.2)式,可以得到两个根Fk iFk Fki ,(2.4.1)(2.4.2)(2.4.3)满足递推关系(2.4.1)的一般解是(2.4.4)kkkc1 1 c2 2又因为F0F11 ,故1、

21、55 1c1 , c2 2.52.5将(2.4.5)式代入(2.4.4)式,可得_ k 1_ k 111.51.5F k 522因此有:limnFnFnlimnC1nc110.618同是寒窗苦读,怎愿甘拜下风!很明显,这个极限值恰好是黄金分割法中的参数所以,从理论上来说,斐波那契法的精度比黄金分割法要高.斐波那契法的缺点是要事先求出计算函数值的次数 .相比之下,黄金分割法来得更简便一点, 它不需要事先知道计算次数,而且收敛速率与斐波那契法比较接近,当n 7时,有Fn-1 0.618Fn因此,在实际应用中,一般采用黄金分割法3.斐波那契实现通过对上面的斐波那契法的原理进行分析之后,可以写出斐波那

22、契算法的步骤如下: 3.1斐波那契算法步骤用斐波那契法求无约束问题min f x,x R的基本算法步骤如下:选定初始区间和精度要求0 ,利用下式L 1 Z.、F n 也 al)求出计算函数值的次数n.并设 0.接着由下式Pi ai -Fn2 bi aiFnq1 a1 -Fn b a1Fn计算试探点p1和q1.令k 1.如果f Pk f qk ,转;否则转.令ak 1 Pk bk 1 bkPk 1 qkFn k 1qk 1 ak 1(bk 1 ak 1)Fn k若k n 2,则转;否则转. 令ak 1 Pk bk 1 bk Pk 1 qkn o Fn k 1qk 1 ak 1bk 1 ak 1F

23、n k若k n 2,则转;否则转.令k k 1,转.令 Pn Pn 1, qn Pn 1f Pnf qn则令an bn否则令an bn,计算f Pn和f % .若Pnbn 1an 1Pn所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。停止计算,极小点xan,bn 3.2斐波那契法的MATLABS序用MATLA踹写斐波那契法程序如下所示:function x,minf = minFBNQ(f,a,b,delta,eps) format long ; if nargin=4%俞入参数的个数eps=1.0e-6; end F=ones(2,1);%产生一个2行1列值全为1的矩

24、阵N=(b-a)/eps; c=F(2)-N; n=2; while c<0 %出计算函数值的次数nn=n+1; F(n尸F(n-1)+F(n-2); c=F(n)-N; end p=a+F(n-2)*(b-a)/F(n);%p和 q 为试探点q=a+F(n-1)*(b-a)/F(n); k=1; while 1 fp=subs(f,findsym,p);%fp和fq为试探点的函数值fq=subs(f,findsym,q); if fp>fq a=p;%第一种情况,改变区间的左端点p=q; q=a+F(n-k-1)*(b-a)/F(n-k);面短搜索区间if (k=n-3) bre

25、ak ; else k=k+1; end else b=q;%第二种情况,改变区间的右端点q=p; p=a+F(n-k-2)*(b-a)/F(n-k);%!短搜索区间if (k=n-3) break ; else k=k+1; end end end if k=100000 disp( '未找到 同是寒窗苦读,怎愿甘拜下风!所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。最小值!);x=NaN;minf=NaN; %not a number!return ;endq=p+delta;fp=subs(f,findsym(f),p);fq=subs(f,findsy

26、m(f),q);if fp>fqa=p;elseb=p;end x=(a+b)/2;minf=subs(f,findsym(f),x);format short ;end调用格式:x, min f min FBNQ f ,a, b, delta, eps .符号说明:x目标函数取最小值时的自变量;min f 目标函数的最小值;f 目标函数;a 极值区间左端点;b 极值区间右端点;delta算法结束参数;eps精度; 3.3斐波那契算法举例现在,用上面的MATLABi序求解两个一维搜索问题,并进行验证.问题 一:试用斐波那契法求函数f x 3x2 12x 10的极小点,要求缩短后的区间不大

27、于初始给定的区间1,4的0.05倍.解:在MATLAB! 口输入如下命令>> syms x;>> f=3*xA2-12*x+10;>> x,minf=minFBNQ(f,1,4,0.05)运行结果为x =2.0000minf =-2.0000>>下面用数学分析的方法来验证所求结果的正确性:因为f x 3x2 12x 10是二次函数,将其配方后可得 fx 3x 2 2 2 .对称轴为直线x 2 .由于x 2 1,4 ,抛物线的开口向上,故在顶点处取得极小值(也是最小值).顶点的纵坐标y 2即为函数f x 3x2 12x 10在区间1,4 上的极小点

28、.证毕.因此,这个结果和用MATLABt解的结果是一致的.说明了斐波那契法的正确 性.问题二:用斐波那契法求解下列问题min f x2x2 x 1.初始区间为1,1 ,精度要求0.16.解:在MATLABJ 口输入如下命令> > syms x;> > f=2*xA2-x-1;> > x,minf=minFBNQ(f,-1,1,0.16)运行结果为x =0.2500minf = -1.1250>>下面用数学分析的方法验证所求结果的正确性:b 1二次函数f x2x2 x 1的对称轴x 1,1抛物线的开口向上故2a 4在顶点处取得最小值.顶点纵坐标为yb4ac91.125即为函数4a 82f x 2x x 1在区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论