试验一斐波那契数列
斐波那契数列的6大结论

斐波那契数列的6大结论斐波那契数列,这个名字听起来就像是数学界的魔法。
没错,斐波那契数列的魅力就在于它看似简单,却藏着无尽的奥秘。
今天咱们就来聊聊这条神秘的数字之路,顺便带点幽默,轻松一下。
1. 斐波那契数列是什么?1.1 说白了,斐波那契数列就是这样一串数字:0、1、1、2、3、5、8、13、21,依此类推。
你可能会问,这数字有什么了不起的?其实,这串数字的产生规则非常简单:前两个数相加,得到下一个数。
就像做饭,先放盐再放胡椒,最后成了一道美味的菜。
1.2 你看,这数列不光是数学家们的心头好,艺术家、建筑师也爱得不得了。
比如,著名的“黄金比例”就跟它有千丝万缕的联系。
可以说,斐波那契数列就像是宇宙的乐谱,处处都能听到它的旋律。
2. 自然界的魅力2.1 斐波那契数列在自然界中无处不在,这可不是我随便说说。
你注意过向日葵的花瓣吗?它们的排列方式就遵循这个数列,真是神奇得让人赞叹不已。
就像大自然的设计师,精心安排了一切。
2.2 除了花瓣,松果、贝壳甚至是一些水果的种子分布也都跟斐波那契数列有关。
这让人不禁想,难道自然界也在暗自欣赏这串数字的美妙?就像人们欣赏一幅完美的画作,心里忍不住咯噔一下。
3. 斐波那契与生活3.1 在我们的日常生活中,斐波那契数列其实也无处不在。
比如说,咱们日常见到的许多设计和建筑,往往都运用了这个数列的美学原则。
你看看那些高楼大厦,有的外形简直就是一幅现代艺术画,背后其实都有数学的影子。
3.2 另外,许多经济学模型也利用了斐波那契数列来预测市场走势。
这就像在打麻将,灵活运用每一张牌,才能获得胜利。
数列的神秘力量在这里展露无遗,让人不禁感慨:数字背后藏着多少智慧呀!4. 学习与探索4.1 学习斐波那契数列,简直就像是一场冒险旅行。
起初可能有点不知所措,但随着深入,真的会发现不少惊喜。
就像走进一个藏满宝藏的洞穴,越走越想探索下去。
4.2 斐波那契数列的应用范围广泛,甚至可以帮助我们理解一些复杂的现象。
斐波那契数列

斐波那契数列一、简介斐波那契数列Fibonacci,又称黄金分割数列,由数学家斐波那契最早以“兔子繁殖问题”引入,推动了数学的发展;故斐波那契数列又称“兔子数列”;斐波那契数列指这样的数列:1,1,2,3,5,8,13,……,前两个数的和等于后面一个数字;这样我们可以得到一个递推式,记斐波那契数列的第i项为F i,则F i=F i-1+F i-2.兔子繁殖问题指设有一对新生的兔子,从第三个月开始他们每个月都生一对兔子,新生的兔子从第三个月开始又每个月生一对兔子;按此规律,并假定兔子没有死亡,10个月后共有多少个兔子这道题目通过找规律发现答案就是斐波那契数列,第n个月兔子的数量是斐波那契数列的第n项;二、性质如果要了解斐波那契数列的性质,必然要先知道它的通项公式才能更简单的推导出一些定理;那么下面我们就通过初等代数的待定系数法计算出通项公式;令常数p,q满足F n-pF n-1=qF n-1-pF n-2;则可得:F n-pF n-1=qF n-1-pF n-2=q2F n-2-pF n-3=…=q n-2F2-pF1又∵F n-pF n-1=qF n-1-pF n-2∴F n-pF n-1=qF n-1-pqF n-2F n-1+F n-2-pF n-1-qF n-1+pqF n-2=01-p-qF n-1+1+pqF n-2=0∴p+q=1,pq=-1是其中的一种方程组∴F n-pF n-1= q n-2F2-pF1=q n-21-p=q n-1F n=q n-1+pF n-1=q n-1+pq n-2+pq n-3+…=q n-1+pq n-2+p2q n-3+…+p n-1不难看出,上式是一个以p/q为公比的等比数列;将它用求和公式求和可以得到:而上面出现了方程组p+q=1,pq=-1,可以得到p1-p=-1,p2-p-1=0,这样就得到了一个标准的一元二次方程,配方得p2-p+=,2=,p=±√+;随意取出一组解即可:这就是著名的斐波那契数列通项公式;有了它,斐波那契数列的一些性质也不难得出了;比如斐波那契数列相邻两项的比值趋向于黄金分割比,即:根据斐波那契数列通项公式,可以得到因为n是趋向于正无限的,因此我们可以知道:那么我们就可以把分子和分母的第二项同时省略掉,即这就是斐波那契数列的魅力之一——它和黄金分割比有密切的关系;下面将给出斐波那契数列的几个性质及其证明;1F1+F2+F3+...+F n=F n+2-1证明:原式=F3-F2+F4-F3+...+F n+2-F n+1=F n+2-1.2F1+F3+F5+...+F2n+1=F2n+2证明:原式=F2+F4-F2+F6-F4+...+F2n+2-F2n=F2n+23F12+F22+...+F n2=F n F n+1证明:利用数学归纳法,显然n=1时满足,下面证明若n=k时满足,n=k+1时也满足.已知F12+F22+...+F n2=F n F n+1,F12+F22+...+F n+12=F n F n+1+F n+12=F n+1+F n F n+1=F n+1F n+2,因此n+1后仍然满足.上述公式成立.4F1F2+F2F3+...+F n F n+1=F n+22-F n F n+1-1/2证明:数学归纳法,n=1时满足.已知F1F2+F2F3+...+F n F n+1满足,那么F1F2+F2F3+...+F n F n+1+F n+1F n+2=F n+22-F n F n+1-1/2+F n+1F n+2=F n+22-F n F n+1+2F n+1F n+2-1/2=F n+22+2F n+1F n+2+F n+12- F n F n+1-F n+12-1/2=F n+32-F n+1F n+2-1/2,因此上式成立.5F n2=F n-1F n+1+-1n+1证明:数学归纳法,n=2时满足.已知前面的n都满足,那么F n2=F n-12+F n-22+2F n-2F n-1=F n-12+F n-3F n-1+-1n-1+2F n-2F n-1=F n-1F n+F n-12+-1n-1=F n-1F n+1+-1n+1,因此上式成立.6F n+m=F m-1F n+F m F n+1n>m>1证明:利用通项公式,设α=,β=1-α=注意到1/α+α=sqrt5=1/β+β,1/α+β=0=1/β+α,上式就变成了这就是上述公式的证明.三、斐波那契数列与自然斐波那契数列中的斐波那契数会经常出现在我们的眼前——比如松果、凤梨、树叶的排列、某些花朵的花瓣数典型的有向日葵花瓣,蜂巢,蜻蜓翅膀,超越数e可以推出更多,黄金矩形、黄金分割、等角螺线,十二平均律等;斐波那契数还可以在植物的叶、枝、茎等排列中发现;例如,在的枝干上选一片叶子,记其为数0,然后依序点数叶子假定没有折损,直到到达与那些叶子正对的位置,则其间的叶子数多半是斐波那契数;叶子从一个位置到达下一个正对的位置称为一个循回;叶子在一个循回中的圈数也是斐波那契数;在一个循回中叶子数与叶子旋转圈数的比称为源自希腊词,意即叶子的排列比;多数的叶序比呈现为斐波那契数的比;图为斐波那契弧线;关于递推式的拓展研究一、错位排列问题有n个数,求有多少种排列使这n个数都不在原来的位置上;比如n=2时,有一种排列;设fn表示n个数的错位排列数量,分两种情况讨论:1.第n个数在第pp≠n个数的位置上,第p个数在第n个数的位置上,则此时共有fn-2种选择;由于p有n-1种值,则总共有n-1fn-2种排列方法;2.否则,共有n-1fn-1种排列方法;综上所述,fn=n-1fn-1+fn-2,f1=0,f2=1;那这个数列的通项公式是什么呢直接对这个数列不好进行操作,可以转化一下;设错位排列的概率函数为gn,其中g1=0,g2=;在fn的递推式两边同时除以n即可得到;两边同时乘n得到ngn=n-1gn-1+gn-2ngn-gn-1=gn-2-gn-1注意到e-1的泰勒展开式跟它好像有点像,是因此有如下的等式:同时,我们也可以得到了函数f的通项公式为:这就是一些关于错位排序的性质;二、类斐波那契数列的研究我们知道斐波那契数列递推式为fn=fn-1+fn-2,那么假如有更多项呢假设fn=fn-1+fn-2+fn-3,其中f1=f2=f3=1.我们暂时称这个数列为类斐波那契数列,那么它的通项公式又如何呢令a,b,c满足fn+afn-1+bfn-2=cfn-1+afn-2+bfn-3则得到c-a=1,ac-b=1,bc=1,消元得c3-c2-c-1=0,利用牛顿迭代可以计算出c=……,则a=……,b=……所以fn+afn-1+bfn-2=c n-31+a+b,记t=1+a+b,两边同时除以c n构造更多的常数项:为了方便,我们记,则:令p,q,r满足gn-pgn-1-q=rgn-1-pgn-2-q,则得到:这个方程会发现没有实数解,于是我们只能使用复数了:p= (i)q=...+ (i)r=...+ (i)继续上面的递推式,则有gn-pgn-1-q=r n-2g2-pg1-q;记T= g2-pg1-q,则:gn=pgn-1+r n-2T+q=ppgn-2+r n-3T+q+r n-2T+q=p n-1g1+p n-2T+p n-3rT+…+r n-2T+q+pq+…+p n-2q因此也就可以得到f的递推式了:不难得到,t=…,T=…+…i;递推式中的c,p,q,t,T都是常数,但除了c以外都是复数,因此计算上会比较困难;在附录中附上C++的程序,附复数计算的模板和使用递推式计算类斐波那契数列的程序;三、递推式和矩阵如果对于每个线性递推式都要先计算它的通项公式才能够快速地得到某一项,那这个方法太过于复杂了;于是我们可以使用矩阵来加速递推;比如斐波那契数列的递推式也可以写成:因此就有如下结果:其中矩阵的幂次方可以使用快速幂算法在Ologn的时间内解决,因此我们就可以在Ologn 的时间内计算出斐波那契数列的第n项排除高精度的时间,且精度要比虚数和小数精确的多;附录利用通项公式计算类斐波那契数列的代码:include<>include<>include<algorithm>include<>include<vector>include<>include<queue>include<set>include<functional>include<>using namespace std;const double EPS = 1E-15;struct Complex{double a, b;4lf+%.14lfi\n", a, b; }};Complex csqrt const Complex& c{Complex r = Complex1, 1, t = Complex;while r = t{t = r;r = r - r r - c / 2 / r;}return r;}Complex cpow Complex c, int e{Complex res = Complex1, 0;for ; e; e >>= 1{if e & 1 res = res c;c = c c;}return res;}int main{double c = 2, t = 0;while fabsc - t > EPS{t = c;c -= c c c - c c - c - 1 / 3 c c - 2 c - 1;}double a = c - 1, b = 1 / c;printf"%.14lf\n", 1 + a + b;t = 1 + a + b;Complex r = csqrt Complex a a / c / c - 4 b / c / c - a / c / 2;;Complex p = Complex-a / c - r, q = Complex t / c / c / c / Complex1 - r;, ;Complex T = Complex1 / c / c - Complex1 / c p - q;;int n = 7;scanf"%d", &n;Complex res = cpow Complex c, n cpowp, n - 1 / Complex c + T cpowr, n - 1 - cpowp, n - 1 / r - p + q cpowp, n - 1 - q / p - Complex1;;system"pause";return 0;}。
斐波那契数列与黄金分割

答案是 6710。
4
这与“斐波那契数列”有关
若一个数列,前两项等于1,而从第三项 起,每一项是其前两项之和,则称该数 列为斐波那契数列。即:
1 , 1 , 2 , 3 , 5 , 8 , 13 , … …
5
一、兔子问题和斐波那契数列
1. 兔子问题 1) 问题 ——取自意大利数学家 斐波那契的《算盘书》 (1202年)
解:设跳到第n格的方法有 tn种。
由于他跳入第1格,只有一种方法;跳入 第2格,必须先跳入第1格,所以也只有一
种方法,从而 t1 t2 1
22
而能一次跳入第n格的,只有第 n 1
和第 n 2 两格,因此,跳入第 n 格的方法
数,是跳入第n 1格的方法数 tn1,加上跳入
第 n 2 格的方法数 tn2 之和。
2
再作
A(AE)交 AB于 C ,则
AC
AB
5 1 ,C 即
2
为 AB的黄金分割点。
D
5
E
1
A
C
B2Βιβλιοθήκη 38证:不妨令 BD 1 ,则 AB 2 , AD 22 1 5 , AE AD ED 5 1,
AC AE
AC 5 1,
5 1
AB 2
证完。
39
4. 黄金分割的美 黄金分割之所以称为“黄金”分割,是 比喻这一“分割”如黄金一样珍贵。黄金 比,是工艺美术、建筑、摄影等许多艺术 门类中审美的因素之一。认为它表现了恰 到好处的“合谐”。 例如:
如果把该连分数从第 n 条分数线截住,即
把第n 1条分数线上、下的部分都删去,就
得到该连分数的第n 次近似值,记作 un 。
vn
斐波那契数列应用

