The Mandelbrot sets is named after Benoit Mandelbrot. It is mostly know for the pretty pictures it can produce, while being relatively easy to render.
The Mandelbrot is a subset of the complex numbers. It consists of the complex numbers for which the magnitude of the elements in the sequence
Since every complex number has both a real and an imaginary part, the space of complex numbers is two-dimensional and maps nicely to a computer screen. By convention, the y-axis corresponds to the imaginary part of , and the x-axis to the real part.
Plots of the set are obtained by seeing if the magnitude of the complex iterands is bigger than some predefined escape radius. It can be shown that a radius of 2 is big enough, in the sense that if we have for some , then .
If the magnitude of the iterand is not bigger than the escape radius after some predefined maximum number of iterations, the point is considered to be in the Mandelbrot set. So, plots are merely an approximation.
A plot of the Mandelbrot set from Wikipedia, along with the real and imaginary axes.
This plot doesn’t really do justice to the beauty of the Mandelbrot set. First, it is monochrome. More interesting pictures can be obtained by using a color that is based on the iteration number in which the magnitude of the iterand first exceeded the escape radius.
Plot of the Mandelbrot set using the escape time algorithm. This image was released into the public domain by Michael Bradshad.
It looks even better when you use a smooth coloring scheme, which approximates the iteration count with a continuous function, which gives a much smoother appearance.
Plot of the Mandelbrot set, using the normalized iteration count algorithm. This image was released into the public domain by Michael Bradshad.
Second, the most interesting pictures of the Mandelbrot set can be obtained by zooming in on regions near the border. Sometimes, regions are similar to the whole Mandelbrot set.
Self-similar regions of the Mandelbrot set. This image was released into the public domain by Ishaan Gulrajani.
This pseudocode plots a monochrome plot of the Mandelbrot set.
center_r = -0.5 center_i = 0 scale = 0.005 maxiter = 255 for y = 0 to height for x = 0 to width escape = false n = 0 c_r = center_r + (x - width / 2) * scale c_i = center_i + (y - height / 2) * scale while n < maxiter and not(escape): n = n + 1 z_r_new = z_r * z_r - z_i * z_i + c_r z_i_new = 2 * z_r * z_i + c_i z_r = z_r_new z_i = z_i_new if z_r * z_r + z_i * z_i > 4 then escape = true if escape then plot(x, y, rgb(0, 0, 0)) else plot(x, y, rgb(255, 255, 255))
The Julia set of the map is related to the Mandelbrot set. The formal definition of the Julia set is a bit tricky (by this I mean that I don’t understand it at the time of writing…). For the Mandelbrot set, it can be obtained as the set of complex numbers for which the sequence
is bounded. Since the sequence does not only depend on , but also on , we can obtain Julia sets for various points. The most interesting points lie on the border of the Mandelbrot set.
Points in the Mandelbrot set and their corresponding Julia sets. Image generated by Paul Bourke and obtained from his article about the Julia set. Used with permission.
It is interesting to note that there is some similarity between some regions in the Mandelbrot set, and some of the Julia sets of the mapping .
Top: section of the Mandelbrot set. Bottom: Julia set. This image was released in the public domain by the wikipedia user “Simpsons contributor”.
The wikipedia pages for the Mandelbrot set and the Julia set are excellent and contain much more information than this article. The information on the various algorithms used for coloring is especially useful.
Inigo Quilez’ site has written a lot of useful articles about fractals.
The Buddhabrot is strongly related to the Mandelbrot fractal. The plot is obtained by plotting every iterand . This article by Paul Bourke is a nice introduction, just like this article by Melinda Green.