2009年3月11日水曜日

カオス #8 マンデルブロ集合2

マンデルブロ集合再び.

今回は
zn+1=znM+C
において,Mが小数(非整数),負数の時を見ていこうと思います.

・M:非整数
Mが非整数の時は,どうやってznM+Cを計算するかというと,zを極形式に変換します.

z=x+yi
=r*e
r=|z|=√(x*x+y*y)
θ=arg(z)=arctan(y, x)

こんな感じ,ということで,
zM
=rM*eiMθ
=rM*(isin(Mθ)+cos(Mθ))
となります.

では,下にMが非整数のときの結果を示します.


Fig.1 M=2.2


Fig.2 M=2.7

かなり半端な図形です.M=2からM=3までの途中段階という感じです.
さらに,Fig.1を拡大すると…


Fig.3 M=2.2 (zoom)

やっぱり半端です.

・M:負数
M=-1とすると,
z1=z0-1+C=0-1+C
となり,マズイので,z0=Cとして計算します.
znMは先程と同様に計算することが出来ます.
ただし,若干不正確な処があります.今までは,「発散した」という条件を
|z|2>4
という閾値で判断していました.しかし,逆数乗を繰り返す場合,発散しない場合でも,4を大きく上回る
値をとりながら振動してしまう場合がありました(正数乗の場合は閾値は4で良いらしいです).ここら辺の扱いはよく分からないので,ここでは不正確ながら閾値を16に設定してみます.


Fig.4 M=-1


Fig.5 M=-2


Fig.6 M=-3

(…参考文献とほとんど同じ配色なってしまいました…)
M>0の時とは全く雰囲気が違います.中央部が発散していて,中心から離れると発散しなくなります.

こんな処です.最後に動画を….
Mが0から-16に変化します.



参考文献
Paul Bourke.“Mandelbrot powers”.<http://local.wasp.uwa.edu.au/~pbourke/fractals/mandelpower/>.Paul Bourke - Personal Pages.(参照2009年3月7日)

0 件のコメント: