基於特徵值的斐波那契數列求解

最近在聽Gilbert Strang的線代公開課,再講矩陣的對角化展開的應用時,提到了利用特徵值求斐波那契數列的例子。該方求指定位置的數列值時,其計算量大大縮小。

理論基礎爲,將兩端各自相乘會發現,這意味着求矩陣的冪只需計算其特徵值。接着便需要把斐波那契數列轉換到線代的問題上來。斐波那契數列的簡單表達就是,這個數列第0項爲0,第一項是1,從第三項開始,每一項都等於前兩項之和。代數表達即爲,令, 則斐波那契數列線代表達爲,爲了湊成這個表達式(因爲這樣才能使用開始的那個公式)另外定義了一個等式,這是恆成立的。由此可以知道,數列第n項的值爲

    life is short 就不用c實現了,上Matlab

function value=FS(i)
A=[1,1;
    1,0];
U_0=[1;0];
[V,E]=eig(A);
value=V*(E.^(i-2))*inv(V)*U_0;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章