GNUPLOT

- not so Frequently Asked Questions -

update 2004/11/29

Julia集合 (自己平方フラクタル)

Mandelbrot集合と同様,ある複素数 A を用いて対して漸化式を計算し,n が無限に大きくなっても|z(n)|^2 が発散しないような集合を求めます. Mandelbrot集合と違うのは,漸化式の初期値として,複素平面上の座標(X,Y) を用い,Aを任意の複素定数とするとろこです.

    z(0)   = X + iY
    z(n+1) = z(n)*z(n) + A

この関数はMandelbrot集合のページ で 定義した関数mandelをそのまま用いることができます.任意の複素 定数は予め定義しておき,関数をプロットする際の初期値として(X,Y)座標値 を使います.ここでは複素定数を A = -0.37-0.612 i としています.

gnuplot> set xrange [-0.5:0.5]
gnuplot> set yrange [-0.5:0.5]
gnuplot> set logscale z
gnuplot> set isosample 50
gnuplot> set hidden3d
gnuplot> set contour
gnuplot> a= -0.37
gnuplot> b= -0.612
gnuplot> splot mandel(a,b,complex(x,y),0) notitle
selfsq1

自己平方フラクタルでは,複素定数 A を変化させることで色々な画像を 表示することができます.実際,定数をわずかに変化させただけで,まったく 違った図になったりします.上の図ではA=-0.37 -0.612 i でしたが, この虚部を0.6にしただけで,下の絵のように変化します.

selfsq2


up

ここでもgnuplotとは関係無いオマケのCGをお見せします.下の絵は先ほ どgnuplotで描いた2つの図と同じパラメータで計算した自己平方フラクタルで す.

selfsquared1 selfsquared2
up