ニュートン法によるフラクタル(4) ~3乗以外の冪乗で根による塗り分け~

2011 / 11 / 16 by
Filed under: AS 
Bookmark this on Delicious
[`livedoor` not found]
[`yahoo` not found]

今回は前々回の「根による塗り分け」と、前回の「3乗以外の冪乗」、このふたつの複合技です。
色分けはRGB の組み合わせで簡単にすませたかったので、以下の4パターンをコード化してみました。


z3 - 1 = 0
z4 - 1 = 0
z5 - 1 = 0
z6 - 1 = 0

ニュートン法によるフラクタル(4) ~3乗以外の冪乗で根による塗り分け~ – wonderfl build flash online

ところで根による塗り分けをするには、各根の値を知らなければならないわけです。
前々回、立方根の値はカルダノの公式から求めましたが、4乗以上の冪乗の根はどのように求めるのでしょうか。
4乗根ならば、フェラーリの公式というもので求まるそうです。このフェラーリというのはカルダノの弟子とのこと。

4乗根は分かった。じゃあそれ以上の場合はどうやって求めるの?

ここで登場するのがド・モアブルの定理というもの。
これを使えば、立方根だろうが4乗根だろうがそれ以上だろうが整数乗根なら、いとも簡単に求められるという、何ともステキな定理。

ド・モアブルの定理では複素数を極座標形式で扱います。
極座標ってことは原点 0 を基準とした距離と角度なわけです。1回転、つまり360度の偏角で元の位置に戻りますが、n乗根を求めるには、その360度をnで割った値でもって、実軸1(= 1 + 0i)から始めて順繰りに回していけば良いとのこと。

例えば立方根の場合、360度を3で割った120度を単位として、0度(120*0)、120度(120*1)、240度(120*2)と3回動かす。距離は1です。

極座標形式的に表すと、以下のとおりですね。


(1, 0 * PI / 180)
(1, 120 * PI / 180)
(1, 240 * PI / 180)

4乗根なら 360 / 4 = 90度で4回転すればいい。


(1, 0 * PI / 180)
(1, 90 * PI / 180)
(1, 180 * PI / 180)
(1, 270 * PI / 180)

5乗根以上も以下同文で済んじゃう。
擬似コードで書くとこんな感じ

angle = 360 / n;
for (i = 0; i < n; i++) {
  r = 1;
  t = angle * i * PI / 180;
}

たったこれだけ。すげー簡単。
複素平面と極座標形式の組み合わせのパワフルさは異常とも言える強さですなぁ。

参考記事

  1. ニュートン法によるフラクタル(1)
  2. ニュートン法によるフラクタル(2) ~根による塗り分け~
  3. ニュートン法によるフラクタル(3) ~3乗以外の冪乗~
  4. ニュートン法によるフラクタル(5) ~漸化式を一般化~



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