This modest page is devoted to explaining two wonderful, related mathematical notions: the Mandelbrot Set and Julia sets. If you have the Java 2 Plug-in, you can run a really fancy applet that allows you to explore these sets interactively.
Values in the Mandelbrot Set
Of course, in practice we cannot apply the formula an infinite number of times, that would take forever! So, instead, we apply the formula a few hundred or a few thousand times, and if |z| stays small for that many repititions, then we assume that it will stay small forever and we call C a member of the set. Here is an example: let's pick two values of C, C1 and C2
C1 = -0.24148 + 0.66282i C2 = -0.23920 + 0.65070iThe table below shows how the magnitude of the z t values grows as we iterate the formula.
We can see that C2 looks like it is probably a member of the set, but C1 definitely is not!
The amazing thing about the Mandelbrot Set is that the boundary between
numbers that are members and numbers that are not members is a fractal.
No matter how far you zoom in on the boundary, you'll always see more complex
wiggles, as shown in the sequence below.
The computations that go into determining membership in the Mandelbrot Set can be used to draw beautiful pictures. How can this work?
Surprisingly, the colors of the points that are not in the set form fascinating swirls and spirals and branchings, in many respects far more interesting than the Set itself.
- First, select an area of the complex plane. Usually, you start with an area from about -2-1i to about 1+1i.
- Divide up this area into individual pixels, based on the height and width of the image you'd like to produce. Each pixel gets a different complex value C.
- Select a palette of colors, and a maximum number of iterations you are willing to perform.
- For each pixel in the image, apply the Mandelbrot formula to the value C. If the point C appears to be in the set, color it black. Otherwise, select a color from your palette of colors based on how many applications of the formula were needed to pass the magnitude value 2.0 (for C1 above, that would 16).
The infinitely fractal nature of the Mandelbrot Set is evident in the patterns we observe around its boundaries.
A Julia set is a set of points in the complex plane, just like a Mandelbrot set is, but computed with a slightly different approach. Every Julia set is based on a distinct complex seed value Cs. The Julia set for Cs is the set of values z0 for which magnitude of |z| in the Mandelbrot formula stays small. So, you can see that the Mandelbrot Set and Julia sets are related. However, while there is one unique Mandelbrot Set (for a given power k), there are an infinite number (technical, at least Aleph1) different Julia sets. The picture at right shows the Julia set for the point Cs = -0.13196-0.81295i.
Like we did for the Mandelbrot Set, you can use the iteration count of a Julia set computation to make a pretty picture. The pictures for a Julia set don't tend to be as fancy as those for the Mandelbrot Set, but they are still very nice. The picture below is the Julia set for Cs = -0.824-0.1711i, colored by how fast the value of the iteration diverges.
There is another way to compute the boundary of a Julia set, by using the inverse computation to derive values of z that could lead to the value Cs. This creates some eerie, spiky pictures. The picture below is the points view of the Julia set at Cs = -0.81-0.1795i.
If you've been paying careful attention, you may have figured out that the Mandelbrot Set essentially serves as a map or index of all the possible Julia sets. Points that are members of the Mandelbrot Set lead to non-empty Julia sets. Points outside the Mandelbrot set can lead to interesting Julia set pictures, but their actual Julia sets are empty.
|This is an image of the full set, slightly zoomed in, using white for the interior color rather than the traditional black. This image also used a non-linear color mapping to bring out the colors a little more.|
|This is an image of a classic 8-pointed star, zoomed in about 50x, near the point -0.415-0.683i.|
|This beautiful spiral is shown at a zoom level of about 10000x, but it goes down into infinity. Spirals like this appear throughout the edges of the Mandelbrot set. This particular one is near 0.28693186889504513+0.014286693904085048i with a width of about 6.349e-4.|
|Miniature almost-copies of the Mandelbrot Set are spread throughout the borderlands of the big set. Each copy is at least a little different than the full set, and each is joined to the full set by an infinite chain of smaller and smaller additional copies. This specimen was rendered at a zoom level of about 30,000,000x.|
|Whorls and whirlpools appear in many places in the Mandelbrot set, but to find the nicest ones you have to zoom in. This specimen is near 0.3245046418497685+0.04855101129280834i at a zoom of about 72 million.|
|This is a classic curly Julia set, depicted in 'points' mode. This Julia set corresponds to seed point 0.3245+0.04855i.|
|This is a rather blocky-looking Julia set, selected from a bubble off the side of the main Mandelbrot Set, at -0.4961+0.5432i.|
|This beautiful Julia set was selected from an interior Mandelbrot Set point very close to the edge, at 0.300283+0.48857i.|
Neal's Math & Art Pages: [Amazing Spiro Applet] [POV-Ray] [Tiling Backgrounds]
Ziring site pages: [Ziring MicroWeb Home] [Neal's Page] [Sign Guestbook]
This page written by Neal Ziring , last modified 1/7/03.