マンデルブロ集合
マンデルブロ集合(Mandelbrot Set)とは次の漸化式で定義される複素数列{Zn}n∈Nがn→∞の極限で無限大に発散しないという条件を満たす複素数cの集合です。
ここでは、フラクタル図形として描画してGIFアニメーションにします。
必要パッケージのインストール
あらかじめ、GIFアニメーション画像を作成するためのRパッケージをインストールします。
install.packages("caTools")
マンデルブロ集合(R言語ソースコード)
library(caTools)
j.colors = colorRampPalette(c("#000022", "#110066", "#3366AA", "#2200FF", "#55DDFF", "#6622FF", "#0022DD", "#22AAFF", "#00FFFF")) #統計グラフ用のパレットを使用します。色は適当に付けます。
m = 350 #画像のサイズ
C = complex(real=rep(seq(-1.8,0.6, length.out=m), each=m), imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C = matrix(C,m,m)
Z = 0
X = array(0, c(m,m,15)) #15枚の発散を格納する配列
for (k in 1:15) {
Z = Z^2+C #漸化式
X[,,k] = exp(-abs(Z)) #発散を配列に格納する
}
write.gif(X, "mandelbrot_anime.gif", col=j.colors, delay=25)