FRTM Sample -- 自己平方フラクタル


[Up]

結果

fractal.png(8.4KB)

ワード定義

下記の自己平方フラクタルを表示するワードは,次の複素関数の漸化式の発散・ 収束を判定し,その結果を図示しています.
  f(z) = z^2 + A
  z_{n+1} = f(z_n)
ここで,A = -0.350 - 0.630i とし,漸化式の初期値を実部 -1 〜 1,虚部 -1 〜 1 の範囲で変化させています.50 回の繰り返しの間に絶対値 が 2 を越したものは発散したものと判定します.

なお,下記のワードは整数が 32bit 以上で表現されていることを仮定したものです.

: dot dup 50 > if drop 0 else 15 % 1+ endif setcolor 2 ndrop 
    over 340 - minus over 220 + swap 1 1 rectf ;
: check 50 > if drop drop 1 else dup * swap dup * + 4000000 > endif ;
: nextr dup * 1000 / swap dup * 1000 / - 350 - ;
: nexti * 500 / 630 - ;
: next 1+ rotr 2 copy nextr 4 nrotr 2 copy nexti 5 nrotr drop drop ;
: fpoint do 3 copy check if dot 0 else next 1 endif while ;
: fract 201 0 for I 201 0 for I 
    over 100 - 10 * over 100 - 10 *  0 fpoint drop loop drop loop ;

gm fract
tm

naniwa@rbt.his.fukui-u.ac.jp