In these notes I will use mathematical notation similar to the syntax of Mathematica.

5. The classical Mandelbrot set , February 2.

The classical Mandelbrot set M, possibly the most famous of all fractals, is defined in the same way as the logistic Mandelbrot set L, but with the function f[x] of (1.2) replaced by

g[z_] := z^2 + c.                                                                     (5.1)

As before this leads to a discrete dynamical system with orbits, fixed points, cycles of various periods, and a bifurcation diagram. In this case g'[z] = 2z, so the critical orbit is that of z = 0. It consists of the numbers

0, c, c^2 + c, c^4 + 2c^3 + c^2 + c, ...                       (5.2)

Figure 5.3. The classical Mandelbrot set M.

The picture above was obtained with Fractint using Fractals/Fractal_Formula/mandel; it is also the default image in Fractint. The interior color was changed from blue to black by typing x and changing the inside color to 0. Each point in the picture represents a value of c = c1 +c2*I, and the region shown is -2.5 < c1 < 1.5 and -1.5 < c2 < 1.5.

M is the black region,which consists of those c for which the orbit of 0 is bounded, i.e., does not go to infinity. Here is a more precise definition: an orbit is bounded if there is a positive real number B such that each point in the orbit has absolute value less than B, i.e., the distance from each point to the origin is less than B. An orbit is unbounded if it is not bounded, i.e., if the numbers in it get arbitrarily large.

By definition the Mandelbrot set M consists the numbers c such that the critical orbit (5.2) is bounded. While boundedness is well defined mathematically, determining it computationally is another matter. It is impossible for a computer to look at all the points in an orbit because there are infinitely many of them. What to do? We get some help from the following mathematical fact about these orbits.

Theorem 5.4 (Escape criterion). If an orbit of the form (5.2) contains a number z with |z| > 2, then it is unbounded.

Now each pixel on the screen correspond to a value of c. Fractint can compute the first few numbers in the associated orbit and see if any of them have absolute value exceeding 2. If it does, then we know that orbit is unbounded, so that point is not in M. It gets colored according to how many iterations were required to reach a sufficiently large number. In Figure 5.3 above, the outer blue region consists of those numbers c with |c| > 2 i.e. those for which just one iteration is needed. The green region consists of those c for which |c| < 2 but |c^2 + c| > 2, i.e., those for which two iterations are needed, and so on.

This is fine for recognizing unbounded orbits, but how do we know a bounded orbit when we see one? We cannot look at all the points in an orbit, so we have to compromise. Fractint gives up after 150 iterations; if none of the first 150 numbers in an orbit are too big, it assumes the orbit is bounded and colors the pixel black. The number 150 can be changed by typing x and then editing the maximum number of iterations. Raising it has no visible effect on Figure 5.3, but it can make a difference in close-ups of M.

Julia sets.

Another fractal associated with (5.1) is the (filled in) Julia set J(c). For a fixed value of c, J(c) is the set of points z with bounded orbits. (Strictly speaking, the set defined by Julia is the boundary of this set.) The orbit of a number z consists of the numbers

z, z^2 + c, (z^2 + c)^2 + c, ...

The escape criterion of 5.4 applies and the image can be computed in a similar way. J(c) itself is shown in black, and the points near it are colored by escape time as in Figure 5.3. Here are two examples of Julia sets.

Figure 5.5. The Julia set for c = -1.


Figure 5.6. The Julia set for c = -1 + .35I.

The point c used in Figure 5.5 is well within the Mandelbrot set M; it is the center of the largest circular region in Figure 5.3. In this case J(c) consists of infinitely many diamond shaped regions of various sizes all attached to each other. On the other hand, the point c used in Figure 5.6 is outside of M; its is above the circular region containing c = -1. In this case J(c) is nearly invisible; it consists of infinitely many isolated points surrounded by haloes of color.

How do we know there are any points at all in Figure 5.6 if we cannot see them in the picture? For a given value of c, consider the fixed point equation

z^2 + c = z.

It will have two solutions, unless c = 1/4, in which case it will have only one, z = 1/2. Let z0 be one of them. The its orbit is {z0, z0, z0, ...}, which is certainly bounded, so z0 is a point in J(c). Next consider the equation

z^2 + c = z0,

and let z1 be a solution Then its orbit is {z1, z0, z0, ...}, which is also bounded. Proceeding in this manner we can produce infinitely many points with bounded orbits, all of which converge to z0 after finitely many iterations. Thus J(c) for any c has infinitely points. If we do this numerically for c = -1 + .35I, we find that the numbers obtained correspond to locations of the colored regions in Figure 5.6.

