The Mandelbrot Set (or M-Set) lies at the intersection of art, computer technology and mathematics. It is an object of great beauty and staggering complexity; fundamentally simple but endlessly variable; purely theoretical yet closely related to endless practical applications.
At its core the M-Set is all about iteration: the repetition of an action, usually a large number of times. It is commonly used in mathematics and engineering but also in everyday life. If you have ever tried to get 1 pound of nuts from the bulk bins you probably used iteration. You put some nuts in the bag and weighed them. If there weren't enough you added some, if there were too many you took some away. Repeat as needed. That's an iterative process. The iterative process used in the M-Set is very simple. There are two numbers involved. One is fixed, usually called c. The other, let's call it x, starts at zero and is replaced by the result of a simple computation
x2+c
That's it. Multiply x by itself and add c.
Let's look at a few examples:
c=-1. x starts at 0: 0*0=0, that's easy, 0+c=c. This will happen every time so from now on we'll start at c, instead of zero.
-1*-1= 1, | 1+(-1)=0 |
0*0=0, | 0+(-1)=-1 |
This repeats forever. This is an example of a bounded iteration. The results never get too big.
Let look at c=1.
1*1=1, | 1+1=2 |
2*2=4, | 4+1=5 |
5*5=25, | 25+1=26 |
26*26=676, | 676+1=677 |
This just keeps getting bigger. This is an example of an unbounded or divergent iteration. The results eventually get bigger than any finite number.
These are the two basic kinds of iterations we will consider. But there are some variations. Consider c=0.1.
0.1*0.1=0.01, | 0.01+0.1=0.11 |
0.11*0.11=0.0121, | 0.0121+0.1=0.1121 |
0.1121*0.1121=0.01256641, | 0.01256641+.1=0.11256641 |
The number gets bigger each time, but by a smaller amount. As the number of iterations increases the number slowly approaches, but never quite reaches, a final value. This is called a converging iteration.
All values of c, between 0.25 and -0.75 are converging iterations. The value of zero is special. It starts at zero and stays there.
All values of c, between -0.75 and -1.25 also converge, but a bit differently. We've already looked at one of these, c=-1. It bounced between 0 and -1, an example of a bistable sequence. The rest of the numbers in this range result in similar iterative patterns. They converge to a bistable sequence.
With this background a few pictures should be helpful.
First, here's a graph. The horizontal axis is c, going from -2 to 2. The vertical axis is x, also from -2 to 2. This shows the result of the first iteration. In this case the graph is just x=c
Now let's see what happens after the next iteration:
The value of x increased for all values of c (except c=0). For the largest numbers the result goes off the graph. This is shown by the red line. Notice that the value at c=-1 is now zero, recreating the pattern we saw before.
The next iteration gives
A few more pixels are red and the curve rises more quickly.
Let's look at the combined results of 1000 iterations. At each point along the horizontal axis there is a dot drawn at the result of each iteration. Some converge to a few location, some quickly others more slowly. Some values bounce around, hitting almost every value possible.
No one expected this kind of result from such a simple formula.
To get to the M-Set from here we need add one more idea. Instead of using simple numbers we use points on a plane. These points can be represented by their distance from the point 0,0 and their angle from the x axis. We now call the numbers z and c.
For these two directional numbers multiplying the number by itself is equivalent to computing the length as usual and doubling the angle from the x-axis. Like this:
To complete the process we add c:
As before the number, z, is iterated using this procedure. For some values converges, for others, it diverges. Some of the patterns converge to a few stable points, others bounce around. But because we are working with points on a plane and not a line the results are much more variable.
Let's look at the pattern for c: x=0.36, y=0.19
We start at c:
After the next iteration we get:
Let's watch a video showing the next 150 iterations:
This clearly converges to the center of the spiral:
Let's look at c: x=-1.15, y=0.19
The has a bistable convergence.
One more tidbit: We can show that any point more than 2 units from 0,0 diverges.
There is a lot more detail and information about these iteration patterns but let's move on to the M-Set itself.
The M-Set is the set of points that have bounded iterations for the formula we have been looking at. That's a pretty simple definition. How do we know if the iteration is bounded? We run the iteration process until either the value goes outside of the radius 2 circle or we give up. That's right, after some number of iterations we just give up. So the shape of the set depends on how many iterations we try before giving up. Here's the first approximation of the set, all points inside of the radius 2 circle. That's a maximum iteration count of one.
Not very interesting is it.
Well here's the result for maximum iteration count of 2-10
After 100 iterations it looks like this:
If we zoom in we find more detail. Let's look at the area near the top of the figure.
What's with those black areas scattered around? Let's zoom into the largest one.
And increase the maximum iteration to 500.
This looks like the original set but at an angle. A close examination shows that it isn't. The original set is perfectly symmetric along a line through the middle. This set is slightly distorted as adding this line shows.
The "bulb" to the lower left is larger than the one to the upper right. This is a general condition. There are an infinite number of copies of the full set and all of them are, at least slightly, different.
This self-similarity is a characteristic of the mathematics of fractals. It is what allows these simple equations to be used to model so many complex things in nature. Many naturally occurring things, from a coastline to the turbulent eddies in fluid flow, are self-similar and well modeled by fractals.
There is a point on the M-Set, where the spike sticks out to the left that shows this very well.
Here's that point at the center:
Here's the view when magnified about 20 times:
Now magnified about 100 times:
Now magnified 100 million times:
The edge of the M-Set is infinitely complex so there's a lot to explore! Each area looks a bit different and there have been some remarkable discoveries made as a result of these explorations. One of the most amazing came while looking at the place where the circle meets the bulgy thing (called a cardioid because it looks a little like a heart). Right here:
Let's zoom in some more:
In 1991 Dave Boll wondered if the connection at the center of this image (x=-0.75, y=0) was infinitely thin (it is). So he looked at how many iterations it took to determine that points near it were not in the set. He looked at points where x=-0.75 and y=1, 0.1, 0.01, 0.001
Here is what he found:
y | iteration count |
---|---|
1.0 | 3 |
0.1 | 33 |
0.01 | 315 |
0.001 | 3143 |
0.0001 | 31417 |
0.00001 | 314160 |
0.000001 | 3141593 |
0.0000001 | 31415928 |
Notice anything? Let's another column.
y | iteration count | y*iteration count |
---|---|---|
1.0 | 3 | 3 |
0.1 | 33 | 3.3 |
0.01 | 315 | 3.15 |
0.001 | 3143 | 3.143 |
0.0001 | 31417 | 3.1417 |
0.00001 | 314160 | 3.14160 |
0.000001 | 3141593 | 3.141593 |
0.0000001 | 31415928 | 3.1415928 |
The third column is approaching π, 3.14159265358979 . . After about 10 years this result was proven mathematically.
We've been looking at the M-Set as an either-or proposition. Either a point is not in the set, color it white, or, at the limit of our iteration count, it looks like it is in the set, color it black. There are other options. Let's look at the same spot as above, but this time color the points outside the set according to the iteration count when it was found not to be in the set. We get:
Zoom in some more and we see why this area is called "seahorse valley":
There is an infinite landscape to explore, enjoy your trip!