生活中我们常常相信亲眼所见,但又常常为自己的眼睛所骗,魔术就是一个很好的例子。
数学中也有这种欺骗我们眼睛的奇妙的数学魔术,我们还是来看一个简单的问题吧,将图3中面积为13×13=169的正方形裁剪成图中标出的四块几何图形,然后重新拼接成图4,计算可知长方形的面积为8×21=168,比正方形少了一个单位的面积,真不可思议!这两个问题是这样的令人惊奇和难以理解,我们在白纸上将正方形量好画出,剪成四块,重新安排后拼成长方形,除非图形做得很大并且作图和剪裁都十分精确,我们一般是不会发现拼接成的长方形在对角线附近发生了微小的重叠,正是沿对角线的微小重叠导致了一个单位面积的丢失。
要证实这一点我们只要计算一下长方形对角线的斜率和正方形拼接各片相应边的斜率,比较一下就会清楚了。
问题2中涉及到四个数据5、8、13和21,有一定数学基础的同学会认出这是著名的斐波那契数列中的四项,斐波那契数列的特征是它的每一项都是前两项之和:1,1,2,3,5,8,13,21,34,……。
我们还可以使用这个数列中的其他相邻四项来试验这个过程,无论选取哪四项,都可以发现正方形和长方形的面积是不会相等的,有时正方形的面积比长方形多一个单位面积,有时则正好相反。
多做几次上述实验,我们就会得出斐波那契数列的一个重要性质:这个数列任意一项的平方等于它前后相邻两项之积加1或减1。
用公式表示就是:。
其中表示正方形的面积,表示长方形的面积。
知道了这个事实,我们就可以自己构造类似于问题2的几何趣题.爬梯子问题(斐波那契数列应用)1。
小明要上楼梯,他每次能向上走一级、两级或三级,如果楼梯有10级,他有几种不同的走法?这里我们不妨也来研究一下其中的规律:如果楼梯就一级,他有1种走法;如果楼梯有两级,他有2种走法;如果楼梯有三级,他有4种走法;如果有五级楼梯,他有7种走法.既:楼梯的级数:12345678...上楼梯的走法:124713244481...这其中的规律就是,这里从第4个数开始,每一个数都等于它前面的3个数之和.。
斐波那契数列及其性质