The theorem of Julia and Fatou: the significance of the critical orbit.

Further experiments of this nature will lead one to the following conclusions about Julia sets:

When c is a point in the Mandelbrot set M, then the Julia set J(c) is connected, i.e., all in one piece.

When c is not in M, then the Julia set J(c) is totally disconnected, i.e., it consists of infinitely many isolated points.

Such computer experiments were not possible before 1980, but the above facts were proved by Julia and Fatou in papers published in 1918-1920. They considered a polynomial function of degree d,

p[z] = a[0]*z^d + a[1]*z^(d-1) + ... + a[d]

where a[0],...,a[d] are constants. One can consider orbits obtained by iterating this function and define J[p] to be the set of values of z having bounded orbits. When p[z] = z^2 + c, then this J[p] is the same as Julia set J(c) considered above. Now the derivative

p'[z] = d*a[0]*z^(d-1) + ... + a[1]

is a polynomial of degree d -1 , and there are at most d-1 values of z for which p'[z]=0. These are called critical points of p, and the corresponding orbits are called critical orbits.

Theorem 5.7 (Julia and Fatou, 1918-1920). For a polynomial function p as above, the set J[p] is connected if and only if each of the critical orbits of p is bounded.

In the case p[z] = g[z] = z^2 + c, there is a just one critical point, z = 0. The Mandelbrot set M is the set of c for which the critical orbit is bounded, so it is also the set of c for which the Julia set J(c) is connected.

The main and period 2 bodies.

Now we will describe the two largest regions in M, the cardioid shaped main body, and the large circular region to its left. This will be a calculation similar to the one we made for the logistic Mandelbrot set L in Lecture 4.

First we want to find the values of c for which g[z] has an attracting fixed point. Let

u = g'[z] = 2z.                                     (5.8)

Then we need to determine when |u| < 1 if z is a fixed point, i.e., if z satisfies the fixed point equation

g[z] = z.                                                                           (5.9)

Now (5.8) implies that z = u/2, and substituting this into (5.9) gives

(u^2)/4 + c = u/2

c = u/2 - (u^2)/4.

For |u| < 1, this defines the cardioid shaped region r main body of M.

Next we do a similar computation with the function

g2[z] = g[g[z]] = z^4 + 2c*z^2 + c^2 + c.

The derivative is

u = g2'[z] = 4z^3 + 4c*z = 4z*(z^2 + c)                        (5.10)

The fixed point equation for g2 is

0 = g2[z] - z = (g[z]- z)(z^2 + z + c + 1).

Note that g2[z] - z must be divisible by g[z]- z because when g[z] = z, it follows that

g[g[z]] = g[z] = z.

We have already considered the case g[z] = z, so we want to assume instead that

z^2 + z + c + 1 = 0.                                 (5.11)

If we multiply this by z and use (5.10) we get

0 = z^3 + z^2 + c*z + z = u/4 + z^2 + z.

Combining this with (5.11) gives

u/4 = c + 1.

For |u| < 1, this describes a circular region with radius 1/4 centered at -1.

These calculations can be done with Mathematica using the following code. For the main body,

g[z_] := z^2 + c; Solve[{g[z]==z, u==g'[z]}, c, z],

which gives

{{c -> ((2 - u)*u)/4}}.

For the period 2 body, use

g2[z_] := g[g[z]]; Solve [{g2[z]==z, u==g2'[z]}, c, z] ,

which gives

{{c -> (-4 + u)/4}}.

Mathematica cannot handle a similar computation for the function

g3[z_] := g[g[g[z]]]

to describe the period 3 body. However, as in the case of the logistic Mandelbrot set, we can solve for those values of c for which the critical point is fixed by g3. The code



{c -> -1.75488}, {c -> -0.122561 - 0.744862 I}, {c -> -0.122561 + 0.744862 I}}.

Figure 5.12 is a picture of the area of M near c = -1.75488, magnified 20 times. The cardioid in this picture is part of the period 3 body. Figure 5.13 is a picture of the area of M near c = -0.122561 + 0.744862 I, magnified 20 times. The circular region (which is attached to the main cardioid) in this picture is also part of the period 3 body.


Figure 5.12. The Mandelbrot set near c = -1.75488, magnified 20 times.


Figure 5.13. The Mandelbrot set near c = -.122561 + .744862I, magnified 3 times.


This page was last revised on February 3, 1998.