Fibonacci Sequence's Transformation
這篇筆記主要會整理如何對費波那契數列(Fibonacci Sequence)的遞迴式進行數學運算,並將其轉換為可以項數索引值表示的一般式結構。
What’s Fibonacci Sequence?
首先簡單定義著名的費波那契數列遞迴式:
滿足
則將此序列稱為費波那契數列(Fibonacci Sequence)。
因此我們可以透過以上的等式列出此數列的前幾項:
History of Fibonacci Sequence
公元 1150 年,印度數學家 Gopala 在研究箱子包裝物件長寬剛好為 1 和 2 的可行方法數目時,首先描述這個數列。而接著在歐洲的義大利數學家費波那契(Fibonacci)則在描述兔群生長問題時,使用了這個數列來描述之,費波那契數列也因此開始受到廣泛的研究。
該問題細部如下:
- 第一個月初有一對剛誕生的兔子
- 第二個月之後(第三個月初)牠們可以生育
- 每月每對可生育的兔子會誕生下一對新兔子
- 兔子永不死去
這項問題的每個月存在兔子對數即構成費波那契數列。
費波那契數列的應用十分廣泛,包括黃金比例、植物學的葉形分布、以及許多的數學性質、最佳化理論等,對於這項數列都有著十分神奇的關聯性,事實上數學家廣泛認為這與費波那契數列的黃金比例性質有關。
Thinking
在將費波那契數列轉換為一般式之前,我們先來複習高中所學到的遞迴式轉換為一般式的過程。
Example 1 (一階遞迴)
已知數列
Solution:
又
Example 1運用了累乘法來對遞迴式進行處理,這類對遞迴式進行四則運算的手法經常被運用到解決單純一階遞迴一般式的問題利用遞迴項恆等式的四則運算來消去不必要的項目,獲得最終以
Example 2 (二階遞迴)
Solution:
將原遞迴式利用未知數
需求適當
解方程式得
①
代回原遞迴式得
②
代回原遞迴式得
利用以上兩個結果解聯立方程式
可得
上面Example 2提到了一個巧妙的變換手法,我們稱此方法為階差法,但費波那契數列是否能夠用類似的手法來處理呢?
答案是可以的。費波那契數列事實上是二階遞迴的一種,因此可以利用上方舉例的Example 2手法來處理,但因為算式的處理難易度考量,處理的手法可能會有些許的不同。此外,二階遞迴的化簡方法亦不僅一種,以下將會介紹除了階差法在內的三種方式來化簡之,一起來看看~
階差法
Method 1
根據費波那契數列遞迴式利用未知數
我們使用階差法的目標在於使兩邊成為單項,因此可得等式
解得
接著分別使用兩個
但這個方法太早牽涉到根號的運算,因此解的過程會非常辛苦…😵
讓我們來看看另一種較為簡單的階差法處理方式吧!
Method 2
我們同樣利用未知數
接著代入索引值:
此時考慮
再代入一次索引值:
此時接著考慮
以
最後一步就是將
以遞迴式規則可以輕易求出
解得
求得費波那契數列一般項
現在知道為什麼費氏數列的一般項化簡會這麼麻煩了嗎~:P
矩陣法
上面的階差法運用了類似於等比數列的概念將費波那契數列轉換為一般項,因此若運用類似的方法,推測矩陣應亦能達成此效果。以下為推導過程:
利用觀察法,可以將費氏數列的原遞迴式改寫為矩陣形式
繼續下推可得
故我們只要將
令原矩陣之特徵值(Eigenvalue)為
以此為基礎對矩陣
將其代回原式並將矩陣乘開即可求得費波那契數列一般項
P.S.最後一步建議不要用根與係數把
我想起了被矩陣對角化支配的”美好”時光…><
生成函數法
西元 1843 年, 法國數學家棣美弗(Jacques-Philippe-Marie Binet)利用一般生成函數求出費氏數列的一般式。這是人類紀錄史上第一次求出費氏數列一般項,也是生成函數應用於數學史的拓展。
但事實上我原本並不知道這個做法,生成函數並不在高中教材中,但就應用層面而言,它的使用廣泛度事實上遠遠超乎我們的想像,舉凡我們常用的排列組合、遞迴關係等,都可以將原來的形式
利用普通生成函數(OGF,ordinary generating function)冪級數
對該函數動一點手腳:
再來一點:
接著代入
此時需引入勞倫級數(Laurent series)概念,在此不解說其深入概念,但是利用之,考慮以上部分分數展開式,可得該級數為
代入後與原
註 1:這一步的定義事實上不夠嚴謹與詳細,詳情請見生成函數之生成方法與限制,其中牽涉到映成函數、光滑函數與完全歸納法等的運算。
Conclusion
費氏數列的神奇之處,在於其遞迴式將無理數的運算表示為有理數的遞迴式,這在數學的運算上事實上並不常見。而透過我們所推導出的一般式,我們也可以發現,費波那契數列可以被表為線性的形式
Bonus : 線性置換法
這裡所謂的線性,是指在透過利用費氏數列的組合下,求得一般項的方法。首先,我們可以十分簡單地推出以下兩個費氏數列的性質:
1.
2.承上,
由上兩點可以證明費氏數列經過線性組合仍為費氏數列。
因此我們可以考慮在
但我們如何定義
此時帶回原式解
解得
References
https://en.wikipedia.org/wiki/Fibonacci_number
https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
https://en.wikipedia.org/wiki/Generating_function
https://en.wikipedia.org/wiki/Laurent_series
http://oz.nthu.edu.tw/~u9721201/penguin2/math/article/FibonacciSequence.pdf
- Title: Fibonacci Sequence's Transformation
- Author: Albert Huang
- Created at : 2021-08-25 14:35:31
- Updated at : 2026-06-26 14:08:16
- Link: https://blog.albert-web.tw/2021/08/25/fibonacci-sequence-trans/
- License: This work is licensed under CC BY-NC-SA 4.0.