裴波纳契数列及其性质在现实生活中,我们经常会遇到类似“数列”变化的一系列经济问题,裴波纳契数列出现在我们生活中的方方面面,一些问题不仅可以用裴波纳契数列表示,而且本质上就是裴波纳契数列,可见裴波纳契数列在很多数学分支都有很广泛的应用,因此研究裴波纳契数列非常必要。
本文通过探讨裴波纳契数列的性质,进一步掌握数列的数字排列、增减变化、波动趋势等数项之间的变化规律,继而给出一系列与裴波纳契数列相关问题的解决方案,特别是对中学数学教育中,如何让学生巧妙解题具有启发作用。
1. 裴波纳契数列的由来斐波那契,公元13世纪意大利数学家,在他的著作《算盘书》中记载着这样一个“兔子繁殖问题”:假定有一对大兔子,每一个月可生下一对小兔子,并且生下的这一对小兔子两个月后就具有繁殖能力。
假如一年内没有发生死亡,那么,从一对小兔子开始,一年后共有多少对兔子?问题的解答思路:将每个月的兔子总对数列出来即可(需考虑到每个月具有生殖能力的兔子的对数),如下:月份 1 2 3 4 5 6 7 8 9 10 111213小兔子数(对) 1 0 1 1 2 3 5 8 13 21345589大兔子数(对)0 1 1 2 3 5 8 13 21345589144兔子总数(对) 1 1 2 3 5 8 13 21345589144233所以一年后(即第13个月初),繁殖的兔子共有233对。
仔细观察,可以看出上面列出的兔子对数呈现出一个有趣的变化规律:即从第3个月起,每个月的兔子对数都是前两个月的兔子对数之和,把这些数字按照相同的规律推算到无穷多项,就构成了一列数列:1、1、2、3、5、8、13、21、34、55……,人们就把它称为裴波纳契数列,而将这个数列中的每一项称为“裴波纳契数”。
2. 生活中常见的裴波纳契数列数学模型:假如我们把设为裴波纳契数列,不难发现数列是由递推关系式:,,……,所给出的一个数列。
从而,我们就可以轻而易举地算出两年,三年……以后的兔子数。
斐波那契数列

