5

連続化したフィボナッチ数を三項間漸化式で定義する

412
2

はじめに

この記事ではフィボナッチ数を {F[1],n} で表します。

{F[1],n}={0,1,1,2,3,5,8,13,21,34,55,89,144,}(n=0,1,2,3,)

リュカ数を {Ln} で表します。

{Ln}={2,1,3,4,7,11,18,29,47,76,123,199,}(n=0,1,2,3,)

黄金比 φ を次のように定義します。

φ=1+52

フィボナッチ数の「自然数の倍数項」からなる数列の三項間漸化式による定義

2の倍数項の場合

{F[1],n} の2の倍数項からなる数列、つまり次の下線部からなる数列 {F[2],n} を考えます。

  0,1,1,2,3,5,8,13,21,34,55,89,144,

{F[2],n}={0,1,3,8,21,55,144,}(n=0,1,2,3,)

この数列は、次のように三項間漸化式で定義することができます。

フィボナッチ数の「2の倍数項」からなる数列の三項間漸化式による定義

{F[2],0=0F[2],1=1F[2],n+2=3F[2],n+1F[2],n

3の倍数項の場合

{F[1],n} の3の倍数項からなる数列、つまり次の下線部からなる数列 {F[3],n} を考えます。

  0,1,1,2,3,5,8,13,21,34,55,89,144,

{F[3],n}={0,2,8,34,144,610,}(n=0,1,2,3,)

この数列は、次のように三項間漸化式で定義することができます。

フィボナッチ数の「3の倍数項」からなる数列の三項間漸化式による定義

{F[3],0=0F[3],1=2F[3],n+2=4F[3],n+1+F[3],n

kの倍数項の場合

ここまでの例を一般化すると次のようになります。

{F[1],n}k の倍数項からなる数列 {F[k],n} を考えます。

{F[3],n}={F[1],0,F[1],k,F[1],2k,F[1],3k,F[1],4k,}(n=0,1,2,3,)

この数列は、次のように三項間漸化式で定義することができます。

フィボナッチ数の「kの倍数項」からなる数列の三項間漸化式による定義

{F[k],0=0F[k],1=F[1],kF[k],n+2=LkF[k],n+1(1)kF[k],n

フィボナッチ数・リュカ数の連続関数化

上記をさらに一般化して、非整数を含む実数 a に対して「フィボナッチ数の「aの整数倍項」からなる数列」というものを考えたいと思います。

「あれ?項数は整数しかないのでは?」と思われたかもしれません。
そのとおりです。実数の項に当たるものが考えられるようにフィボナッチ数を一般化する必要があります。

そのために、まずはフィボナッチ数の一般項を連続化した関数を考えます。その関数を f(x) とすると、x が整数のときは f(x)=F[1],x となるような関数で、なるべく自然なものを考えたいですね。複素数を使うと、いい感じに連続化することができます。

まずはビネの公式をベースに考えてみましょう。

ビネの公式

{F[1],n=φn(φ)n5Ln=φn+(φ)n

フィボナッチ数を非整数に対しても定義して連続化したいのですが、負の数のべき乗の部分がじゃまで連続化できなさそうに見えます。しかし、

 eiπ=1

を使って次のように書き換えてみるとどうでしょうか。

Fn=φnφneinπ5

負の数のべき乗の部分は複素数平面上での回転に変換されて、連続かつ微分可能ないい感じの式になりました。この記事ではこの関数をフィボナッチ数列を一般化した関数として採用し、「連続化フィボナッチ関数」と呼び、f(x) と表記することにします。

連続化フィボナッチ関数

f(x):=φxφxeixπ5

※連続化したものであることが分かりやすいように変数を n から x に変更しています。

また、リュカ数の方も同様の手法で次のように連続関数化して「連続化リュカ関数」と呼び、l(x) と表記することにします。

連続化リュカ関数

l(x):=φx+φxeixπ

式の形を見ればわかるように

{F[1],n=f(n)Ln=l(n)

ですから、フィボナッチ数・リュカ数を連続化した関数としてふさわしいと思います。

連続化フィボナッチ関数から作る数列の三項間漸化式

連続化フィボナッチ関数を使えば、先ほどの議論を整数以外に拡張することができます。

実数 aの整数倍の場合

ある実数の定数 a に対して次のように定義される数列 {F[a],n} を考えます。

F[a],n=f(an)

{F[a],n}={f(0),f(a),f(2a),f(3a),f(4a),f(5a),f(6a),f(7a),}(n=0,1,2,3,)

a=1 の場合は通常のフィボナッチ数になることに注意してください。

この数列は、次のように f(a),l(a) を用いて三項間漸化式で定義することができます。

連続化フィボナッチ関数の「aの整数倍」に対する値からなる数列の三項間漸化式による定義

{F[a],0=0F[a],1=f(a)F[a],n+2=l(a)F[a],n+1eiaπF[a],n

具体例:フィボナッチ数の間隔を3倍に「補間」した数列の三項間漸化式による定義

たとえば a=13 とすれば、次のようになります。

F[13],n=f(n3)

{F[13],n}={f(03),f(13),f(23),f(33),f(43),f(53),f(63),f(73),}(n=0,1,2,3,)

具体的には次のような感じになります。

{0,,,1,,,1,,,2,,,3,,,5,,,8,,,13,,,}

※ ■の部分には何らかの複素数が入りますが、見やすさのために■で表記しています。

連続化フィボナッチ関数を使って、フィボナッチ数を3倍の間隔に「補間した」数列となっていることがわかります。

先ほどの式を使うと、この数列を三項間漸化式で定義することができます。

フィボナッチ数の間隔を3倍に「補間」した数列の三項間漸化式による定義

{F[13],0=0F[13],1=f(13)=φ13φ13eiπ35F[13],n+2=l(13)F[13],n+1eiπ3F[13],n=(φ13+φ13eiπ3)F[13],n+1eiπ3F[13],n

なぜこの式が成立するか

この式が成立する背景には、三項間漸化式についての次の性質があります。

x の二次方程式 x2=Ax+B0 でない2つの異なる解 α,β を持つとする。このとき、複素数列 {Xn} について次は同値である。(n=0,1,2,3,)

「三項間漸化式 Xn+2=AXn+1+BXnが任意の n について成り立つ」

Xn の一般項は定数C,D を用いてXn=Cαn+Dβn と表現することができる」

証明

の証明

Xn+2=AXn+1+BXn

解と係数の関係より A=α+β,B=αβ であるから、

(Xn+2αXn+1)=β(Xn+1αXn)=βn+1(X1αX0)

同様に

(Xn+2βXn+1)=αn+1(X1βX0)

{(Xn+2αXn+1)=βn+1(X1αX0)(Xn+2βXn+1)=αn+1(X1βX0)

辺々引くと

(αβ)Xn+1=(X1βX0)αn+1(X1αX0)βn+1

両辺を (αβ) で割ると

Xn+1=X1βX0αβαn+1X1αX0αββn+1

{C=X1βX0αβD=X1αX0αβ

として、nを1つずらせば

Xn=Cαn+Dβn

を得る。なお、この式は n=0 のときも成り立っていることが容易に確かめられる。

の証明

{Xn+1=Cαn+1+Dβn+1Xn=Cαn+Dβn

であり、また、解と係数の関係より A=α+β,B=αβ であるから、

AXn+1+BXn=(α+β)(Cαn+1+Dβn+1)αβ(Cαn+Dβn)=Cαn+2+Dαβn+1+Cαn+1β+Dβn+2Cαn+1βDαβn+1=Cαn+2+Dβn+2=Xn+2

Xn+2=AXn+1+BXn

これにより、一般項が Xn=Cαn+Dβn で表現できる数列は三項間漸化式 Xn+2=(α+β)Xn+1αβXn を満たすことがわかります。

前半部の様々な式はこれを使うことで得られます。良ければ試してみてください。

連続化フィボナッチ関数の複素数範囲での立体グラフ化

連続化フィボナッチ関数 f(x) は、非整数の x に対しては f(x) が複素数範囲になるので、グラフ化するには3つの軸が必要になり立体グラフにすることになります。

連続化フィボナッチ関数を複素数範囲で立体グラフ化 連続化フィボナッチ関数を複素数範囲で立体グラフ化

これを見ると、x がマイナスの部分では偏角の回転が強調されて螺旋状になっていることがわかりますね。x がプラスの部分では回転部分の半径が小さくなってほとんどわからなくなっています。

おわりに

今回の記事の肝の部分を再掲します。

x の二次方程式 x2=Ax+B0 でない2つの異なる解 α,β を持つとする。このとき、複素数列 {Xn} について次は同値である。(n=0,1,2,3,)

「三項間漸化式 Xn+2=AXn+1+BXnが任意の n について成り立つ」

Xn の一般項は定数C,D を用いてXn=Cαn+Dβn と表現することができる」

0項、第1項は C,D に依存しますが、 C,D がなんであろうとも、三項間漸化式
については特定できるという性質は面白いと思いませんか?

投稿日:2021425
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

apu_yokai
apu_yokai
486
66092

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. フィボナッチ数の「自然数の倍数項」からなる数列の三項間漸化式による定義
  3. $2$の倍数項の場合
  4. $3$の倍数項の場合
  5. $k$の倍数項の場合
  6. フィボナッチ数・リュカ数の連続関数化
  7. 連続化フィボナッチ関数から作る数列の三項間漸化式
  8. 実数 $a$の整数倍の場合
  9. 具体例:フィボナッチ数の間隔を3倍に「補間」した数列の三項間漸化式による定義
  10. なぜこの式が成立するか
  11. 証明
  12. 連続化フィボナッチ関数の複素数範囲での立体グラフ化
  13. おわりに