Processing math: 100%

2015/9/10

費氏數列 - 矩陣推導篇

Powered by MathJax
此篇數學式使用MathJax表示,請開啟瀏覽器對Java的支援。

  接觸數列時,老師應該都會提到一組特別的數列1, 1, 2, 3, 5, 8, 13, 21, ...,這就是有名的費波那契數列,或簡稱為費氏數列,規則是後項是前兩項之和,數學式表達為
{F1=1,F2=1Fn=F(n1)+F(n2),n=3,4,5,...

或是由第0項開始描述:
{F0=0,F1=1Fn=F(n1)+F(n2),n=2,3,4,...

  了解規則後,不僅會依序算出費氏數列,還想要推導數列的函數Fn=?,開門見山,先給出解答,費氏函數長這樣:
Fn=55[(1+52)n(152)n]

  一個簡單加法,為什麼搞個那麼複雜的函數?又是根號又是n次方的!是怎麼推導出來的呢?接下來,就是本篇的重點,利用矩陣的方式證明費氏函數。首先把聯立的數學式改寫成矩陣形式:
[FnFn1]=[1110][Fn1Fn2],n=2,3,4,...

n=2,則 [F2F1]=[1110][F1F0]=[1110][10]

n=3,則 [F3F2]=[1110][F2F1]=[1110][1110][F1F0]=[1110]2[10]

以此類推,可以寫成
[FnFn1]=[1110]n1[10]

  萬惡的次方出現了!接著就是來好好處理矩陣的(n1)次方,有什麼化簡的方式呢?矩陣「對角化」是個很棒的選擇,但因這當中的證明與計算,是大學課程的線性代數範圍,筆者在此概略說明,計算與證明在此處不提,假設矩陣可以化為下面形式:
[1110]=PDP1
其中PD均為(2×2)維度的矩陣,P1P的反矩陣,D是對角矩陣,也就是D中元素除了左上至右下的對角斜線位置,其餘均為0。對角化求出
P=[λ1λ211]D=[λ100λ2]P1=1λ1λ2[1λ21λ1]

當中的λ1λ2分別為
λ1=1+52λ2=152

不相信的可以自己驗算看看,或者自己找「特徵值」與「特徵向量」的資料參考。最終可得
[FnFn1]=(PDP1)n1[10]=(PDP1)(PDP1)...(PDP1)[10]=PD(P1P)D(P1P)...(P1P)DP1[10]=PDn1P1[10]=[λ1λ211][λ100λ2]n1(1λ1λ2[1λ21λ1])[10]

當然,只需要關心Fn,依上式可表示為
Fn=[λ1λ2][λ100λ2]n1(1λ1λ2[11])[10]×1=[λ1λ2][λn1100λn12](1λ1λ2[11])[10]×1=1λ1λ2(λn1λn2)

代入λ1λ2的數值簡化後,就能得到
Fn=55[(1+52)n(152)n]

得證!完畢!好累!

本篇參考:
費布那西數列(Fibonacci)

沒有留言:

張貼留言