MATLAB フィボナッチ数列

Ammar Ali 2022年8月18日
MATLAB フィボナッチ数列

このチュートリアルでは、MATLAB で fibonacci() 関数を使用してフィボナッチ数を生成する方法について説明します。

MATLAB フィボナッチ数列

フィボナッチ数列の各数値は、その数値の前の 2つの値の合計です。フィボナッチ数列は、キロメートルからマイルへの変換、タスクの完了に必要な作業の確認、2つのストーリー、データ構造、および配信システムの比較など、多くのアプリケーションで使用されます。

たとえば、34 マイルをキロメートルに変換するとします。その場合、フィボナッチ数列を使用して、34 の隣の値を見つけることができます。これはフィボナッチ数列の 55 であり、実際の値である 34 マイル(キロメートル)にほぼ等しくなります。

キロメートルをマイルに変換する場合は、フィボナッチ数列で以前の値を見つけることができます。

フィボナッチ数列を生成するために使用される式を以下に示します。

Fn = Fn-1 + Fn-2

上記の式で、n は値の数を表し、その値は 1 より大きくなければなりません。たとえば、フィボナッチ数列の 5 番目の値を見つけたい場合は、上記の式に 5 を入れることができます。新しい式を以下に示します。

F5 = F4 + F3

5 番目の値を見つけるには、フィボナッチ数列の 3 番目と 4 番目の値を追加する必要があります。Matlab では、fibonacci() 関数を使用して、フィボナッチ数列から任意の値を見つけることができます。

たとえば、fibonacci() 関数を使用して、フィボナッチ数列の 10 番目の値を見つけましょう。以下のコードを参照してください。

clc
clear

fn = fibonacci(10)

出力:

fn = 55

上記のコードで clc および clear コマンドを使用して、コマンドとワークスペースウィンドウをクリアしました。出力では、fibonacci() 関数がフィボナッチ数列の 10 番目の値である 55 を返したことがわかります。

Matlab の fibonacci() 関数を使用して、特定の値までのフィボナッチ数列を生成することもできます。生成するすべてのフィボナッチ数を含むベクトルを作成する必要があります。次に、fibonacci() 関数内にベクトルを渡してシーケンスを生成できます。

たとえば、Matlab の fibonacci() 関数を使用して、最初の 10 個のフィボナッチ値を生成してみましょう。以下のコードを参照してください。

clc
clear

v = 1:10;
fn = fibonacci(v)

出力:

fn =

     1     1     2     3     5     8    13    21    34    55

上記のコードで、fibonacci() 関数がフィボナッチ数列の最初の 10 個の数値を返したことがわかります。フィボナッチ数が大きい場合、値は double データ型に変換されますが、sym() 関数を使用してシンボリック形式で値を取得できます。

たとえば、sym() 関数がある場合とない場合のフィボナッチ数列の 300 番目の値を見つけて、fibonacci() 関数の出力の違いを確認してみましょう。以下のコードを参照してください。

clc
clear

v = sym(300);
v1 = 300;
fn = fibonacci(v)
fn1 = fibonacci(v1)

出力:

fn =

222232244629420445529739893461909967206666939096499764990979600


fn1 =

   2.2223e+62

sym() 関数を使用して値を定義したため、出力の最初の値はシンボリック形式であり、2 番目の値は double データ型であるため、短い形式に変換されます。出力値のが大きすぎます。このリンクには、fibonacci() 関数の詳細があります。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook