畑政義写像(2) -写像の概要-

2010 / 08 / 07 by
Filed under: AS 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

前回からの続き。今回は写像の概要について。

この写像は以下のとても簡単なステップで実現されています。

  1. ある複素数 zn を、f1、f2 の二つの関数を適用し、二つの複素数を算出する
  2. その算出された複素数それぞれに対して、同じく二つの関数を適用して、それぞれが二つの複素数を算出
  3. それを繰り返す

模式図にすると以下のようになります。


zn+1 = f1(zn), f2(zn)

ある値が元となって次の値が計算されるというのはフィボナッチ数なんかと同じですね、フラクタルだから。
で、その二つの関数はそれぞれどのような式かというと、以下のような実に簡素なものです。


f1(z) = a * z + b * z~
f2(z) = c * (z - 1) + d * (z~ - 1) + 1

値はそれぞれ以下のようなものです。
z はひとつ前の写像計算で得られた複素数。
z~ というのは z = x + yi としたときの x – yi。虚数部が逆数。
a、b、c、d は定数で、いずれも複素数です。
このように出てくる値が基本全部、複素数なんですね。

で、この写像は1回の処理につき、一つの複素数から二つの複素数を算出するので、倍々ゲームで複素数は増えていきます。
ちなみに投稿したコードでは、12回写像処理をおこなっており、パーティクルは全部で 8,191 個になってます。
まぁほとんど座標が被っちゃってるんで、とてもそんな大量のパーティクルが描かれているようには見えませんが、とにかくそうなんですよ。


20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 210 + 211 + 212

まぁそれはともかく、上記のとても簡単な数式のうち、複素定数 a、b、c、d の値をいろいろ変えると、複雑なフラクタル図形を何種類も描くことができるというなんともステキな計算式、それが畑政義写像です。

ところでこの写像計算、出てくる値が複素数ばかりだけど、プログラム書くとき、複素数ってどういうふうに扱うの? って話は次回

以下、畑先生の著書。上二冊は翻訳書、下二冊は共著書。



Comments

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





WP-SpamFree by Pole Position Marketing