Mandalia is a Java applet for exploring the Mandelbrot set and Julia sets. The link below will start up the applet. This is quite experimental at this stage so good luck! If you don't know what the Mandelbrot set is you may want to read the explanation below before using the program.
Dynamical systems are mathematical models of physical systems which change in time according to a known law. One of the big surprises of 20th century mathematics was that even very simple laws of motion can lead to unbelievably complicated behavior.
Here we are going to look at a dynamical system whose state is characterized by a complex number z. A complex number can be broken up into real and imaginary parts, z = x + i y, so it can be thought of as a point in a plane, called the complex z-plane. A dynamical system in the complex z-plane is just a rule telling how the state changes from one time step to the next. As time goes on the point representing the state will hop around in the plane.
The dynamical rule which generates Julia sets is represented by the formula
This means that if the current state is represented by the complex number z, then the state at the next time step is obtained by squaring the current number and adding a certain contant, c. This constant is also a complex number, c = a + i b. Any complex number can be chosen for c, but once a choice is made, c is kept fixed as the hopping z-point moves. It turns out that different choices for c produce different kinds of dynamical behavior in the z-plane.
Thus there are two complex planes in the Mandalia program, the c-plane where you can choose the value of the parameter c, and the z-plane where you can view the dynamical behavior for the chosen value of c.
Once the value of c is chosen the dynamics in the z-plane unfolds according to the rule above. Given some point z0 representing the initial state of the system, the subsequent states will be
where each point is generated by applying the formula f(z) to the previous point. The sequence of points z0, z1, z2, z3, ... is called the orbit of z0. The process of generating a sequence by applying a fixed rule over and over again is called iteration.
Suppose, for example, that we choose the complex number c = 0 + 1 i = i and that the chosen initial point is z0 = 1 + 0 i = 1. Then
and the orbit is the sequence of points 1, 1+i, 3 i, -9 + i,.... In this case the points are getting larger and larger and the orbit tends to infinity as time goes on. The Mandalia program has an iteration command which allows you to view the orbit of a point in the z-plane (chosen with the mouse). A colored dot representing the current state will be seen hopping around in the plane. In this case the dot would soon hop off the screen and disappear.
This is one possible behavior for orbits. We can roughly classify orbits as being either bounded or unbounded. If an initial point z0 leads to a bounded orbit, that is, one which does not tend to infinity, then z0 is a point of the Julia set of the system. Such points are colored black in the pictures produced by the program.
It can be proved that if a point of the orbit ever leaves a circle of radius 2 in the z-plane then the orbit will be unbounded, that is, it will tend to infinity. For the orbit above, z0 is inside this circle but z1 is already outside of it. For points like this where the orbit is unbounded, the point z0 is drawn in a color which indicates how many interations it took to leave the circle of radius 2. So the orbit above would receive the color indicating that one iteration was necessary to make it leave the circle. Any radius larger than 2 would work as well and the Mandalia program uses this freedom to choose the "escape radius" to get a nicer picture.
This simple coloring scheme leads to pictures of incredible variety and beauty as you will see. To summarize, the Julia set is the set of initial points whose orbits will remain bounded and this set is drawn in black. The rest of the points lead to unbounded orbits and are colored according to how long it takes to escape from a certain circle.
For theoretical reasons, special importance is attached to the initial state z0 = 0 + 0i. This is the critical point of the function f(z) and its orbit is called the critical orbit. Using the same c-value as above, c = i, but setting z0 = 0, we find that the critical orbit begins
Clearly it gets stuck in a periodic cycle and the rest of the orbit consists of the two points -1 +i and - i repeated over and over. In particular, this orbit is bounded so z0=0 is part of the Julia set when c = i.
It can be shown that the behavior of the critical orbit can be used to predict a fundamental property of the entire Julia set --- its connectedness. If the critical orbit is bounded, as is the case when c = i, then the Julia set consists of one connected "piece". In other words the black dots form a connected set in the z-plane. The shape of this set may be very complicated but at least we can say that it has just one piece. On the other hand, if the critical orbit is unbounded, then the Julia set breaks up into infinitely many pieces. Technically, it forms a "Cantor set" in the z-plane. Again, the exact pattern of the points may be very complicated and interesting, but at least we can say something about its connectivity. For the value c = i considered above, the critical orbit remains bounded because it gets trapped in a repeating cycle. So the Julia set of the dynamical system f(z) = z^2 + i is connected.
It is remarkable that we can tell something about the whole Julia set by looking at just one orbit. This fact is not at all obvious and is one of the many nice theorems in this subject. It is this property which underlies the computation of the Mandelbrot set. Recall that the dynamics all takes place in the z-plane. The choice of c is made once to determine the dynamical law f(z) and then it is kept fixed while the iterations take place. But this initial choice of c has a strong influence on the dynamical behavior. In particular, certain values of c lead to connected Julia sets and other values of c lead to Cantor-type Julia sets. We can tell the difference just by looking at one orbit -- the critical orbit.
The Mandelbrot set is the set of c-values which lead to connected Julia sets. We can tell that a certain c value is in the Mandelbrot set by testing if the critical orbit remains bounded when that value of c is used in the dynamical law. For example, by the computations above, the point c = i is in the Mandelbrot set. Testing all possible value of c in this way, we produce a picture. In the c-plane points in the Mandelbrot set will be colored black. In other words a point gets colored black if the critical orbit for that value of c remains bounded (at least for some large number of interations, called maxiterations in the Mandalia program). If the critical orbit is unbounded the corresponding c-value receives a color according to how many iterations it takes for the critical orbit to leave the circle of radius 2 in the z-plane.
If you choose a c-value in the Mandelbrot set, the dynamical system in the z-plane will typicallly have an attracting cycle. This means that most of the bounded orbits will eventually approach a repeating cycle. In particular, the critical orbit will approach this cycle (this can be viewed as the reason that it remains bounded). You can observe this phenomenon using the Iterate command. Eventually the hopping dots will seem to get stuck in a repeating cycle. Choosing c-values from the various "bulbs" making up the Mandelbrot set will lead to different kinds of cycles.
There is only one Mandelbrot set. It lives in the c-plane where no actual dynamics takes place. You can select a c-value in the c-plane and then look at the resulting dynamics in the z-plane. The z-dynamics is nicely represented by the Julia set which consists of all initial states leading to bounded orbits. There are infinitely many different Julia sets, one for each choice of c. You can also watch the dynamics unfold in the z-plane by using the Iterate command.
If you choose a c-value in the Mandelbrot set (black region in c-plane), the Julia set will be connected. If you chose a c-value outside the Mandelbrot set (colored region in the c-plane), the Julia set will be a Cantor set.
Well, that should be enough information to get you started. Have fun !