斐波那契数列在数学的奇妙世界里,有一个充满魅力的数列,那就是斐波那契数列。
它看似简单,却蕴含着无尽的奥秘和广泛的应用,影响着我们生活的方方面面。
斐波那契数列是这样一组数字:0、1、1、2、3、5、8、13、21、34、55、89、144…… 从第三项开始,每一项都是前两项的和。
这个数列最初是由意大利数学家斐波那契在研究兔子繁殖问题时提出的。
想象一下,有一对刚出生的小兔子,一个月后它们长大成年,再过一个月就能生下一对小兔子。
假设兔子都不死,那么每个月兔子的数量就会按照斐波那契数列增长。
第一个月有 1 对兔子,第二个月还是 1 对,第三个月就变成 2 对,因为成年的兔子生下了 1 对新兔子,以此类推。
斐波那契数列的奇妙之处不仅在于它的起源,还在于它所展现出的一些独特的数学性质。
比如,随着数列项数的增加,相邻两项的比值会逐渐趋近于一个固定的数值,约为 1618,这个数值被称为黄金分割比。
黄金分割比在美学、艺术和自然界中都有着广泛的存在。
许多著名的艺术作品,如达芬奇的《蒙娜丽莎》,其构图就符合黄金分割的比例,给人以美的感受。
在建筑设计中,也常常运用黄金分割来确定建筑物的比例和尺寸,使其更加和谐美观。
在自然界中,斐波那契数列也随处可见。
例如,向日葵的花盘上,种子的排列呈现出斐波那契螺旋线的形式。
这是因为这样的排列方式能够最大程度地利用空间,使种子得到最充分的光照和生长条件。
菠萝表面的鳞片、松果的鳞片排列,也都遵循着斐波那契数列的规律。
斐波那契数列在计算机科学中也有着重要的应用。
它可以用于算法设计和优化,比如在搜索算法、排序算法中,斐波那契数列可以帮助提高算法的效率。
在密码学中,斐波那契数列也可以用于生成密钥,增加密码的安全性。
此外,斐波那契数列还与金融市场有着密切的关系。
一些技术分析方法会利用斐波那契数列来预测股票价格的走势和支撑阻力位。
虽然这种预测并不是百分之百准确,但它为投资者提供了一种思考和分析市场的工具。
斐波那契数列研究

