I first plotted the Mandelbrot set on a Spectrum 48k, sometime in my early teens. Writing the code probably took a few hours (hey…I never said I was fast at these things). I left my Spectrum running overnight, chugging away and number crunching. I woke up in the morning to find a highly-pixelated image of the fractal, plotted in wonderful black and white. I beckoned my sister to witness the mathematical glory I had produced, but she was too busy watching Going Live.
Since those halcyon days, one of the first things I do when I learn a new programming language or maths tool is to plot a fractal (it’s my warped version of “Hello World”). For example, here’s an earlier Maple worksheet and blog I wrote about the Mandebrot set.
In my time, I’ve plotted Mandelbrot Sets, Julia Sets, Quanternion fractals, Koch triangles and more. However, I always drift back to the Mandelbrot set. The deeper you dive into its complex canyons, the more beauty you discover.
I won’t discuss the mathematics or the algorithms in detail, but here’s part of a Mathcad worksheet that generates the Mandelbrot set (the download link is at the bottom of this post)
The first program generates a matrix giving the number of iterations before each point in the set tends to infinity (i.e is greater than a bailout value). The second program colours each point with custom RGB values; this is then plotted in a 2D plot.
A Mathcad routine to generate the Julia set follows the same process (again, the download link is at the bottom of this post).
Here’s a few colourful renderings of the Mandelbrot Set and the Julia Set I’ve generated using these Mathcad worksheets. The colouring algorithm is where much of the artistry comes into play. Just by tweaking a few numbers, you can produce remarkably different pictures.
These pictures were generated entirely inside Mathcad, with no other image editing.
So what are the downsides of using Mathcad for generating fractals? Mathcad’s an interpreted environment, so compiled C code will always be many orders of magnitude faster. However, a Mathcad worksheet is good for developing the initial algorithms – it’s a much more interactive, easy-to-use environment than a text editor and a compiler. Mathcad gives you much faster feedback on your algorithms than a traditional programming language.