
斐波那契数列稻谷文苑.ppt
42页斐波那契数列斐波那契数列实验二实验二1优质荟萃斐斐波波那那契契,,意意大大利利数数学学家家列列昂昂纳纳多多··斐斐波波那那契契((Leonardo Leonardo FibonacciFibonacci,,1170-12401170-1240,,籍籍贯贯大大概概是是比比萨萨))他他被被人人称称作作““比比萨萨的的列列昂昂纳纳多多””12021202年年 ,, 他他 撰撰 写写 了了 《《 珠珠 算算 原原 理理 》》 (( Liber Liber AbacciAbacci))一一书书他他是是第第一一个个研研究究了了印印度度和和阿阿拉拉伯伯数数学学理理论论的的欧欧洲洲人人他他的的父父亲亲被被比比萨萨的的一一家家商商业业团团体体聘聘任任为为外外交交领领事事,,派派驻驻地地点点相相当当于于今今日日的的阿阿尔尔及及利利亚亚地地区区,,列列昂昂纳纳多多因因此此得得以以在在一一个个阿阿拉拉伯伯老老师师的的指指导导下下研研究究数数学学他他还还曾曾在在埃埃及及、、叙叙利利亚亚、、希希腊腊、、西西西西里里和和普普罗罗旺旺斯斯研研究究数数学2优质荟萃一、实验目的一、实验目的认识认识Fibonacci数列,数列,体验发现其通项公式的过程。
体验发现其通项公式的过程 了解了解matlab软件中,软件中,进行数据显示与数据拟合的方式进行数据显示与数据拟合的方式 提高对数据进行分析与处理的能力提高对数据进行分析与处理的能力 3优质荟萃二、问题描述二、问题描述意大利斐波那契意大利斐波那契(Fibonacci),,1202年年 一般而言,兔子在出生两个月后,就一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出有繁殖能力,一对兔子每个月能生出一对小兔子来如果所有兔都不死,一对小兔子来如果所有兔都不死,那么一年以后可以繁殖多少对兔子?那么一年以后可以繁殖多少对兔子?4优质荟萃三、问题分析三、问题分析称为称为Fibonacci数列数列递推公式:递推公式:1,,1,,2,,3,,5,,8,,13,,21,,34,,55,,……兔子对的兔子对的数目数目依次如下:依次如下: 所求答案所求答案::Fibonacci数列的第数列的第12项Fibonacci数列的数列的一般规律一般规律是什么?是什么?5优质荟萃四、背景知识四、背景知识1 1、最小二乘和数据拟合、最小二乘和数据拟合6优质荟萃7优质荟萃多项式拟合多项式拟合当数据点互异时8优质荟萃plot(x,y,’s’) :将所给的点列连接成一条折线将所给的点列连接成一条折线 x-点列的横坐标,点列的横坐标,y-点列的竖坐标点列的竖坐标s-图形的格式字符串图形的格式字符串 例例:给定数据,给定数据,x1=[1,3,4,5,6,7,8,9,10]; y1=[10,5,4,2,1,1,2,3,4];描绘其图形描绘其图形代码:代码:x1=[1,3,4,5,6,7,8,9,10]; y1=[10,5,4,2,1,1,2,3,4]; plot(x1,y1)2 2、画图和多项式拟合命令、画图和多项式拟合命令9优质荟萃10优质荟萃p=polyfit (x,y,n) :用用n次次多项式拟合多项式拟合数据列数据列 返回多项式的系数,次序是由高阶到低阶返回多项式的系数,次序是由高阶到低阶例例:x=[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.2676 -3.6053 13.4597数值数值::f = polyval(p,x)结果:结果: f =10.1219 5.0519 3.3196 2.1224 1.4604 1.3335 1.7417 2.6851 4.1636即即2次多项式为次多项式为p1=0.2676x2 -3.6053x+13.459711优质荟萃拟合效果展示:拟合效果展示:代码代码:x=[1,3,4,5,6,7,8,9,10];y=[10,5,4,2,1,1,2,3,4];p=polyfit (x,y,2);plot(x,y, 'ro',x,polyval (p,x), 'b')legend('数据点数据点','拟拟合曲合曲线线') ;12优质荟萃13优质荟萃五、实验过程五、实验过程1. 观察数据间的大概函数关系观察数据间的大概函数关系 2. 进一步验证上一步得到的结论进一步验证上一步得到的结论 3. 获得数据的近似函数关系式获得数据的近似函数关系式 4. 观察拟合数据与原始数据的吻合程度观察拟合数据与原始数据的吻合程度 5. 猜测猜测Fibonacci数列的通项公式数列的通项公式 6. 证明证明Fibonacci数列的通项公式数列的通项公式 14优质荟萃1. 观察数据间的大概函数关系观察数据间的大概函数关系将以下点列显示在平面坐标系中: 观察其中蕴涵的函数关系 结论:曲线的形状象指数函数的曲线 查看代码15优质荟萃2. 进一步验证上一步得到的结论进一步验证上一步得到的结论再将以下点列显示在平面坐标系中: 观察其中蕴涵的函数关系 结论:曲线的形状确实象一条直线 查看代码16优质荟萃3. 获得数据的近似函数关系式获得数据的近似函数关系式Fibonacci数列的数据关系是指数函数,取对数后是线性函数,即一阶多项式, 用一阶多项式拟合出取对数后的函数关系式 得到Fibonacci数列通项公式的近似表达式: 查看代码17优质荟萃4. 观察拟合数据与原始数据的吻合程度观察拟合数据与原始数据的吻合程度紅点: 蓝线:查看代码查看代码18优质荟萃5. 猜测猜测Fibonacci数列的通项公式数列的通项公式将上式代入递推公式中得:考虑到该数列趋向无穷,故通项公式取为:考虑到该数列趋向无穷,故通项公式取为:然而然而,上式并不满足:上式并不满足:19优质荟萃进一步修正进一步修正这样,得到这样,得到Fibonacci数列通项的新猜测:数列通项的新猜测:20优质荟萃这样,得到这样,得到Fibonacci数列通项:数列通项:称为称为比内公式比内公式。
Binet,,法国,法国,1843年发现年发现)21优质荟萃6. 推导推导Fibonacci数列的通项公式数列的通项公式Fibonacci数列具有如下递推关系 这是一个二阶常系数线性齐次差分方程 仿照二阶常系数线性齐次微分方程来求解 特征方程 两个特征根 22优质荟萃差分方程的通解 取n=1和n=2代入上面的公式中,解得 从而得到 23优质荟萃六、化学反应中生成物的浓度问题六、化学反应中生成物的浓度问题24优质荟萃1、描绘、描绘生成物浓度的散点图生成物浓度的散点图代码:代码: t=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];y=[4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86];y=[y,10.00,10.20,10.32,10.42,10.50,10.55,10.58,10.60];plot(t,y, 'r+')xlabel('时间'); ylabel('浓度');legend('生成物浓度散点图生成物浓度散点图')从图形看,显然是非线性关系,数据点列呈现从图形看,显然是非线性关系,数据点列呈现单调上升趋势,开始上升较快随后逐渐变慢,单调上升趋势,开始上升较快随后逐渐变慢,故宜采用多项式、双曲型函数、指数型函数或故宜采用多项式、双曲型函数、指数型函数或对数型函数做拟合等对数型函数做拟合等25优质荟萃2、采用、采用2,,4和和6阶多项式进行拟合阶多项式进行拟合代码:代码: p2= polyfit(t,y,2);p4= polyfit(t,y,4);p6= polyfit(t,y,6);R1 = dot(y-polyval(p6,t),y-polyval(p6,t)) %计算拟合残差plot(t,y,'r+',t,polyval(p2,t),t,polyval(p4,t),t,polyval(p6,t))legend('测量数据测量数据', '2阶拟合阶拟合', '4阶拟合阶拟合', '6阶拟合阶拟合‘)6阶多项式拟合效果较好阶多项式拟合效果较好26优质荟萃3、采用双曲函数进行拟合:、采用双曲函数进行拟合:代码:代码: p1= polyfit(1./t,1./y,1);plot(t,y,'r+',t,1./polyval(p1,1./t))R2 = dot(y-1./polyval(p1,1./t),y-1./polyval(p1,1./t))legend('测量数据测量数据', '双曲型拟合双曲型拟合')27优质荟萃28优质荟萃七、结论与应用七、结论与应用1. Fibonacci数列的阶数列的阶 29优质荟萃2. Fibonacci数列与黄金分割数的关系数列与黄金分割数的关系 可以验证 1 -1 0 0 … 0 01 1 -1 0 … 0 00 1 1 -1 … 0 0… …0 0 0 0 … 1 13. Fibonacci数列通项公式的其它形式数列通项公式的其它形式 31优质荟萃4. 自然界中的自然界中的Fibonacci数列数列 花瓣的数量,一般都是Fibonacci数 32优质荟萃斐波那契螺旋如果顺时针与逆时针螺旋的数目,是斐波那契数列中相邻的2项,可称其为斐波那契螺旋,也被称作黄金螺旋 33优质荟萃计算机绘制的斐波那契螺旋 34优质荟萃斐波那契螺旋与黄金矩型 35优质荟萃5. 应用应用 Fibonacci数列在纯粹数学、运筹优化、计算机科学等领域具有重大的应用价值 本实验所采用的方法,可以用来进行一般的数据处理与分析 。
36优质荟萃显示Fibonacci数列前n项¡function plotfibo(n) %显示Fibonacci数列前n项¡fn=[1,1]; %将数列的前两项放到数组fn中¡for i=3:n %fn的第3项到第n项¡ fn=[fn,fn(i-2)+fn(i-1)]; %将第i项添加到数组fn中¡end %循环结束¡plot(fn) %将装有数列前n项的数组显示出来返回37优质荟萃显示取对数后的前n项¡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项的数组显示出来返回38优质荟萃根据取对数后的数据,拟合出线性表达式 ¡function fitlnfibo(n) %先取对数,再拟合¡fn=[1,1]; %将数列的前两项放到数组fn中¡for i=3:n %fn的第3项到第n项¡ fn=[fn,fn(i-2)+fn(i-1)]; %将第i项添加到数组fn中¡end %循环结束¡xn=1:n; %定义横坐标¡fn=log(fn) %将原来的数据取对数¡polyfit(xn,fn,1) %拟合装有数列前n项的数组返回39优质荟萃显示拟合数据与原始数据的前n项¡function plotfibo2(n) %显示拟合数据与原始数据的前n项¡fn1=[]; %装拟合数据的数组¡for i=1:n %fn1的第1项到第n项¡ fn1=[fn1,0.4476*1.618^i]; %将第i项添加到数组fn1中¡end ¡fn2=[1,1]; %装原始数据的数组,前两项放到数组fn2中¡for i=3:n %fn2的第3项到第n项¡ fn2=[fn2,fn2(i-2)+fn2(i-1)]; %将第i项添加到数组fn2中¡end ¡x=1:n;¡plot(x,fn1,x,fn2,'r*') %显示, fn1―兰线,fn2-红星返回40优质荟萃显示取对数后的拟合数据与原始数据¡function plotfibo3(n) %显示拟合数据与原始数据的前n项¡fn1=[]; %装拟合数据的数组¡for i=1:n %fn1的第1项到第n项¡ fn1=[fn1,-0.8039+0.4812*i]; %将第i项添加到数组fn1中¡end ¡fn2=[1,1]; %装原始数据的数组,前两项放到数组fn2中¡for i=3:n %fn2的第3项到第n项¡ fn2=[fn2,fn2(i-2)+fn2(i-1)]; %将第i项添加到数组fn2中¡end ¡x=1:n;¡plot(x,fn1,x,log(fn2),'r*') %显示, fn1―兰线,fn2-红星返回41优质荟萃第二次上课作业第二次上课作业 教材教材P18-19:第:第2和和6题题42优质荟萃。












