斐波那契数列 维基百科

标签:
杂谈 |
分类: 概念定义常识 |
费波那西数列(Fibonacci Sequence),又译费波拿契数、斐波那契数列、费氏数列、黄金分割数列。
- F0 = 0
- F1 = 1
- Fn = Fn − 1 + Fn − 2
用文字来说,就是费波那西数列由 0 和 1 开始,之后的费波那西系数就由之前的两数相加。首几个费波那西系数是(OEIS A000045):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………
特别指出:0不是第一项,而是第零项。
目录[隐藏] |
[编辑] 源起
根据高德纳(Donald Ervin Knuth)的《计算机程序设计艺术》(The Art of Computer Programming),1150年印度数学家Gopala和金月在研究箱子包装物件长阔刚好为 1 和 2 的可行方法数目时,首先描述这个数列。 在西方,最先研究这个数列的人是比萨的列奥那多(又名费波那西),他描述兔子生长的数目时用上了这数列。
- 第一个月初有一对刚诞生的兔子
- 第二个月之后(第三个月初)它们可以生育
- 每月每对可生育的兔子会诞生下一对新兔子
- 兔子永不死去
假设在 n 月有新生及可生育的兔子总共 a 对,n+1 月就总共有 b 对。在 n+2 月必定总共有 a+b 对: 因为在 n+2 月的时候,所有在 n 月就已存在的 a 对兔子皆已可以生育并诞下 a 对后代;同时在前一月(n+1月)之 b 对兔子中,在当月属于新诞生的兔子尚不能生育。
[编辑] 表达式
为求得费波那西数列的一般表达式,可以借助线性代数的方法。高中的初等数学知识也能求出。
[编辑] 初等代数解法
已知
- a1 = 1
- a2 = 1
- an = an − 1 + an − 2
[编辑] 首先构建等比数列
设an +
αan − 1 = β(an −
1 + αan − 2)
化简得
an = (β −
α)an − 1 + αβan −
2
比较系数可得:
http://upload.wikimedia.org/wikipedia/zh/math/4/e/e/4ee4698d16ae45349e6fd5252f80938a.png
不妨设β > 0,α
> 0
解得:
http://upload.wikimedia.org/wikipedia/zh/math/5/5/2/552792a9c6d1f041ef6d9a4a1f151e57.png
所以有an +
αan − 1 = β(an −
1 + αan − 2), 即http://upload.wikimedia.org/wikipedia/zh/math/0/7/a/07ae8d6e328356269fe4ce97a42eaab0.png
[编辑] 求出数列{an + αan − 1}
由以上可得:
http://upload.wikimedia.org/wikipedia/zh/math/c/3/a/c3ad4bdf9ab8a95bcc012faecbc5ea59.png
变形得: http://upload.wikimedia.org/wikipedia/zh/math/2/f/8/2f856deb15da64f37f895d7f9ae5a37a.png
[编辑] 求数列{bn}进而得到{an}
http://upload.wikimedia.org/wikipedia/zh/math/1/c/d/1cd09de0ce6cd57cd07c5e753bdb2922.png
设http://upload.wikimedia.org/wikipedia/zh/math/0/e/6/0e6009bab1d4dec0e4ec2783958e3e4e.png
即 http://upload.wikimedia.org/wikipedia/zh/math/e/5/d/e5d3869932e692eebef12ee0d3771246.png
又有http://upload.wikimedia.org/wikipedia/zh/math/5/5/2/552792a9c6d1f041ef6d9a4a1f151e57.png
可得 http://upload.wikimedia.org/wikipedia/zh/math/e/b/b/ebbc3dfc4c53d561ada6e5225de82e78.png
得出 an 表达式
http://upload.wikimedia.org/wikipedia/zh/math/e/b/b/ebbc3dfc4c53d561ada6e5225de82e78.png
[编辑] 线性代数解法
[编辑] 构建一个矩阵方程
设Jn为第n个月有生育能力的兔子数量,An为这一月份的兔子数量。
上式表达了两个月之间,兔子数目之间的关系。而要求的是,An+1的表达式。
[编辑] 求矩阵的特征值:λ
行列式:-λ*(1-λ)-1*1=λ2-λ-1
当行列式的值为0,解得λ1=http://upload.wikimedia.org/wikipedia/zh/math/7/5/9/7599ba16c3c73f5d4f15deb783c06e44.png
[编辑] 特征矢量
将两个特征值代入
求特征矢量http://upload.wikimedia.org/wikipedia/zh/math/2/d/8/2d840484ec0396a01d0673b82c4a306c.png
http://upload.wikimedia.org/wikipedia/zh/math/3/e/7/3e7a41153e1b739eb899b1b5ee5fa225.png
http://upload.wikimedia.org/wikipedia/zh/math/8/6/f/86f7d3de7e3813d6ad927ef86b0e86b3.png
[编辑] 分解首矢量
第一个月的情况是兔子一对,新生0对。
将它分解为用特征矢量表示。
- http://upload.wikimedia.org/wikipedia/zh/math/4/a/2/4a26ff5ffb020785f210d3dd1cbc6544.png
维基百科" /> (4)
[编辑] 用数学归纳法证明
从
可得
- http://upload.wikimedia.org/wikipedia/zh/math/f/f/a/ffa30051b9a7e058fd17a5409bf07a0a.png
维基百科" /> (5)
[编辑] 化简矩阵方程
将(4) 代入 (5)
根据 3
[编辑] 求A的表达式
现在在6的基础上,可以很快求出An+1 的表达式,将两个特征值代入 6 中
- http://upload.wikimedia.org/wikipedia/zh/math/8/6/f/86facc55958efc7607f8fae134220bed.png
维基百科" /> (7)
(7)即为An+1 的表达式
[编辑] 近似值
[编辑] 用计算机求解
可通过编程观察斐波那契数列。分为两类问题,一种已知数列中的某一项,求序数。第二种是已知序数,求该项的值。
可通过递归递推的算法解决此两个问题。 事实上当n相当巨大的时候,O(n)的递推/递归非常慢……这时候要用到矩阵加速这一技巧。
[编辑] 和黄金分割的关系
斐波那契数亦可以用连分数来表示:
http://upload.wikimedia.org/wikipedia/zh/math/5/e/c/5ec9e81a45182c04df3560660b6a9449.png
http://upload.wikimedia.org/wikipedia/zh/math/a/5/2/a520578c8ec33a1712802109d9ccfef3.png
而黄金分割数亦可以用无限连分数表示:
[编辑] 和自然的关系
许多的生物构成都和斐波那契数列有正相关。例如人体从肚脐至头顶之距离和从肚脐至脚底之距趋近于http://upload.wikimedia.org/wikipedia/zh/math/f/7/3/f735c5839de8d9f57f6da97697b26141.png
[编辑] 恒等式
证明以下的恒等式有很多方法。以下会用组合论述来证明。Fn可以表示成用多个1和多个2相加令其和等于<mat 不失一般性,我们假设n ≥ 1。Fn + 1是计算了将1和2加到n的方法的数目。若第一个被加数是1,有Fn种方法来完成对n-1的计算;若第一个被加数是2,有F(n-1)来完成对n-2的计算。因此,共有Fn + Fn − 1种方法来计算n的值。
- F1 + F2 + F3 + ... + Fn = Fn + 2 − 1
计算用多个1和多个2相加令其和等于n+1的方法的数目,同时最后一个加数是2的情况。
如前所述,当n 0,有Fn + 2种这样的方法。因为当中只有一种方法不用使用2,就即 1 + 1 + ... + 1 (n+1项),于是我们从Fn + 2减去1。
- 若第1个被加数是2,有Fn个方法来计算加至n-1的方法的数目;
- 若第2个被加数是2、第1个被加数是1,有Fn − 1个方法来计算加至n − 2的方法的数目。
- 重复以上动作。
- 若第n + 1个被加数为2,它之前的被加数均为1,就有F(0)个方法来计算加至0的数目。
若该数式包含2为被加数,2的首次出现位置必然在第1和n+1的被加数之间。2在不同位置的情况都考虑到后,得出Fn + Fn − 1 + ... + F0为要求的数目。
- F1 + 2F2 + 3F3 + ... + nFn = nFn + 2 − Fn + 3 + 2
- F1 + F3 + F5 + ... + F2n − 1 = F2n
- F2 + F4 + F6 + ... + F2n = F2n + 1 − 1
- http://upload.wikimedia.org/wikipedia/zh/math/9/d/e/9de260182cad362fcdebbac5e4dd2028.png
维基百科" /> - http://upload.wikimedia.org/wikipedia/zh/math/d/7/4/d74f4f0e323bab81047d942fb26b9f84.png
维基百科" />
[编辑] 相关的数列
费波那西数列是费波那西n步数列步数为2的特殊情况,也和卢卡斯数列有关。
[编辑] 和卢卡斯数列的关系
[编辑] 反费波那西数列
反费波那西数列的递归公式如下:
- Gn + 2 = Gn − Gn + 1
如果它以1,-1,之后的数是:1,-1,2,-3,5,-8, ...
即是F2n + 1 = G2n + 1,F2n = − G2n。
反费波那西数列两项之间的比会趋近http://upload.wikimedia.org/wikipedia/zh/math/d/5/2/d52f707dd03889267d58198af7582a32.png
[编辑] 巴都万数列
费波那西数列可以用一个接一个的正方形来表现,巴都万数列则是用一个接一个的等边三角形来表现,它有Pn = Pn − 2 + Pn − 3的关系。
[编辑] 应用
1970年,Yuri Matiyasevich 指出了偶角标的斐波那契函数
- y = F2x
正是满足 Julia Robison 假设的丢番图函数,因而证明了希尔伯特第十问题是不可解的。
[编辑] 相关猜想
斐波那契数列中是否存在无穷多个素数?
在斐波那契数列中,有素数:
2,3,5,13,89,233,1597,28657,514229,433494437,2971215073,99194853094755497,106634041749171059581457
[编辑] 参考
- Donald E. Knuth: THE ART OF COMPUTER PROGRAMMING Volume 1/Fundamental
Algorithms. 第一章第 1.2.8 节《斐波那契数》。
- 《数学之恋》【美】克利福德德A皮科夫著,湖南科技出版社