最优化方法课程设计-斐波那契法分析与实现-完整版(新)
最优化算法实验2-0.618法与斐波那契法

0.618法(斐波那契法)的Matlab 实现实验目的:1、通过本次实验了解线性搜索,加深对试探法的理解2、根据0.618法(斐波那契法)的算法步骤编写相应的Matlab 程序,并利用matlab 程序计算求解实验要求:1、学习MATLAB 利用0.618法(斐波那契法)解决最优化问题的程序设计方法。
2、对问题进行编程和解决问题。
3、按照格式规范,撰写计算机实践报告。
实验内容:1. 0.618法的基本思想:通过取代试探点和进行函数值的比较,使包含极小点的搜索区间不断缩短,当区间长度缩短到一定程度时,区间上各点的函数值均接近极小值点的近似。
使用前提:要求所考虑区间上的目标函数是单峰函数,即在这个区间上只有一个局部极小点的函数。
2.算法步骤:步 1.选取初始数据。
确定初始搜索区间[]11,b a 和精确要求t>0,设置初始试探点11,μλ,)(618.0)(382.011111111a b a a b a -+=-+=μλ计算。
,令和1)()(11=k μϕλϕ 步 2.比较目标函数值。
若)(1λϕ>)(1μϕ,转步3;否则转步4。
步 3.若t b k k ≤-λ,则停止计算,输出k μ;否则,令:)(618.0:),(:)(,:,:,:111111k k k k k k k k k k k k a b a b b a -+=====++++++μμϕλϕμλλ计算)(11+k μϕ,转步2。
步4.若t a k k ≤-μ,则停止计算,输出k λ;否则,令)(382.0:),(:)(,:,:,:111111k k k k k k k k k k k k a b a b a a -+=====++++++λλϕμϕλμμ计算)(11+k λϕ,转步2。
3.编写0.618法Matlab 程序求解最优化问题y=cos3x 在区间[1,2]上的最优值.4.参照0.618法算法为例编写菲波那切法Matlab 程序.。
最优化课程设计

最优化课程设计一、课程目标知识目标:1. 学生能理解并掌握本章节最优化问题的基本概念,包括线性规划、整数规划和非线性规划等;2. 学生能够运用数学模型解决实际问题,并进行合理优化;3. 学生掌握常用的最优化方法,如单纯形法、分支定界法和梯度下降法等。
技能目标:1. 学生能够运用数学软件(如MATLAB、Excel等)进行最优化问题的求解;2. 学生通过小组合作,提高团队协作能力和沟通表达能力;3. 学生具备分析实际问题时,能够运用所学知识进行问题抽象和建模的能力。
情感态度价值观目标:1. 学生培养对数学学科的热爱,增强对最优化问题的兴趣;2. 学生通过解决实际最优化问题,培养解决问题的信心和耐心;3. 学生认识到数学知识在实际生活中的广泛应用,提高学习的积极性和主动性。
课程性质:本课程为数学学科的一章,主要研究最优化问题的基本概念、方法及其应用。
学生特点:学生为高中年级,具备一定的数学基础,对数学问题有一定的分析和解决能力。
教学要求:教师需结合学生特点,注重启发式教学,引导学生主动探究,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便于后续的教学设计和评估。
二、教学内容本章节教学内容主要包括以下几部分:1. 最优化问题的基本概念:介绍最优化问题的定义、分类和数学描述,包括线性规划、整数规划和非线性规划等。
2. 最优化方法:详细讲解以下几种常用最优化方法:- 单纯形法:解决线性规划问题;- 分支定界法:解决整数规划问题;- 梯度下降法:解决非线性规划问题。
3. 数学软件应用:结合实际案例,教授学生如何使用MATLAB、Excel等软件进行最优化问题的求解。
4. 实际案例分析与建模:选取与学生生活密切相关的实际案例,引导学生进行问题分析、建模和求解。
教学大纲安排如下:第一课时:最优化问题的基本概念;第二课时:线性规划及单纯形法的应用;第三课时:整数规划及分支定界法的应用;第四课时:非线性规划及梯度下降法的应用;第五课时:数学软件在求解最优化问题中的应用;第六课时:实际案例分析、建模与求解。
斐波那契数列快速算法-概述说明以及解释

斐波那契数列快速算法-概述说明以及解释1.引言1.1 概述斐波那契数列作为一个经典的数学问题,一直以来都受到广泛的研究和关注。
它的定义是:每个数都是前两个数的和,即第n个数为第n-1个数与第n-2个数的和。
斐波那契数列的前几个数字是0、1、1、2、3、5、8、13、21、34等。
常规算法是通过递归或循环生成斐波那契数列,但在求解大数列时,这些算法存在效率低下的问题。
因此,我们需要寻找一种更快速的算法来计算斐波那契数列。
本文将详细介绍一个快速算法,该算法可以快速地生成斐波那契数列的任意项,而不需要进行递归或循环。
通过使用矩阵的乘法,我们可以将斐波那契数列的计算转化为矩阵的幂运算。
本文的目的是介绍这种快速算法并分析其优势。
通过对比常规算法和快速算法的运行时间和空间复杂度,我们可以看到快速算法在求解大数列时的优势。
在接下来的章节中,我们会首先介绍斐波那契数列的基本概念和问题背景。
然后,我们将详细讨论常规算法的实现原理和缺点。
接着,会逐步引入快速算法的原理和实现方法,并进行算法效率的对比分析。
最后,在结论部分,我们将对整篇文章进行总结,并重点强调快速算法的优势。
我们希望通过这篇文章的阐述,读者可以更深入地了解斐波那契数列的快速算法,以及在实际应用中的意义和价值。
1.2文章结构文章结构部分的内容可以描述文章的主要内容和组织结构,下面是一个例子:1.2 文章结构本文分为引言、正文和结论三个部分,每个部分都有自己的目标和重点。
下面将对每个部分的内容进行详细介绍。
1. 引言部分旨在引入斐波那契数列快速算法的背景和相关概念。
首先,我们将概述斐波那契数列的定义和特点,以及为什么需要快速算法来计算斐波那契数列。
其次,我们将介绍本文的结构,并列出各个部分的主要内容和目标。
最后,我们明确本文的目的,即通过快速算法探索斐波那契数列的计算方法。
2. 正文部分是本文的核心内容,将详细介绍斐波那契数列以及常规算法和快速算法的原理和实现。
欧拉法,改进欧拉法,斐波那契法原理及流程图

1欧拉法求微分方程方法说明欧拉(Euler)法是解常微分方程初值问题(4.1)最简单的数值方法,其具体做法是,将区间[a,b]进行N等分:,步长.并将式(4.1)写成等价的积分形式(4.2)再对式(4.2)右端积分用矩形公式计算,则有, (4.3)在式(4.3)右端取,舍去余项。
则得,作为的近似值。
在式(4.3)右端取,舍去余项,则得作为的近似值.一般地,在式(4.3)右端取舍去余项,则得(4.4)作为的近似值.式(4.4)为欧拉法计算公式.我们知道微分方程的解是平面上的一族积分曲线,这族曲线中过点的积分曲线就是初值问题式(4.1)的解.欧拉法的几何意义是,过点引斜率为的积分曲线的切线,此切线与直线的交点为,再过点引以为斜率的切线与直线的交点为,依此类推,从出发,作以为斜率的切线,此切线与直线交点为.于是便得到过点的一条折线,见图4.1.过的积分曲线则用此折线来代替.因此,这种方法亦称折线法.图4.1例:用欧拉法求微分方程[]2',(0)1,0.1,0,1x y y y h y 区间为=-==欧拉法流程图如下:欧拉法程序如下: clear;clc;x1=0; x2=1; h=0.1; x0=0; y0=1;N=(x2-x1)/h;%要计算的次数 x(1)=x0; y(1)=y0; for n=1:Nx(n+1)=x(n)+h;y(n+1)=y(n)+h*(y(n)-2*x(n)/y(n)); end X=x Y=y2改进欧拉法求微分方程方法说明由于欧拉法采用矩形公式计算积分产生较大截断误差.改进欧拉法(又称改进折线法)是采取梯形公式来计算式(4.3)右端积分,则有(5.1)在式(5.1)右端取,舍去余项,则得将作为的近似值.在式(5.1)右端再取,舍去余项,则得将作为的近似值.一般地,在式(5.1)右端取,舍去余项.则得(5.2)将作为的近似值.式(5.2)为改进欧拉法计算公式.流程图如下:例:用改进欧拉法求微分方程[] 2',(0)1,0.1,0,1xy y y hy区间为=-==改进欧拉法程序如下:clear;clc;x1=0;x2=1;h=0.1;x0=0;y0=1;p(1)=0;N=(x2-x1)/h;x(1)=x0;y(1)=y0;for n=1:Nx(n+1)=x(n)+h;y(n+1)=y(n)+h*(y(n)-2*x(n)/y(n));p(n+1)=y(n)+h*(y(n+1)-2*x(n)/y(n+1));y(n+1)=(y(n+1)+p(n+1))/2;endX=xY=y3斐波那契法求极值方法说明斐波那契法原理类似于黄金分割法,只是搜索区间的缩短率不再采用黄金分割数0.618。
最优化方法课程设计_斐波那契法分析与实现 完整版

最优化方法题目:斐波那契法分析与实现院系:信息与计算科学学院专业:统计学姓名学号:小熊熊 11071050137 指导教师:大胖胖日期: 2014 年 01 月 10 日摘要科学的数学化是当代科学发展的一个主要趋势,最优化理论与算法是一个重要的数学分支,它所研究的问题是讨论在众多的方案中什么样的方案最优以及怎样找出最优方案.一维搜索是指寻求一元函数在某个区间上的最优点的方法.这类方法不仅有实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.本文就斐波那契法的一维搜索进行了详细的分析,并且成功的用 MATLAB 实现了斐波那契法求解单峰函数的极小值问题.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进行的,斐波那契法成功地实现了单峰函数极值范围的缩减.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要事先知道计算函数值的次数,故相比之下,黄金分割法更为简单一点,它不需要事先知道计算次数,并且当n 7 时,黄金分割法的收敛速率与斐波那契法越来越接近.因此,在实际应用中,常常采用黄金分割法. 斐波那契法也是一种区间收缩算法,和黄金分割法不同的是:黄金分割法每次收缩只改变搜索区间的一个端点,即它是单向收缩法. 而斐波那契法同时改变搜索区间的两个端点,是一种双向收缩法.关键字:一维搜索斐波那契法单峰函数黄金分割法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 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 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 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 the 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 method 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 shrinkage 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 function Golden Section function MATLAB目录1.前言 (1)1.1 一维搜索 (1)1.2 单峰函数 (1)1.3 单峰函数的性质 (1)2.斐波那契法分析 (2)2.1 区间缩短率 (2)2.2 斐波那契数列 (3)2.3 斐波那契法原理 (3)2.4 斐波那契法与黄金分割法的关系 (6)3.斐波那契法实现 (7)3.1 斐波那契算法步骤 (7)3.2 斐波那契法的MATLAB 程序 (8)3.3 斐波那契算法举例 (10)4.课程设计总结 (12)4.1 概述 (12)4.2 个人心得体会 (12)5.参考文献 (13)1 *1. 前言一维搜索是指寻求一元函数在某区间上的最优值点的方法.这类方法不仅有 实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要 事先知道计算函数值的次数,故相比之下,黄金分割法更为简单一点,它不需要 事先知道计算次数,并且当 n ≥ 7 时,黄金分割法的收敛速率与斐波那契法越来 越接近.因此,在实际应用中,常常采用黄金分割法. ·1.1 一维搜索很多迭代下降算法具有一个共同点,即得到点 x k 后,需要按某种规则确定 一个方向 d k ,再从 x k 出发,沿着方向 d k 在直线或射线上寻求目标函数的极小点, 进而得到 x k 的后继点 x k +1 .重复上面的做法,直至求得问题的解.这里所谓求目标 函数在直线上的极小点,称为一维搜索或线性搜索.·1.2 单峰函数定义 1.2.1 设 f 是定义在闭区间[a , b ]上的一元实函数,x * 是 f 在[a , b ]上的极小点,对 ∀x 1 , x 2 ∈ [a , b ] 且 x 1 < x 2 ,当 x 2 ≤ x 时, f (x 1 ) > f (x 2 ) ,当 x * ≤ x 时,f (x 2 ) > f (x 1 ) ,则称 f 是闭区间[a , b ]上的单峰函数.·1.3 单峰函数的性质单峰函数具有很重要的性质:通过计算闭区间[a , b ]内两个不同点处的函数 值,就能确定一个包含极小点的子区间.这也是斐波那契法的理论基础.为了后面分析的方便,先证明下面的定理,这个定理是斐波那契方法的理论 基础.定理 1.3.1 设 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 ) , 则 对∀x ∈ [x 2 , b ],有 f (x ) ≥ f (x 1 ).证明:(反证法)先证第一种情形.假设当 f (x 1 ) > f (x 2 ) 时, []1x x a ,∈∃,使得* 2f (x )≤ f (x 2 ) .(1.3.1.1)显然 x 1 不是极小点.这时有两种可能性,要么极小点 x ∈ [a , x 1 ),要么 x ∈ (x 1 , b ] .当 x ∈ [a , x 1 )时,根据单峰函数的定义,有f (x 2 ) > f (x 1 ) .(1.3.1.2)这与假设矛盾.当 x ∈ (x 1 , b ]时,根据单峰函数的定义,有f (x )> f (x ). 1(1.3.1.3)由于假设 f (x 1 ) > f (x 2 ) ,因此(1.3.1.3)式与(1.3.1.1)式相矛盾.综上可知,当f (x 1 ) > f (x 2 ) 时,对∀x ∈ [a , x 1 ],必有f (x ) >f (x 2 ) .(1.3.1.4)同理可以证明第二种情形.证毕. 根据上面的定理知:只需选择两个试探点,就可以将包含极小点的区间缩短.事实上,如果 f (x 1 ) > f (x 2 ) ,则 x ∈ [x 1 , b ] ;如果 f (x 1 ) ≤ f (x 2 ) ,则 x * ∈ [a , x ].这就是斐波那契法的理论基础.2. 斐波那契法分析斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的.在此之前,有必要知道区间缩短率以及斐波那契数列的概念. ·2.1 区间缩短率定义 2.1.1 在逐次缩短区间时,设)10(......)10()10(112211221111<<=--<<=--<<=----k k k k kk a b a b a b a b a b a b ττττττ称τk (k = 1,2,⋅ ⋅ ⋅) 为区间缩短率.对于上面的τk 不外乎两种情况,要么τk = c ,要么τk ≠ c ( c 为常数).第一种3情况就可以引入前面提到的黄金分割法,第二种情况就是下面要分析的斐波那契 法.·2.2 斐波那契数列斐波那契数列是 13 世纪,由意大利的数学家列昂纳多·斐波那契(Leonardo Fibonacci)提出的,当时和兔子的繁殖问题有关,它是一个很重要的数学模型. 斐波那契数列,又被称为“黄金分割数列”,它指的是这样的一个数列:数列的 第一个和第二个数都为 1,接下来每个数都等于前面两个数的和.在数学上,斐波那契数列有如下的递归定义:⎩⎨⎧=+===--,...3,2,12110n F F F F F n n n故,斐波那契数列如表 2.2.1 所示.表 2.2.1 斐波那契数列表n0 1 2 3 4 5 6 7 8 9 …F n11235813213455…斐波那契数列的通项公式(又称为“比内公式”)如下:⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛+=nn n a 25125151 此时).,3(,1,1*2121N n n a a a a a n n n ∈≥+===-- 2.3 斐波那契法原理在定义2.1.1中,若为常数)c c (k ≠τ,可取kk k F F 1-=τ.其中k F 满足斐波那契数列的递推关系。
实验1斐波那契数列的实现算法以及分析

陕西科技大学实验报告姓名班级学号实验组别实验日期室温报告日期成绩报告内容:(目的和要求、原理、步骤、数据、计算、小结等)实验名称:斐波那契数列实现算法及其分析实验目的:1. 掌握分别用递归和非递归方法计算斐波那契(Fibonacci)数列。
2. 掌握算法性能测试的方法,并能进行计算分析和比较。
掌握实验环境(硬/软件要求):Windows 2000,Visual C++6.0实验内容:二阶Fibonacci数列定义如下:F0=1,F1=1,F2=2,F3=3,F4=5,……,Fi=Fi-1+Fi-2(i>=1)。
是用递归和非递归两种方法写出计算Fn的函数。
实验要求:1. 完成计算Fn的递归函数Fib_rec。
2. 完成计算Fn的递归函数Fib_itc。
3. 当N=10,15,20,25,30,35,40,45时测试以上两种算法的执行时间并把测试结果填写在附表1-1中。
N 函数10 15 20 25 30 35 40 4589 987 10946 121393 1346269149303511655801411836311903Fib_rec运行时间0 0 0 0 0 78 781 8719Fib_itc运行时间0 0 0 0 0 0 0 0注:表格中填写的测试时间,单位ms。
4. 试解释两种算法在执行时间上的不同,并对两种算法进行算法分析。
实验原理定义:斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368自然中的斐波那契数列自然中的斐波那契数列特别指出:第0项是0,第1项是第一个1。
这个数列从第2项开始,每一项都等于前两项之和。
顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系有存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。
优化方法及其工程应用中的斐波那契法

优化方法及其工程应用中的斐波那契法斐波那契法是一种常见的数学算法,被广泛应用于计算机科学和工程领域。
然而,随着问题规模的增大,斐波那契法的效率往往变得低下。
因此,研究人员提出了一系列优化方法来改进斐波那契法,并将其应用于各种工程项目中。
一、优化方法1. 迭代法:传统的斐波那契法使用递归方式计算,但递归会导致大量重复计算,影响效率。
迭代法是一种基于循环的计算方法,通过保存中间结果避免了重复计算,从而提高了效率。
2. 矩阵乘法:斐波那契数列可以通过矩阵乘法的方式来计算。
将斐波那契数列的递推关系转化为矩阵形式,可以利用矩阵乘法的高效性质来加速计算过程。
3. 存储优化:斐波那契法中的关键是保存中间结果,以避免重复计算。
传统的方法使用数组或列表来保存中间结果,但随着问题规模的增大,存储空间的需求也会增加。
因此,研究人员提出了一些存储优化的方法,如使用位操作或只保存最近的几个中间结果。
4. 并行计算:斐波那契法可以通过并行计算的方式来提高效率。
将斐波那契数列的计算任务划分为多个子任务,并行地计算这些子任务,最后将结果合并得到最终的结果。
通过利用多核处理器或分布式计算系统,可以进一步提高计算速度。
二、工程应用1. 金融领域:斐波那契数列在金融领域有广泛应用,如股票价格预测、期权定价等。
优化的斐波那契法可以提高计算效率,减少计算时间,为金融决策提供更快速、准确的支持。
2. 图像处理:斐波那契数列的特性被应用于图像处理领域,如生成斐波那契序列的图案、图像压缩算法等。
通过优化斐波那契法,可以加快图像处理的速度,提高图像处理的效果。
3. 编码算法:斐波那契数列的特性被广泛应用于编码算法中,如霍夫曼编码、动态规划等。
通过优化斐波那契法,可以改进编码算法的性能,提高编码效率。
4. 算法设计:斐波那契法作为一种经典的算法,被广泛应用于算法设计和分析中。
优化的斐波那契法可以提高算法的效率和性能,为解决实际问题提供更好的解决方案。
斐波那契哈希最优算法

斐波那契哈希最优算法斐波那契哈希(Fibonacci hash)是一种哈希算法,它使用斐波那契数列的性质来减少哈希冲突的可能性,并提高哈希表的性能。
在斐波那契哈希算法中,使用一个无序的斐波那契数列作为哈希表的容量,在插入元素时将元素哈希到最接近斐波那契数的位置上。
首先,我们需要了解什么是斐波那契数列。
斐波那契数列是指从0和1开始,后面的每一项都是前两项的和。
斐波那契数列的前几项为0,1,1,2,3,5,8,13,21,34,……1.初始化斐波那契数列:由于哈希表的容量是无序的斐波那契数列,我们需要找到最接近并且小于要求容量的斐波那契数列项。
2.插入元素:将元素哈希到距离目标位置最近的斐波那契数位置上。
具体来说,可以通过计算元素的哈希值与斐波那契数的差值的绝对值,找到离目标位置最近的斐波那契数。
3.处理冲突:如果目标位置上已经有元素存在,我们可以使用线性探测或者二次探测等方式来解决冲突。
4.动态扩容:当哈希表中元素的数量达到斐波那契数列中的下一个数值时,需要进行扩容操作,重新计算斐波那契数列。
5.删除元素:删除元素的操作与插入操作类似,只是需要将目标位置上的元素标记为删除状态,而不是实际移除。
利用斐波那契哈希算法,可以有效减少哈希冲突的可能性,提高了哈希表的性能。
然而,斐波那契哈希算法的主要缺点是插入和删除操作的时间复杂度为O(n),其中n是斐波那契数列中的位置,因此在一些对插入和删除操作非常敏感的场景中,斐波那契哈希算法可能不适用。
需要提醒的是,斐波那契哈希算法虽然在一定程度上减少了哈希冲突的发生,但并不能完全避免冲突。
在实际使用中,需要根据具体的场景和需求来选择合适的哈希算法,以达到最佳的性能和效果。
总结起来,斐波那契哈希算法是一种利用斐波那契数列作为哈希表容量的方法,以减少哈希冲突并提高哈希表性能的算法。
该算法的核心思想是使用斐波那契数列的无序性和间隔较大的特点,将元素哈希到距离最近的斐波那契数位置上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所谓的光辉岁月,并不是以后,闪耀的日子,而是无人问津时,你对梦想的偏执。
最优化方法题目:斐波那契法分析与实现院系:信息与计算科学学院专业:统计学姓名学号:小熊熊 11071050137指导教师:大胖胖日期: 2014 年 01 月 10 日摘要科学的数学化是当代科学发展的一个主要趋势,最优化理论与算法是一个重要的数学分支,它所研究的问题是讨论在众多的方案中什么样的方案最优以及怎样找出最优方案.一维搜索是指寻求一元函数在某个区间上的最优点的方法.这类方法不仅有实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.本文就斐波那契法的一维搜索进行了详细的分析,并且成功的用 MATLAB 实现了斐波那契法求解单峰函数的极小值问题.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进行的,斐波那契法成功地实现了单峰函数极值范围的缩减.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要事先知道计算函数值的次数,故相比之下,黄金分割法更为简单一点,它不需要事先知道计算次数,并且当n 7 时,黄金分割法的收敛速率与斐波那契法越来越接近.因此,在实际应用中,常常采用黄金分割法. 斐波那契法也是一种区间收缩算法,和黄金分割法不同的是:黄金分割法每次收缩只改变搜索区间的一个端点,即它是单向收缩法. 而斐波那契法同时改变搜索区间的两个端点,是一种双向收缩法.关键字:一维搜索斐波那契法单峰函数黄金分割法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 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 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 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 the 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 method 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 shrinkage 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 function Golden Section function MATLAB目录1.前言 (1)1.1 一维搜索 (1)1.2 单峰函数 (1)1.3 单峰函数的性质 (1)2.斐波那契法分析 (2)2.1 区间缩短率 (2)2.2 斐波那契数列 (3)2.3 斐波那契法原理 (3)2.4 斐波那契法与黄金分割法的关系 (6)3.斐波那契法实现 (7)3.1 斐波那契算法步骤 (7)3.2 斐波那契法的MATLAB 程序 (8)3.3 斐波那契算法举例 (10)4.课程设计总结 (12)4.1 概述 (12)4.2 个人心得体会 (12)5.参考文献 (13)1 *1. 前言一维搜索是指寻求一元函数在某区间上的最优值点的方法.这类方法不仅有 实用价值,而且大量多维最优化方法都依赖于一系列的一维最优化.斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的.从理论上来说,斐波那契法的精度比黄金分割法要高.但由于斐波那契法要 事先知道计算函数值的次数,故相比之下,黄金分割法更为简单一点,它不需要 事先知道计算次数,并且当 n ≥ 7 时,黄金分割法的收敛速率与斐波那契法越来 越接近.因此,在实际应用中,常常采用黄金分割法. ·1.1 一维搜索很多迭代下降算法具有一个共同点,即得到点 x k 后,需要按某种规则确定 一个方向 d k ,再从 x k 出发,沿着方向 d k 在直线或射线上寻求目标函数的极小点, 进而得到 x k 的后继点 x k +1 .重复上面的做法,直至求得问题的解.这里所谓求目标 函数在直线上的极小点,称为一维搜索或线性搜索.·1.2 单峰函数定义 1.2.1 设 f 是定义在闭区间[a , b ]上的一元实函数,x * 是 f 在[a , b ]上的极小点,对 ∀x 1 , x 2 ∈ [a , b ] 且 x 1 < x 2 ,当 x 2 ≤ x 时, f (x 1 ) > f (x 2 ) ,当 x * ≤ x 时,f (x 2 ) > f (x 1 ) ,则称 f 是闭区间[a , b ]上的单峰函数.·1.3 单峰函数的性质单峰函数具有很重要的性质:通过计算闭区间[a , b ]内两个不同点处的函数 值,就能确定一个包含极小点的子区间.这也是斐波那契法的理论基础.为了后面分析的方便,先证明下面的定理,这个定理是斐波那契方法的理论 基础.定理 1.3.1 设 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 ) , 则 对∀x ∈ [x 2 , b ],有 f (x ) ≥ f (x 1 ).证明:(反证法)先证第一种情形.假设当 f (x 1 ) > f (x 2 ) 时, []1x x a ,∈∃,使得* 2f (x )≤ f (x 2 ) .(1.3.1.1)显然 x 1 不是极小点.这时有两种可能性,要么极小点 x ∈ [a , x 1 ),要么 x ∈ (x 1 , b ] .当 x ∈ [a , x 1 )时,根据单峰函数的定义,有f (x 2 ) > f (x 1 ) .(1.3.1.2)这与假设矛盾.当 x ∈ (x 1 , b ]时,根据单峰函数的定义,有f (x )> f (x ). 1(1.3.1.3)由于假设 f (x 1 ) > f (x 2 ) ,因此(1.3.1.3)式与(1.3.1.1)式相矛盾.综上可知,当f (x 1 ) > f (x 2 )时,对∀x ∈ [a , x 1 ],必有f (x ) >f (x 2 ) .(1.3.1.4)同理可以证明第二种情形.证毕. 根据上面的定理知:只需选择两个试探点,就可以将包含极小点的区间缩短.事实上,如果 f (x 1 ) > f (x 2 ) ,则 x ∈ [x 1 , b ] ;如果 f (x 1 ) ≤ f (x 2 ) ,则 x * ∈ [a , x ].这就是斐波那契法的理论基础.2. 斐波那契法分析斐波那契法的一维搜索过程是建立在一个被称为斐波那契数列的基础上进 行的.在此之前,有必要知道区间缩短率以及斐波那契数列的概念. ·2.1 区间缩短率定义 2.1.1 在逐次缩短区间时,设)10(......)10()10(112211221111<<=--<<=--<<=----k k k k kk a b a b a b a b a b a b ττττττ称τk (k = 1,2,⋅ ⋅ ⋅) 为区间缩短率.对于上面的τk 不外乎两种情况,要么τk = c ,要么τk ≠ c ( c 为常数).第一种情况就可以引入前面提到的黄金分割法,第二种情况就是下面要分析的斐波那契 法.·2.2 斐波那契数列斐波那契数列是 13 世纪,由意大利的数学家列昂纳多·斐波那契(Leonardo Fibonacci)提出的,当时和兔子的繁殖问题有关,它是一个很重要的数学模型. 斐波那契数列,又被称为“黄金分割数列”,它指的是这样的一个数列:数列的 第一个和第二个数都为 1,接下来每个数都等于前面两个数的和.在数学上,斐波那契数列有如下的递归定义:⎩⎨⎧=+===--,...3,2,12110n F F F F F n n n故,斐波那契数列如表 2.2.1 所示.表 2.2.1 斐波那契数列表⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛+=nn n a 25125151 此时).,3(,1,1*2121N n n a a a a a n n n ∈≥+===-- 2.3 斐波那契法原理在定义2.1.1中,若为常数)c c (k ≠τ,可取kk k F F 1-=τ.其中k F 满足斐波那契数列的递推关系。