加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

斐波那契数列产生原理的演绎 及 它与0.618有关的证明

(2014-04-20 17:14:04)
标签:

教育

情感

斐波那契数列产生原理的演绎 及 它与0.618有关的证明

  

    斐波那契数列,是十二、三世纪意大利数学家斐波那契(Fibonacci, 1170-1240年)发明的。它指的是这样一个数列:0、1、1、2、3、5、8、13、21、34, 55, 89, 144, ... 这个数列从第二项开始,每一项都等于前两项之和。特别指出:0是第0项,不是第1项。

    斐波那契数列的前一项与后一项之比,其比值,越往后,就越来越逼近黄金分割,所以又称黄金分割数列。又因为它以兔子繁殖为例而引入,故而又称为“兔子数列”。

    这很有意思,引起了我的兴趣与学习,愿在独立思考后,发表一下我的所得。

 

一  斐波那契数列的产生及Visual Basic 程序

 

这个数列,小学算术书上就有介绍,为使小学生能理解这些数是怎样来的,特作以下演绎。

    由兔子繁殖而产生的斐波那契数列,它产生的原则是: 一对小兔子一个月长成为一对大兔子,一对大兔子一个月生一对小兔子。如此繁殖下去,得每个月兔子总对数的数列:

         13   21   34   55  89  144   233   377 

    现以 -1表第一代小兔,1表第一代大兔,1-2表第一代生了第二代小兔,2表第二代大兔,1-3表第一代生了第三代小兔,3表第三代3 ……总之,用 -1、-2、-3…表小兔子号,123 表大兔子号。 按繁殖规则发展下去,则有下表:

 

月                                                   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 

月                                                    10

兔子对数                                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,数列为:

     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+X1=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

证毕。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有