1、斐波那契数列斐波那契数列实验二实验二完整编辑ppt2斐波那契,意大利数学家列昂纳多斐波那契,意大利数学家列昂纳多斐波那契斐波那契(Leonardo FibonacciLeonardo Fibonacci,1170-12401170-1240,籍贯大概是,籍贯大概是比萨)。他被人称作比萨)。他被人称作“比萨的列昂纳多比萨的列昂纳多”。12021202年,他撰写了年,他撰写了珠算原理珠算原理(Liber AbacciLiber Abacci)一书。他是第一个研究了印度和阿拉伯数学理一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体论的欧洲人。他的父亲被比萨的一家商业团
2、体聘任为外交领事,派驻地点相当于今日的阿尔聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。亚、希腊、西西里和普罗旺斯研究数学。一、实验目的一、实验目的认识认识Fibonacci数列,数列,体验发现其通项公式的过程。体验发现其通项公式的过程。了解了解matlab软件中,软件中,进行数据显示与数据拟合的方式。进行数据显示与数据拟合的方式。提高对数据进行分析与处理的能力。提高对数据进行分析与处理的能力。二、问题描述
3、二、问题描述 一般而言,兔子在出生两个月后,就一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?那么一年以后可以繁殖多少对兔子?三、问题分析三、问题分析21nnnFFF称为称为Fibonacci数列数列。递推公式:递推公式:1,1,2,3,5,8,13,21,34,55,兔子对的兔子对的数目数目依次如下:依次如下:所求答案所求答案:Fibonacci数列的第数列的第12项。项。Fibonacci数列的数列的一般规律一般规律是什么?是什么?完整编辑ppt6
4、四、背景知识四、背景知识1 1、最小二乘和数据拟合、最小二乘和数据拟合2022-12-29完整编辑ppt7完整编辑ppt8多项式拟合多项式拟合当数据点互异时完整编辑ppt9plot(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,y
5、1)2 2、画图和多项式拟合命令、画图和多项式拟合命令2022-12-29完整编辑ppt101234567891012345678910完整编辑ppt11p=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.12
6、24 1.4604 1.3335 1.7417 2.6851 4.1636即即2次多项式为次多项式为p1=0.2676x2-3.6053x+13.4597完整编辑ppt12拟合效果展示:拟合效果展示:代码代码: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(数据点数据点,拟合曲线拟合曲线);2022-12-29完整编辑ppt13123456789101234567891011 数 据 点拟 合 曲 线五、实验过程五、实验过程 NnFnn,2,1),(查看
7、代码(,log),1,2,nnFnN 查看代码 log()0.8039+0.4812nnF n0.4476 1.6180nF 即:查看代码(,),nn F 0.4476 1.6180 xy 查看代码查看代码0.7768+0.4799yx(,log(),1,2,nnFnNnnFCr猜测,通项公式:210rr 2/)51(2,1 r解得:(15)/2)nnFC121 FF将上式代入递推公式中得:考虑到该数列趋向无穷,故通项公式取为:考虑到该数列趋向无穷,故通项公式取为:然而然而,上式并不满足:上式并不满足:nnnFCrCr215(,1)2nnnbFCrrrr构造数列:进一步修正进一步修正nb可得数
8、列 仍然满足那个递推公式nnnbbCr因而猜测 的通项形式:21(15)/2rrrr其中,也满足方程,故这样,得到这样,得到Fibonacci数列通项的新猜测:数列通项的新猜测:11515225nnnF这样,得到这样,得到Fibonacci数列通项:数列通项:称为称为比内公式比内公式。(Binet,法国,法国,1843年发现年发现)1211/51/5FFCC 由条件,确定,21nnnFFF 21rr 1,2(15)/2r 12151522nnnFCC 1211,55CC 1515225nnnF完整编辑ppt24六、化学反应中生成物的浓度问题六、化学反应中生成物的浓度问题完整编辑ppt251、描
9、绘、描绘生成物浓度的散点图生成物浓度的散点图代码:代码: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(生成物浓度散点图生成物浓度散点图)从图形看,显然是非线性关系,数据点列呈现从图形看,显然是非线性关系,数据点列呈现单调上升趋势,开始上升较快随后逐渐变慢,单调上升趋势,开始上升较快随后逐渐变慢
10、,故宜采用多项式、双曲型函数、指数型函数或故宜采用多项式、双曲型函数、指数型函数或对数型函数做拟合等对数型函数做拟合等完整编辑ppt262、采用、采用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阶拟合阶拟合
11、)6阶多项式拟合效果较好阶多项式拟合效果较好完整编辑ppt273、采用双曲函数进行拟合:、采用双曲函数进行拟合:代码:代码: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(测量数据测量数据,双曲型拟合双曲型拟合)(0)tybatb11Y,11,TtatbybabaatbytYTytt其中完整编辑ppt28七、结论与应用七、结论与应用 1515225nnnF5/)2/)51(nnFn 时,之间。与的阶在故nnnF2)2
12、/3(215G黄金分割数1(15)5122)1(511nnnnGGF 214322121225432FFFFFFGFFFFFFnnnn1512nnnFLimGF1nF1-1 0 0 0 01 1-1 0 0 00 1 1-1 0 0 0 0 0 0 1 1 。显示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项的数组显示出来返回显示取对数
13、后的前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项的数组显示出来返回根据取对数后的数据,拟合出线性表达式 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
14、%循环结束xn=1:n;%定义横坐标fn=log(fn)%将原来的数据取对数polyfit(xn,fn,1)%拟合装有数列前n项的数组返回显示拟合数据与原始数据的前n项function plotfibo2(n)%显示拟合数据与原始数据的前n项fn1=;%装拟合数据的数组for i=1:n%fn1的第1项到第n项 fn1=fn1,0.4476*1.618i;%将第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;pl
15、ot(x,fn1,x,fn2,r*)%显示,fn1兰线,fn2红星返回显示取对数后的拟合数据与原始数据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红星返回2022-12-29完整编辑ppt42第二次上课作业第二次上课作业 教材教材P18-19:第:第2和和6题题完整编辑ppt43此课件下载可自行编辑修改,供参考!此课件下载可自行编辑修改,供参考!部分内容来源于网络,如有侵权请与我联系删除!部分内容来源于网络,如有侵权请与我联系删除!