斐波那契数列研究一、斐波那契生平斐波那契(1175年-1250年),意大利数学家,西方第一个研究斐波那契数,并将现代书写数和乘数的位值表示法系统引入欧洲。
有感使用阿拉伯数字比罗马数字更有效,斐波那契前往地中海一带向当时著名的阿拉伯数学家学习,约于1200年回国。
1202年, 27岁的他将其所学写进计算之书。
这本书通过在记帐、重量计算、利息、汇率和其他的应用,显示了新的数字系统的实用价值。
这本书大大影响了欧洲人的思想,可是在三世纪后印制术发明之前,十进制数字并不流行。
欧洲数学在希腊文明衰落之后长期处于停滞状态,直到12世纪才有复苏的迹象。
这种复苏开始是受了翻译、传播希腊、阿拉伯著作的刺激。
对希腊与东方古典数学成就的发掘、探讨,最终导致了文艺复兴时期(15~16世纪)欧洲数学的高涨。
文艺复兴的前哨意大利,由于其特殊地理位置与贸易联系而成为东西方文化的熔炉。
意大利学者早在12~13世纪就开始翻译、介绍希腊与阿拉伯的数学文献。
欧洲,黑暗时代以后第一位有影响的数学家斐波那契,其拉丁文代表著作《算经》、《几何实践》等也是根据阿拉伯文与希腊文材料编译而成的,斐波那契,早年随父在北非从师阿拉伯人习算,后又游历地中海沿岸诸国,回意大利后即写成《算经》。
《算经》最大的功绩是系统介绍印度记数法,影响并改变了欧洲数学的面貌。
现传《算经》是1228年的修订版,其中还引进了著名的“斐波那契数列”。
《几何实践》则着重叙述希腊几何与三角术。
斐波那契其他数学著作还有《平方数书》、《花朵》等,前者专论二次丢番图方程,后者内容多为菲德里克二世宫廷数学竞赛问题,斐波那契论证其根不能用尺规作出,他还未加说明地给出了该方程的近似解。
微积分的创立与解析几何的发明一起,标志着文艺复兴后欧洲近代数学的兴起。
微积分的思想根源部分(尤其是积分学)可以追溯到古代希腊、中国和印度人的著作。
在牛顿和莱布尼茨最终制定微积分以前,又经过了近一个世纪的酝酿。
二、《算盘原理》《算盘原理》中的“算盘”并非仅仅指罗马算盘或某种计算工具。
神奇的数列——斐波那契数列

