2-斐波那契数列.docx
《2-斐波那契数列.docx》由会员分享,可在线阅读,更多相关《2-斐波那契数列.docx(11页珍藏版)》请在三一办公上搜索。
1、实验一斐波那契数列一、实验目的与要求1. 认识Fibonacci数列,体验发现其通项公式的过程;2. 了解matlab软件中进行数据显示与数据拟合的方式;3. 掌握matlab软件中plot, polyfit等函数的基本用法;4. 提高对数据进行分析与处理的能力。二、问题描述某人养了一对兔(公母各一只),一个月后这对兔子生育了一对小兔。假设 小兔一个月后就可以长大成熟,而每对成熟的兔每月都将生育一对小兔,且兔子 不会死亡。问:一年后共有多少对兔子?三、问题分析这个问题,最早由意大利数学家斐波那契(Fibonacci,1170-1240) 于 1202 年在其著作珠算原理中提出。根据问题的假设,
2、兔子的总数目是如下数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,问题的答案就是此数列的第12项,即一年后共有144对兔子。这个数列通常被称为斐波那契(Fibonacci)数列,研究这个问题就是研究 Fibonacci数列。把这个问题作更深入的研究,我们会问:第n个月后,总共有 多少对兔子?即Fibonacci数列的第n项是多少?这就需要我们探素Fibonacci 数列的通项公式。根据问题的描述,我们知道第n+2个月后兔子的对数,等于 第n+1个月后兔子的对数(表示原来就有的老兔子对数),加上第n个月后兔 子的对数(表示生育出来的新兔子对数)
3、。这样就得到关于Fibonacci数列的一 个递推公式:Fn+广Fn利用matlab软件的数据可视化功能将这些数据显示成平面曲线的形式后, 我们可以观察到Fibonacci数列的变化规律;通过matlab软件的数据拟合功能,我们可以大概知道Fibonacci数列的函数关系式,结合上面的递推公式,就可以 推导出来Fibonacci数列的通项公式。四、背景知识介绍1. 数据的可视化将离散的数据:F, F , F , F,,F,1234 n看成平面坐标系里的点:(1F),(2, F ),(3, F ),(4, F ),,(n,F ),,1234n利用matlab软件的plot函数在平面坐标系里划出一
4、个点列,就可以实现离 散数据的可视化。plot函数的基本使用格式为:plot(y),其中参数y表示竖坐标, 即需要显示的数据。例 1y=1:20;y=y.A3;plot(y)2. 数据的拟合数据拟合就是寻找一个目标函数,作为被拟合数据的近似函数关系。目标 函数的类型,可以是多项式、指数函数等。作数据拟合,首先需要估计目标函数 的类型,这一点可以通过数据可视化来观察得到,而一阶多项式是最常见的目标 函数,此时称为线性回归。确定拟合系数的原则是最小二乘法,即所有误差的平 方和取最小值。在matlab软件中以多项式为目标函数作数据拟合的函数是 polyfit,它的基本使用格式为:polyfit (x
5、,y,n)。其中(x,y)是被拟合的数据,即平面上的一个点列,而n是事先确定的多项 式的阶数。例2x=1,3,4,5,6,7,8,9,10;y=10,5,4,2,1,1,2,3,4; p=polyfit (x,y,2)结果:0.2676t2 - 3.6053t + 13.4597调用f = polyval(p遥),可以查看拟合多项式的对应于x的离散数值。3. 数列的通项公式寻找一个整标函数,使得它在n处的函数值,等于数列的第n项的值,这个 函数就是数列的通项公式。4. 黄金分割把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部 分之比(如下图)。其比值是一个无理数(J5 - 1)
6、: 2,取其前三位数字的近似值 2是0.618。由于按此比例设计的造型十分协调美观,因此称之为黄金分割。AM:AB=MB:AM五、实验过程本试验将Fibonacci数列的有限项,看成是待处理的数据。首先利用matlab软件的可视化功能,将这些数据显示在平面坐标系中,观察其图形类似什么曲线,结论是:指数函数的曲线。进止步,利用指数函数与对数函数的互逆关系,将原有数据取对数,再观察其曲线形状是否类似直线,以验证原来的观察是否正确。通过观察到的目标函数,然后利用matlab软件的数据拟合功能,得到Fibonacci 数列通项公式的近似关系。最后,从近似关系出发,推导出来Fibonacci数列的 通项
7、公式。1. 观察数据的大概函数关系为了研究Fibonacci数列的变化规律,我们取此数列的前30项来观察。利 用Matlab软件的数据可视化功能,将这些数据显示在平面坐标系中,观察其中 蕴涵的函数关系。具体的实现流程为:(1)定义数组fn;(2)显示数组fn。具体的代码如下:function plotfibo(n) %定义函数显示Fibonacci数列前n项fn=1,1;%将数列的前两项放到数组fn中for i=3:n%fn的第3项到第n项endplot(fn)%将装有数列前n项的数组显示出来fn=fn,fn(i-2)+fn(i-1); %将第 i 项添加到数组 fn 中 %循环结束这个函数的
8、调用方式是:plotfibo(30),显示出来的图像为图1,经观察,觉得曲线的形状象指数函数的曲线,其数据无限增大。可以改变参数n的值,反图 1 n=30图 2 n=50图 3 n=500图 4 n=10002. 进一步验证上一步得到的结论经过上一步的观察,觉得这些数据应该是指数函数的形式。为了进一步验 证这个结论是否正确,可以利用指数函数与对数函数的互逆关系。如果这些数据 确实是指数函数的形式,则经过取对数后应该是一个线性关系,即一阶多项式, 从图形上看应该象一条直线。因此,再利用Matlab软件的数据可视化功能,将 这些数据取对数后显示在平面坐标系中,观察它是否象一条直线。具体的实现流 程
9、为:(1)定义数组fn;(2)数组fn取对数;(3)显示数组fn。具体的代 码如下:function plotlnfibo(n) %显示取对数后的前n项fn=1,1;%将数列的前两项放到数组fn中for i=3:n%fn的第3项到第n项fn=fn,fn(i-2)+fn(i-1); %将第 i 项添加到数组 fn 中end%循环结束fn=log(fn) ;%将原来的数据取对数plot(fn)%将装有数列前n项的数组显示出来这个函数的调用方式是:plotlnfibo(30),显示出来的图像为图5,经观察, 觉得它确实象一条直线。可以改变参数n的值,反复观察。3. 获得数据的近似关系式经过以上第一步
10、的观察,确定Fibonacci数列的数据是指数函数的关系, 第二步验证了第一步得到的结论,因此我们认为Fibonacci数列的数据关系就是 指数函数,取对数后就是线性函数,即一阶多项式。利用Matlab软件的数据拟 合功能,通过取对数后的数据,用一阶多项式拟合出它的函数关系式,可以得到 Fibonacci数列通项公式的一个近似表达式。具体的实现流程为:(1)定义数 组fn; (2)数组fn取对数;(3)用一阶多项式拟合数组fn。具体的代码如下:function fitlnfibo(n) %根据取对数后的数据,拟合出线性表达式fn=1,1;%将数列的前两项放到数组fn中for i=3:n%fn的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数列
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4874940.html