Mandelbrot Mania with Maple

Twenty years after I first plotted the Mandelbrot set on a ZX Spectrum with 48K of RAM and a 3.5MHz processor, I’m still amazed by the sheer complexity and beauty contained therein.  I now have access to far more computing horsepower and can create ever more vivid visualizations.  It’s surprising what you can do with some creativity and a modicum of patience.

The Mandelbrot set is generated by iterating a simple formula:

Where c is a point on the complex plane, and Z0=0.  A point c is within the set if |Z| is bounded, and outside the set if it’s unbounded; this is quantified by noting whether |Z| exceeds a bailout value after a specified number of iterations.

A basic plot of the Mandelbrot set can be produced by marking a point black if it’s within the set, or white if it’s outside the set.  It’s a simple enough concept, but zooming into the apparent set boundary reveals infinite layers of complexity.

With a little creativity, however, we can generate remarkably vivid images by coloring each point according to an algorithm. This can be a function of, for example, the number of iterations required for |Z| to exceed the bailout value, the value of |Z| when it exceeds the maximum number of iterations, or a combination of both.  The images can either be in a surreal grayscale, or a delightfully vibrant mix of colors.

The following images, for example, were created with the attached Maple worksheet, with no further image editing.  They’re in pairs, with each element in a pair only differing in the coloring algorithm applied.  In fact, much of the artistry involved in creating beautiful renderings of the Mandelbrot set lies with the coloring algorithm – it’s where geeks like me can externalize their inner artist!

Viewing window: Real axis: from -0.17225 to -0.17115, Imaginary axis: from 0.660347 to 0.66116

Viewing window: Real axis: from -0.17225 to -0.17115, Imaginary Axis: from 0.660347 to 0.66116

Viewing Window: Real axis: from -0.74543162 to -0.74542138, Imaginary axis: from 0.11300388 to 0.11301412

Viewing Window: Real axis: from -0.74543162 to -0.74542138, Imaginary axis: from 0.11300388 to 0.11301412

We can even animate a zoom of the Mandelbrot set by programmatically controlling the zoom level, generating individual frames, writing them to the hard disk, and then wrapping them into an avi with a third-party movie editor.

I’ve attached the worksheet used to generate the images and video featured in this blog.  Why don’t you go crazy and email me your most impressive renderings of the Mandelbrot set. I’ll feature the most vividly surreal submissions in a future blog.

﻿