神奇的数列——斐波那契数列斐波那契数列之美斐波那契是一位数学家,生于公元1170年,籍贯大概是比萨,卒于1240年后。
1202年,他撰写了《珠算原理》(Liber Abaci)一书。
他是第一个研究了印度和阿拉伯数学理论的欧洲人。
斐波那契数列因他解决兔子繁殖的应用题而引入,故又称为“兔子数列”。
除此之外,他对欧洲数学的另一大贡献就是引进阿拉伯数字,从而取代了复杂的罗马计数法。
有这样一个数列:1、1、2、3、5、8、13、21、34……前两个元素为1,其他元素均为前两个元素和。
在数学上以如下递归的方法定义:这就是斐波那契数列的数学定义。
奇妙的属性随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值0.6180339887……从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。
(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如第四项3是奇数,但它是偶数项,第五项5是奇数,它是奇数项,如果认为数字3和5都是奇数项,那就误解题意,怎么都说不通)如果你看到有这样一个题目:某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65?其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。
斐波那契数列的第n项同时也代表了集合{1,2,...,n}中所有不包含相邻正整数的子集个数。
斐波那契数列(f(n),f(0)=0,f(1)=1,f(2)=1,f(3)=2……)的其他性质:f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)利用这一点,可以用程序编出时间复杂度仅为O(log n)的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试验一 斐波那契数列一、 实验目的与要求1.认识Fibonacci 数列,体验发现其通项公式的过程;2.了解matlab 软件中进行数据显示与数据拟合的方式;3.掌握matlab 软件中plot, polyfit 等函数的基本用法;4.提高对数据进行分析与处理的能力。
二、 问题描述某人养了一对兔,一个月后生育了一对小兔。
假设小兔一个月后就可以长大成熟,而每对成熟的兔每月都将生育一对小兔,且兔子不会死亡。
问:一年后共有多少对兔子?三、 问题分析这个问题,最早由意大利数学家斐波那契(Fibonacci),于1202年在其著作《珠算原理》中提出。
根据问题的假设,兔子的总数目是如下数列: 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 个月后兔子的对数(表示生育出来的新兔子对数)。
这样就得到关于Fibonacci 数列的一个递推公式:21n n n F F F ++=+利用matlab 软件的数据可视化功能将这些数据显示成平面曲线的形式后,我们可以观察到Fibonacci 数列的变化规律;通过matlab 软件的数据拟合功能,我们可以大概知道Fibonacci 数列的函数关系式,结合上面的递推公式,就可以推导出来Fibonacci 数列的通项公式。
四、 背景知识介绍1. 数据的可视化。
将离散的数据:1234,,,,,,n F F F F F ,看成平面坐标系里的点:1234(1,),(2,),(3,),(4,),,(,),n F F F F n F ,利用matlab 软件的plot 函数在平面坐标系里划出一个点列,就可以实现离散数据的可视化。
plot 函数的基本使用格式为:plot(y),其中参数y 表示竖坐标,即需要显示的数据。
例1 y=1:20;y=y.^3;plot(y)2. 数据的拟合。
数据拟合就是寻找一个目标函数,作为被拟合数据的近似函数关系。
目标函数的类型,可以是多项式、指数函数等。
作数据拟合,首先需要估计目标函数的类型,这一点可以通过数据可视化来观察得到,而一阶多项式是最常见的目标函数,此时称为线性回归。
确定拟合系数的原则是最小二乘法,即所有误差的平方和取最小值。
在matlab 软件中以多项式为目标函数作数据拟合的函数是polyfit ,它的基本使用格式为:polyfit (x,y,n)。
其中(x,y)是被拟合的数据,即平面上的一个点列,而n 是事先确定的多项式的阶数。
例2 x=[1,3,4,5,6,7,8,9,10];y=[10,5,4,2,1,1,2,3,4]; polyfit (x,y,2)结果:20.2676t - 3.6053t + 13.45973. 数列的通项公式。
寻找一个整标函数,使得它在n 处的函数值,等于数列的第n 项的值,这个函数就是数列的通项公式。
4. 黄金分割。
把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比(如下图)。
其比值是一个无理数1)2-÷,取其前三位数字的近似值是0.618。
由于按此比例设计的造型十分协调美观,因此称之为黄金分割。
五、 实验过程本试验将Fibonacci 数列的有限项,看成是待处理的数据。
首先利用matlab 软件的可视化功能,将这些数据显示在平面坐标系中,观察其图形类似什么曲线,结论是:指数函数的曲线。
进一步,利用指数函数与对数函数的互逆关系,将原有数据取对数,再观察其曲线形状是否类似直线,以验证原来的观察是否正确。
通过观察到的目标函数,然后利用matlab 软件的数据拟合功能,得到Fibonacci 数列通项公式的近似关系。
最后,从近似关系出发,推导出来Fibonacci 数列的通项公式。
1. 观察数据的大概函数关系。
为了研究Fibonacci 数列的变化规律,我们取此数列的前30项来观察。
利用Matlab 软件的数据可视化功能,将这些数据显示在平面坐标系中,观察其中蕴涵的函数关系。
具体的实现流程为:(1)定义数组fn ;(2)显示数组fn 。
具体的代码如下:function plotfibo(n) %定义函数显示Fibonacci 数列前n 项fn=[1,1]; %将数列的前两项放到数组fn 中for i=3:n %fn 的第3项到第n 项AM:AB=MB:AMfn=[fn,fn(i-2)+fn(i-1)]; %将第i项添加到数组fn中end %循环结束plot(fn) %将装有数列前n项的数组显示出来这个函数的调用方式是:plotfibo(30),显示出来的图像为图1,经观察,觉得曲线的形状象指数函数的曲线,其数据无限增大。
可以改变参数n的值,反复观察。
图1 n=30 图2 n=50图3 n=500 图4 n=10002.进一步验证上一步得到的结论。
经过上一步的观察,觉得这些数据应该是指数函数的形式。
为了进一步验证这个结论是否正确,可以利用指数函数与对数函数的互逆关系。
如果这些数据确实是指数函数的形式,则经过取对数后应该是一个线性关系,即一阶多项式,从图形上看应该象一条直线。
因此,再利用Matlab软件的数据可视化功能,将这些数据取对数后显示在平面坐标系中,观察它是否象一条直线。
具体的实现流程为:(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 的值,反复观察。
图5 n=30 图6 n=50图7 n=500 图8 n=10003. 获得数据的近似关系式。
经过以上第一步的观察,确定Fibonacci 数列的数据是指数函数的关系,第二步验证了第一步得到的结论,因此我们认为Fibonacci 数列的数据关系就是指数函数,取对数后就是线性函数,即一阶多项式。
利用Matlab 软件的数据拟合功能,通过取对数后的数据,用一阶多项式拟合出它的函数关系式,可以得到Fibonacci 数列通项公式的一个近似表达式。
具体的实现流程为:(1)定义数组fn ;(2)数组fn 取对数;(3)用一阶多项式拟合数组fn 。
具体的代码如下: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项的数组这个函数的调用方式是:fitlnfibo(30),运行后返回结果是:0.4799,-0.7768。
这两个数据就是一阶多项式的系数,即:F≈-log()0.7768+0.4799nn为了提高精度,可以加大n的值。
取n=1000时得到:F≈-log()0.8039+0.4812nn从上面的表达式,可以得到数列通项公式的近似:nF≈⨯0.4476 1.6180n4.观察拟合数据与原始数据的吻合程度。
经过第三步的拟合,得到了Fibonacci数列近似的通项公式,为了观察其吻合程度,我们将Fibonacci数列的拟合数据与原始数据的图形显示出来,进行对比观察。
具体的实现流程为:(1)定义数组fn1,fn2;(2)显示数组fn1,fn2。
具体的代码如下:function plotfibo2(n) %显示拟合数据与原始数据的前n项fn1=[]; %装拟合数据的数组for i=1:n %fn1的第1项到第n项fn1=[fn1,0.4476*1.618^i]; %将第i项添加到数组fn1中endfn2=[1,1]; %装原始数据的数组,前两项放到数组fn2中for i=3:n %fn2的第3项到第n项fn2=[fn2,fn2(i-2)+fn2(i-1)]; %将第i项添加到数组fn2中endx=1:n;plot(x,fn1,x,fn2,'r*') %显示, fn1―兰线,fn2-红星这个函数的调用方式是:fitlnfibo2(20),显示出来的图像为图9,或fitlnfibo2(50),显示出来的图像为图10。
图9 n=20 图10 n=505. 推导Fibonacci 数列的通项公式(1)。
通过以上的观察和分析,我们知道Fibonacci 数列的数据大概是指数函数的关系。
因此,我们猜测它的通项公式具有形式:n n F k r =⨯。
将这个表达式代入递推公式21n n n F F F ++=+中,得到:21n n n k r k r k r ++⨯=⨯+⨯。
经过简化得到:21r r =+这是一个一元二次的代数方程,其两个根形式如下:(12r =±÷考虑到Fibonacci 数列的数据无限增大,我们取(12r =+÷,于是得到通项公式如下:[(12]n n F k =⨯+÷上面的公式对吗?我们可以来验证。
取n=1和n=2代入上面的公式中计算,显然得不到121,1F F ==,因此它不是Fibonacci 数列的通项公式。
但这个公式并非一无是处,我们可以来考虑这个公式与Fibonacci 数列到底相差多少。
因此,我们引入以下一个数列:[(12]n n n T F k =-⨯+÷可以验证,这个新的数列也满足同样的递推公式:21n n n T T T ++=+,因此我们猜测它同样是指数函数的形式,可以假设其表达式为:n n T r λ=⨯,代入递推公式后,同样可以得到:21r r =+。
这里的r 显然不同于上面的r ,故这个r 取值为:(12r =-÷,从而得到:[(12]n T λ=⨯÷。