[ 0105: フィボナッチ数列と黄金比 ]
[ 三方万理先生の出題 ]
湯会老人からお招きを受けて今回から参加させていただくことになりました
三方万理 (さんぽうばんり) です。
三方は算法、すなわちアルゴリズムの世界の万理に通じ、
青天中学で乗児君や正憲君に数学を教えています。
黄金比は既に出題されているようですので、フィボナッチ数列と関連づけてみましょう。
フィボナッチ数列の各項は前項と前前項の和になります。
すなわち:
f(1) = 1
f(2) = 1 から始まりますと
f(3) = 2
f(4) = 3
f(5) = 5
以下同様に:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,
987,1597,2584,4181,6765,10946 … 急速に増大しますね。
螺旋状に描画しますと:
さて問題です。
一般項を f(n) とあらわします。
f(n) / f(n-1) の収束値を求めてください。
[ 湯会老人の回答 ]
黄金比とおっしゃいましたので、黄金比を Φ と書くことにします。
2次方程式 x^2 - x - 1 = 0 の2つの解を便宜的に
a = (1+sqrt(5)) / 2
b = (1-sqrt(5)) / 2
とあらわすことにします。a はもちろん Φ。
都合のいいことに:
そうしますと:
f(n) = f(n-1) + f(n-2) = (a+b)*f(n-1) - a*b*f(n-2)
手品みたいですが:
f(n) - a*f(n-1) =
b*(f(n-1) - a*f(n-2))
これによって f(n) - a*f(n-1) は公比 b の等比数列であることがわかりました。
すなわち:
f(n) - a*f(n-1) = bn-2*(f(2) - a*f(1))
= bn-2*(1-a))
= bn-2*(b)
= bn-1 ①
また:
f(n) - b*f(n-1) = an-2*(f(2) - b*f(1))
= an-2*(1-b))
= an-2*(a)
= an-1 ②
① の式に b を掛けて:
b*f(n) - a*b*f(n-1) = bn ③
② の式に a を掛けて:
a*f(n) - a*b*f(n-1) = an ④
④ - ③ から
(a - b)*f(n) = an - bn
a - b = sqrt(5) ですから
f(n) = (an-bn) / sqrt(5)
これを ビネの公式 と呼びます。
この一般式が正しいかどうかを確認するには、Wolfram|Alpha
にたとえば次のように入力してみてください。
(a^n-b^n)/sqrt(5); a=(1+sqrt(5))/2; b=(1-sqrt(5))/2; n=6
この場合は f(6) (すなわち n=6) ですから、結果は 8 になるはずです。
n に任意の自然数を指定していろいろ試してください。
f(n) = (an-bn) / sqrt(5)
の計算結果が自然数になるのは不思議なようですが、代数的に証明したとおりです。
|
f(n) / f(n-1) は:
(an-bn) /
(an-1-bn-1)
|b| < 1 ですから n が大きくなるにつれて
bn と bn-1 は限りなく 0 に近づいてゆきます。
収束値は an / an-1 = a
すなわち 黄金比
(1+sqrt(5)) / 2 です。
試しに狼羊さん (Wolfram|Alpha) で上記の式のグラフを描きました。
青色が実数部。(赤の虚数部は無視してください。)
[ 三方万理先生のコメント ]
湯会老人、噂どおりさすがです。
f(n) の一般式はなかなか思いつかないものですが。
そのうち、手妻をご指導ください。
|