斐波那契数列产生原理的演绎 及
它与0.618有关的证明
斐波那契数列,是十二、三世纪意大利数学家斐波那契(Fibonacci,
1170-1240年)发明的。它指的是这样一个数列:0、1、1、2、3、5、8、13、21、34, 55, 89, 144, ...
这个数列从第二项开始,每一项都等于前两项之和。特别指出:0是第0项,不是第1项。
斐波那契数列的前一项与后一项之比,其比值,越往后,就越来越逼近黄金分割,所以又称黄金分割数列。又因为它以兔子繁殖为例而引入,故而又称为“兔子数列”。
这很有意思,引起了我的兴趣与学习,愿在独立思考后,发表一下我的所得。
一
斐波那契数列的产生及Visual Basic 程序
这个数列,小学算术书上就有介绍,为使小学生能理解这些数是怎样来的,特作以下演绎。
由兔子繁殖而产生的斐波那契数列,它产生的原则是:
一对小兔子一个月长成为一对大兔子,一对大兔子一个月生一对小兔子。如此繁殖下去,得每个月兔子总对数的数列:
1 1
2
3
5
8
13
21
34 55
89 144 233
377 …
现以
-1表第一代小兔,1表第一代大兔,1-2表第一代生了第二代小兔,2表第二代大兔,1-3表第一代生了第三代小兔,3表第三代3
……总之,用 -1、-2、-3…表小兔子号,1、2、3
… 表大兔子号。 按繁殖规则发展下去,则有下表:
月
份
1
2
3
4 5 6 7 8
9
10
-1
1
1-2
1-3
1-4
1-6
1-9
1-14
…
…
2
2-5
2-7
2-10
2-15
3
3-8
3-11
3-16
4
4-12
4-17
5
5-13
5-18
6
6-19
7
7-20
8
8-21
9
10
11
12
13
月
份
1
2
3
4 5 6 7
8
9
10
兔子对数
1
1
2
3
5
8
13
21
34
…
九月份之后,没有演绎下去,因为已发现了规律:第n列的数 = 前两个数列的数之和。即
A(n+2)=A(n+1)+A(n)。其中A(1) = 1: A(2) =
1。为此编了一个程序,只要输入斐波那契数列的列号n ,就显示1 到 n个数列。
Private Sub Form_Click()
Cls
Form1.Width = 11520
Form1.Height = 15360
Dim A (100)
A(1) = 1: A(2) = 1
S = 1
N = InputBox ( "输入斐波那契数列的列号N = " )
Print A(1), A(2),
For I = 3
To N
A(I) = A(I -
2) + A(I - 1)
S = S + A(I)
If
(I Mod 4) = 0 Then Print A(I) Else Print A(I),
Next
Print
Print Tab(10); "S("; F; ")="; S
Print Tab(20); "完成"
End Sub
算例 n =26,数列为:
1 1
2 3 5
8 13 21
34 55 89
144 233 377
610 987 1597
2584
4181 6765
10946 17711
28657 46368
75025 121393
且显示所有数列之和
S (26)=317809,又以显示 "完成",表运算结束。
二
逆运算,求第N项数列值的通项公式及算例
斐波那契数列是一项项推算而来的,少了前一项就不知道后一项。求第N项数列时,要从头算起,太烦了。有时不想知道前面的数,只想知道某一列的数,怎样办?例如列号n
=26, A (26)=?答,有通项公式,但通项公式的推证很长、也很难理解,这里就只能抄录了:
A(n)=(1/√5)*{[(1+√5)/2]^n -[(1-√5)/2]^n}。
由于
√5=2.2360679775
1/√5= 0.4472135955 所以:
A(n) = 0.4472135955 ×(1.618033988749 ^
n- (-0.618033988749) ^ n)
也可简化为:
A(n) = 0.4472135955 ×(1.618033988749 ^ n )
再四舍五入取整数。
程
序
Private Sub Form_Click()
Cls
Form1.Width = 11520
Form1.Height = 15360
N = InputBox ("输入斐波那契数列的列号 N = ")
A =0.4472135955 * (1.618033988749 ^ n -
(-0.618033988749) ^ n)
Print A
Print Tab (20); "完成"
End Sub
算例 n=26 数列值A (26) = 121392.
999998266 ( 取121393 正确 )
n=50 数列值A (50) = 12586269024.
6532 ( 取12586269025正确 )
n=70 数列值A (70) =
190392490701783
n=71 数列值A (71) =
308061521158062
验算 A(70) / A(71) =
0.6180339875023833849784773262985
三
斐波那契数列中,前项∕后项的极限为0.61803398874… 的证明
在斐波那契数列中,前项 /
后项,越往后,就越接近黄金比值0.61803398874989…
验证如下:1/1=1
1/2=0.5 2/3=0.67
3/5=0.6
5/8=0.625
8/13=0.615
13/21=0.619
21/34=0.6176
34/55=0.6182
55/89=0.617977528 89/144=0.61805555 …
细看,还可以发现,这一系列比值,是以黄金分割比值0.61803398874989…为中心,一项项的增大、减小、增大、减小,回荡式的收敛于黄金分割比的。
斐波那契数列与黄金分割比之所以有关,是由于斐波那契数列通项公式中,有黄金分割的因子(1+√5)∕2。而出现这个因子,又与数列特性A(n+2)=A(n+1)+A(n)
有关。证明如下:
A(n+2)=A(n+1)+A(n)
………(1),两边同时除以A(n+1)得到:
A(n+2)/A(n+1)=1+A(n)/A(n+1)
……(2)
若A(n+2)/A(n+1)的极限存在,即后项/前项的极限存在,且后项>前项,所以设其极限为X+1,则,当n→∞时,A(n+2)/A(n+1)→X+1,而A(n)/A(n+1)
是前项/后项,所以其极限为→1/(X+1)。
于是A(n+2)/A(n+1)=1+A(n)/A(n+1) →
X+1=1+1/(X+1)。可化为:
X=1/(X+1) →
X(X+1)=1
→X2+X-1=0。(注意,这正是黄金分割方程了)。
可以用配平方法解此方程。
→ X2+X +1/4-1/4-1=0
→(X+1/2)2-5/4=0
→(X+1/2)2-(√5/2)2=0
→(X+1/2+√5/2)(X+1/2-√5/2) = 0
→(X+(√5+1)/2)(X-(√5-1)/2)=0 ,X只取正值,
→ X=(√5-1)/2)=0.61803398874,所以,
后项/前项的极限为
1+X =1.61803398874
前项∕后项的极限为 1/(1+X)=0.61803398874
证毕。
加载中,请稍候......