2004年03月28日

fibonacci数列 (6号 5.1.01)

先週に引き続き数学関係に話を持っていってますが、今日は、具体例に ついて話を続けていくことにします。

フィボナッチ(Fibonacci)数列は、単純な規則で生成される数列です。
F(0) = 0,F(1) = 1 F(n+1) = F(n) + F(n-1)
つまり、一つ前と、もう一つ前の数の和であります。 数列には一般項と言うものがありまして、つまり、計算式で、数列が導 き出されるというものです。(おぼえていますか?高校でやっているは ず。)
一般項は
F(n) = [{(1 + ルート5) / 2}^n -{(1 - ルート5) / 2}^n] / ルート5  ・・・(*1)
これを「ビネ(J.P.M.Binet)の公式」と呼びます。
また次の関係式も面白いでしょう。
F(n) = Π{1 + 4 cos(kπ / n)^2}     
k = 1 から [(n - 1) / 2]

この数列は、イタリーの数学者 Leonardo Fibonacci の直面した次の問 題に由来しています。
『1対のウサギがいる。このウサギは毎月1対の子供を生み、生まれた 子供は2ヶ月後には成長して毎月1対の子供を生む。最初の1対のウサ ギは、1年後に何対になっているか?』
さて、一般的な知識はこれくらいにして、なぜ、この数列を利用しよう としたかということになりますが、これには黄金律が関係しているので す。知っている方もいるでしょうが、黄金律で作曲された音楽というの もこういった数学的法則を利用したもののなかでは比較的メジャーなも のです。その歴史も古く、占星術なども加わり、なんとも、オカルトな 雰囲気もある数列なのです。「天空の音楽」なんてのもありましたよね。 この数列のとなりあった項の分数は黄金律です。
というわけで、実際にexprを使って計算させてみることにします。
私は*1の一般項を使ってみました。 そこで、この式を見ていると、括弧が多いことに気づいた。これは、計 算の順番がめんどくさいということです。ということで、わたしは以下 のような、ブロックで複数のオブジェクトを使うことにした。

{(1 + ルート5) / 2}^n ・・・(a)
{(1 - ルート5) / 2}^n ・・・(b)
(a - b) / ルート5 ・・・(c)
ここで、(c)が一般項の解となるのだが、それではexprにおける書式はと いうと、
(a) pow((1 + sqrt(5) )/ 2?, $i1)
(b) pow((1 - sqrt(5) )/ 2?, $i1)
(c) ($f1 - $f2) / sqrt(5)

とした。(a),(b)の結果を(c)の二つのインレットにつなぐことによって、 一般項を導き出すこととなっている。なぜ、このようなふうに分けたか というと、pow(,)の書式で括弧を使ううえに、さらに、ルートも括弧と、 わかりにくいためなので、本当は一つのオブジェクトでやるべきなのか もしれませんが、もう一つうまくいかなかったので、中途半端ですが、 これで行こうと思います
ところで、これは指数関数を使っているせいか、入力する値が大きくな ると、正しい値が出てこなくなります。Maxの演算能力によるところも あるように思いますが、一般的にも、指数計算とはこういった誤差が出 てくるのだそうです。だから、もちろんこの作ったパッチも、入力する 値に限界があるということになります。次回は、この限界を踏まえたう えで、どうやって、利用していくかを展開していきたいと思います。
ためしに3つの項が導き出されるパッチを作りました。 これはどんなホーモニーになるのかな?と、ためしにノートナンバーで も掃き出させてみようかと思っています。

Posted by com4jai at 2004年03月28日 21:11
Comments
Post a comment









Remember personal info?