Maximaでマンデルブロー図形

お盆なので、特にお盆とは関係ないが、ついでに定番のマンデルブロー集合も描いておく。

f(c,z):=c-z^2$
density(x,y):= block([c,z,d,i],
c:x+y*%i,
z:c,
d:0,
for i:0 while (abs(z)<2 and d<40) do (z:f(c,z),d:d+1),
d
)$
plot3d(density,[x,-0.5,1.5],[y,-1.5,1.5],[grid,100,100],
[gnuplot_pm3d,true],[gnuplot_preamble,"set view map;unset surface;set xrange [-0.5:1.5];set yrange [-1.5:1.5];"]);


Maximaではあまりにも遅かったので、ここに貼った画像は、ほぼ同じgnuplotファイルを出力するCのコードを書いて作成した。Cのコードは数千倍速かった。Lispにこんなことさせるもんじゃないな。