HOWTO · MATLAB
MATLAB 斐波那契數列
可以使用 MATLAB 中的 fibonacci() 函式生成斐波那契數。
本頁內容
使用 MATLAB 的 fibonacci() 函式計算單一斐波那契數,或將函式套用至索引向量,一次取得多個數值。若要取得較大的精確結果,請先用 sym() 建立符號索引,再將它傳入函式。這些函式需要 Symbolic Math Toolbox。
在 MATLAB 中計算斐波那契數
斐波那契數列中,從第三項開始,每一項都是前兩項的總和。本文採用 F₁ = 1、F₂ = 1 的定義,因此 n ≥ 3 時,Fₙ = Fₙ₋₁ + Fₙ₋₂。索引 n 表示該數值在數列中的位置,不是要產生的數值個數。
若要計算第十項,輸入 fn = fibonacci(10)。依照上述數列定義,結果為 55。由於本文設定的執行環境無法執行 MATLAB,因此呼叫方式以行內程式碼呈現,尚未在此獨立執行並確認輸出。
使用向量產生斐波那契數列
將索引向量傳給 fibonacci(),即可在一次呼叫中取得對應的數值。若要取得前十項,使用 v = 1:10; fn = fibonacci(v)。結果為列向量 [1 1 2 3 5 8 13 21 34 55]。v 中的各個元素代表數列中的位置,結果向量中相同位置的元素則是對應的數值。
由於本文設定的執行環境沒有可用的 MATLAB 執行環境,因此 MATLAB 運算式以行內程式碼呈現,而非放入可執行的程式碼區塊。列出的數值符合前述遞迴關係及 F₁ = F₂ = 1 的定義。
以符號形式表示較大的斐波那契數
索引很大時,數值結果可能以科學記號顯示,而顯示出的位數經過四捨五入。若要保留精確整數,請先將索引轉成符號形式,再呼叫 fibonacci():fn = fibonacci(sym(300))。作為比較,fibonacci(300) 會傳回以近似值 2.2223e+62 顯示的數值;符號形式的呼叫則代表精確的第 300 個斐波那契數:222232244629420445529739893461909967206666939096499764990979600。
當你需要完整整數,而非浮點近似值時,符號形式的結果會很有用。如需了解此函式的詳細資訊,請參閱 MathWorks fibonacci 文件。本文中的 MATLAB 範例尚未在設定的執行環境中執行。