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

10. External angles in the Mandelbrot set: the work of Douady and Hubbard.

For more information on material in this section see Chapter 5 and Adrien Douady's article Julia sets and the Mandelbrot set in the book The Beauty of Fractals by H. O. Peitgen and P. H. Richter.

Suppose the Mandelbrot set was an electrically charged metal object that created an electric field around itself. The following picture gives us an idea of what this filed would look like by showing contours of equal electric potential (the curves surrounding M) and lines of force (the curves perpendicular to the countours).

Figure 10.1. The force field created by an electrically charged Mandelbrot set. For details of how this picture was created, see below.

The results of Douady and Hubbard.

In the early 1980s Douady and Hubbard proved some remarkable facts about the force field picture.


Figure 10.3. The force fields for the Julia sets J(0) (the unit disk) and J(-3/4). For details of how these picture were created, see below.

Computing external angles.

Douady and Hubbard found a simple method for computing external angles for values of c outside of M and near the real axis. Call such an angle 2Pi*Ray, where 0 <= Ray < 1. The number Ray can be written as a binary decimal, i.e, as a sequence of zeroes and ones. To find it, consider the sequence

We replace Arg[z] by 0 of 0 <= Arg[z] < Pi, and by 1 otherwise. Here is some code for this.

This produces the sequence {0, 1, 0, 1, 0, 1, 0, ...}, while c = -.75 - .0001*I produces {1, 0, 1, 0, 1, 0, 1, ...}. These are the binary expansions for 1/3 and 2/3 respectively. the point c0 = -.75 is the root of the period 2 bud. There are two rays leading inward to it, one coming from above and one from below. The two values of c we have chosen lie on or very near these two rays.

In particular the two rays leading to -3/4 must have angles which are multiples of 2Pi/3 as we saw above. Similarly, the two rays leading to -5/4, the root of a period 4 bud, must have angles which are multiples of 2Pi/15. Simple experiments with the code above reveal that the two values of the number Ray here are 2/5 and 3/5.

In many cases one can use Theorem 10.4 to determine external angles. Consider the period 3 bud above the main cardioid. The angles of its two rays must be multiples of 2Pi/7. These rays must lie between the for the main cusp (with angle 0) and the upper ray at -3/4 (the root of the period 2 bud) with angle 2Pi/3. Thus the only possible values of Ray here are 1/7 and 2/7. Similarly the the lower period 3 bud we get 5/7 and 6/7, and for the period 3 miniature M with root at -1.75, we get 3/7 and 4/7.

Simlarly one can deduce the following external angles for the points of period 4:

Before proceeding further we need some simple facts about binary arithmetic.

Now consider the doubling map D under which the value of a fraction is doubled and digits to the left of the decimal point are ignored. It follows from the facts above that fractions with odd denominators are periodic under D, and those with even denominators are preperiodic.

A preperiodic point c0 in M may have several rays leading to it. Douady and Hubbard gaev an algorithm for finding their Ray values. Consider the Julia set J(c0). Let z1 and z2 denote the left and right fixed points of the function z^2 + c0. The spine of J(c0) is the path within it from -z2 to z2. Now choose a point z near c0 but not in J(c0). Form a binary expansion by looking at the orbit of z and assigning 0 to each point above the spine and 1 to each point below it. This sequence is the binary epansion of the ray through z. It follows from Lei's theorem that we get the same Ray value for a point near c0 and not in M. Here are some examples. In each case the essentail information about the Julia set can be found in its Hubbard tree.

Figure 10.5. Force field for J(-2).


Figure 10.6. The Julia sets J(c0) for c0 = I and c0 = -.101096 + 0.965286*I.

A theorem of Douady and Hubbard says that the external angles of a bud root or cardioid cusp can be found by applying the method above to the Julia set for the center of the corresponding bud or cardioid. Here are some examples.


Figure 10.7. The Julia sets J(c0) for c0 = -1.75488 ('the airplane') and c0 = -0.15652 + 1.03225 I. These points are the centers of cardioids of periods 3 and 4 respectively.

Devaney's method for finding external angles of primary buds.

In Devaney's paper The Mandebrot set and the Farey tree, another method for computing external angles of primary bud is given. Let I denote the either of the half-open unit intervals, I- = (0, 1] or I+ = [0, 1), and suppose it has been partitioned into two subintervals (both half-open in the same way) which we call I0 and I1. Now consider the sequence {p/q, 2p/q, 3p/q, ...} where we subtract whatever whole number is required from m*p/q to get an answer in the interval I. This sequence will be periodic with period q. Each point lies in either I0 or I1, and we can use this data to define a binary expansion. We get two such expansions by considering two different partitions, namely

I0- = (0, 1 - p/q], I1- = (1 - p/q, 1]


I0+ = [0, 1 - p/q), I1+ = [1 - p/q, 1).

We will illustrate with the case p/q = 2/5. In I- the sequence begins with {2/5, 4/5, 1/5, 3/5, 1} so the binary expansion starts with .01001, which gives a Ray value of 9/31. In I+ the sequence begins with {2/5, 4/5, 1/5, 3/5, 0} so the binary expansion starts with .01010, which gives a Ray value of 10/31.

How the pictures were made.

Figure 10.1 was made with the program GrowMandelbrot in drc95.frm. Here is the code for it.

Using the z-option, the escape criterion p1 was set to 1000 and the magnification to .5. Using the x-option, the Floating Point Algorithm was turned on and the Decomp Option was set to 8. It is amusing to turn on color cycling with this picture; it creates a spinning effect. The curves running around M separating colored regions. Setting the to Decomp Option 0 produces a picture showing countours only.

The escape parameter p1 (set to 1000) determines the test Fractint uses to decide if an orbit is unbounded; instead of checking to see if |z| < 4, it looks for |z| < p1. Giving it a large value means that we are essentially measuring escape time to infinity, which is the reciprocal of the function V defined in (10.2).

The color in the picture is determined by the value of the angle Arg[z] when the escape criterion is met. Since Decomp Option is set to 8 the color cosrrpaonds to which of he 8 forty-five degree interval Arg[z]lies in.

Figure 10.3 was made in a similar way using the program GrowJulia in drc95.frm, in which the parameter p2 is the value of c for the Julia set. Here is code for it.



This page was last revised on March 4, 1998.