Glynn Fractal 再び

2012 / 12 / 10 by
Filed under: AS 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

超久しぶりにカオス・フラクタルものの話なぞ。

以前、見た目がとってもキモい Glynn Fractal という Julia 集合の一亜種について、当ブログで取り上げました。

  1. Glynn Fractal(1)
  2. Glynn Fractal(2)

今回はその Glynn Fractal の亜種についてです。ソレはコイツ↓

Glynn Fractal(z^1.75+c) – wonderfl build flash online

若干の解説なぞ。

Julia 集合(およびその特殊例である Mandelbrot 集合)の漸化式は以下のとおりです(z、c ともに複素数)。


zn+1 = zn^2 + c

そして、各種フラクタルはこの漸化式の変奏曲であるわけです。
Glynn Fractal はどのようにアレンジされていたかというと、右辺の z が2乗ではなく、1.5乗という小数による冪乗になっているのでした。


zn+1 = zn^1.5 + c

今回話題にしている冒頭の Glynn Fractal の漸化式は、同じ小数乗ですが、その指数は 1.75 です。


zn+1 = zn^1.75 + c

実は1.5乗の Glynn Fractal を調べた時に参照したウェブページで、この1.75乗の Glynn Fractal の存在も承知していましたんです。しかし1.75乗という冪乗を計算するには、4乗根を求めなければならず、それをプログラムでどう表現するのか分らなかったので、そのときは触れませんでした。

指数が小数の場合の冪乗計算は、以下の流れでおこないます。

  1. 指数を分数に変換する
  2. その分子を指数として基数を冪乗する
  3. 得られた値の分母を指数とした冪根を求める

具体的にみると、指数が 1.5 の場合は以下のようになります。

  1. 指数を 3/2 に変換する
  2. 基数を3乗する
  3. 得られた値の2乗根(つまり平方根)を求める

となると、指数が 1.75 の場合は以下のようになりますね。

  1. 指数を 7/4 に変換する
  2. 基数を7乗する
  3. 得られた値の4乗根を求める

この最後のステップで、ハタと手が止まりました。
平方根は Math.sqrt を使えばいい、でも4乗根ってどうやって求めるのプログラム的に。Math.sqrt は平方根限定だから、Math.pow の第2引数みたいに指数を指定するなんてできないよ?
ちょっとした壁でもすぐに諦めて投げ出してしまう根気の続かぬワタクシですが、今回ネットでザッと調べてみたら、平方根でない冪根を求める際には、当の Math.pow の第2引数がミソなんだということを知りました。
Math.pow の第2引数に冪根の指数の逆数を指定すればよいとのこと。つまり、4乗根を求めたいなら、第2引数を 1/4 にすればよい。つーことは Math.pow で平方根も求められるんですね、第2引数に 1/2 を指定すれば。

そんなわけで4乗根を求める方法を知ったので、無事 Glynn Fractal の亜種もプログラミングすることができました。
1.5乗の Gylnn Fractal に比べると、キモさがマイルドになっているように感じられます。

なお、1.75乗の Glynn Fractal を知ったページのサイトの別ページでは1.6乗のものだの、1.25乗のものだのが紹介されていました。



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