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

9. Mandelbrot travelog.

**The west end cosine approximation.**

We saw in Lecture 7 (specifically
Theorem 7.8) that the Mandelbrot set
exhibits self-similarity near a preperiodic point. The simplest example
of this is the point ** c0 = -2**, where the self-similarity
ratio is 4. Recall our definitions

`G[0, c_, z_] := z; G[n_, c_, z_] := G[n-1, c, z]^2 + c.`

Then this self-similarity near ** c0 = -2** means that for
small values of

`H[n_, e_] := G[n, -2 + e/4^n, 0].`

Plotting this function for various values of ** n** reveals
the following properties.

*Self-similarity*. If we restrictto a given interval, the graphs are indistiguishable for large enough values of`e`.`n`- For positive
, the curve oscillates between 2 and -2 with`e`for each`H[n,0] = 2`.`n > 1` - Fix a large value of
, and let`n`,`e[1]`,`e[2]`, etc. be the positive values of`e[3]`with`e`, going from left to right. Then`H[n, e] = 0`is very close to`e[i]`and the value of`(2i-1)^2*e[1]`is roughly 15.`e[1]`

The function ** 2Cos[Sqrt[e*k]] **(for any positive constant

`Print["The linear approximation of 2Cos[Sqrt[e*k] is ",
Normal[Series[2Cos[Sqrt[e*k]],{e,0,1}]]];
`

`Do[Print["The linear approximation of H[",n,",e]
is ", Normal[N[Series[H[n,e],{e,0,1}],12]]],{n,
6, 12}]`

gives us

`The linear approximation of 2Cos[Sqrt[e*k] is 2 - e k `

`The linear approximation of H[6,e] is 2. - 0.166748046875 e `

`The linear approximation of H[7,e] is 2. - 0.166687011719 e `

`The linear approximation of H[8,e] is 2. - 0.16667175293 e `

`The linear approximation of H[9,e] is 2. - 0.166667938232 e `

`The linear approximation of H[10,e] is 2. - 0.166666984558 e `

`The linear approximation of H[11,e] is 2. - 0.16666674614 e `

`The linear approximation of H[12,e] is 2. - 0.166666686535 e `

The limiting coefficient of ** e** in these series is 1/6,
so

Here is an illustration given by the code

`Plot[{H[8,e], 2Cos[Sqrt[e/6]]},{e,0,1000}, `

` PlotStyle -> {RGBColor[0,0,0],
RGBColor[1,0,0]}]`

Figure 9.2. Comparison of ** H[8,e]**
in black with

Why should (9.1) be true? It follows from the
definition of ** H[n, e]** that

which is approximately ** H[n, e]^2 - 2. **On the other it
follows from the double angle formula that

`2Cos[Sqrt[4*e/6]] = 2Cos[2*Sqrt[e/6]]`

` =
2(2Cos[Sqrt[e/6]]^2 - 1) `

` =
(2Cos[Sqrt[e/6]])^2 - 2,`

which approximates the identity of (9.3).

Here is an illustration of some of the curves ** G[n, c, 0]**,
showing the

`n=3;`

`Plot[{G[n,c,0],G[n+1,c,0],G[n+2,c,0],G[n+3,c,0] },{c,-2,-1.3}]`

Figure 9.4. Plots of ** G[n, c, 0]
**for

This diagram has some interesting properties.

*Each point where one of the curves crosses the horizontal axis is a periodic value of*. For example, both`c`and`G[3, c, 0]`cross it at`G[6, c, 0]`the center of the miniature**c = -1.75488**,of period 3 shown in Figure 5.12.`M`also crosses it at`G[6, c, 0]`the center of largest bud in that picture.**c = -1.77289**,*Each point where two or more curves cross each other is a preperiodic value of*and the vertical coordinate is one of the numbers in the periodic part of the orbit. For example all four curves meet at the point`c,`, and`(-1.543689, -0.839287)``c =`is a root of`-1.543689`Note also that`G[4, c, 0] - G[3, c, 0].`and`G[3, c, 0]`meet at`G[5, c, 0]`, and`(-1.83929, 0.543689)``c =`is a root of`- -1.83929`, i.e., a preperiodic point with period 2. Similarly,`G[5, c, 0] - G[3, c, 0]`and`G[4, c, 0]`meet at`G[6, c, 0]`, and hese two intersection points necessarily have the same horizontal coordinate. Is it a coincidence that the sum of their vertical coordinates is precisely -1?`(-1.83929, -1.543689)`

We can use (9.1) to predict the location of periodic
points near ** c = -2**, and use

`Do[Print ["Period = ", n]; `

` Do[c0=-2+(3*Pi^2*(2i-1)^2)/(2*4^n); `

` Print["i = ", i,"
Expected periodic value is ",N[c0] ]; `

` Print[" Actual periodic
value is ", c/.FindRoot[G[n,c,0]==0,{c,c0}]];`

` Print[""], {i,1,n-2}];
`

` Print[""], {n,3,5}] `

Here is its output.

`Period = 3 `

`i = 1 Expected periodic value is -1.76868 `

` Actual periodic value is -1.75488
`

`Period = 4 `

`i = 1 Expected periodic value is -1.94217 `

` Actual periodic value is -1.9408
`

`i = 2 Expected periodic value is -1.47953 `

` Actual periodic value is -1.3107
`

`Period = 5 `

`i = 1 Expected periodic value is -1.98554 `

` Actual periodic value is -1.98542
`

`i = 2 Expected periodic value is -1.86988 `

` Actual periodic value is -1.86078
`

`i = 3 Expected periodic value is -1.63856 `

` Actual periodic value is -1.62541
`

Look for a relation between the sizes of the miniature
** M**s at these points and the values
of

Find a way to use (9.1)
to predict the location of preperiodic points near ** c = -2**.

Recall the the main cardioid of the Mandelbrot set ** M**
has (roughly) circular regions attached to it known as buds or bulbs. Each
of them has a periodic point at its center. We have made some observations
about these:

- The largest bud is precisely circular with radius 1/4 centered at -1, a point of period 2; see Lecture 5.
- The next largest buds are centered at points with period 3 at
and its conjugate; again see Lecture 5.`c = -.122561 + .744862I` - There are buds of period 4 with centers at
and its conjugate; see Lecture 7. There is also a secondary bud of period 4 attached to the period 2 bud, centered at`c = 0.282271 + 0.530061 I`.`c = -1.3107`

In general the center of a period ** n** bud is a root of
the polynomial

We will describe a formula for the point where a bud is attached to
the main cardioid. Recall that the cardioid itself is the set of comlex
numbers of the form ** u/2 - u^2/4** with

`u = Cos[theta] + I*Sin[theta] = Exp[I*theta].`

Now let ** m/n** be a fraction reduced to lowest terms with

Fraction |
Attaching point |

1/2 |
-0.75 |

1/3 |
-0.125 + 0.6495I |

1/4 |
0.25 + 0.5 I |

1/5 |
0.3567 + 0.3285 I |

2/5 |
-0.4817 + 0.5317 I |

We can estimate the radius of a bud by finding the distance from this
attaching point to the periodic point at the center of the bud. Computer
experiments indicate that it is roughly ** Sin[Pi*m/n]/n^2**.

The following pictures were produced with the Fractint program BudViewer described below. In each case the picture has been rotated so that the main cardioid is on the left with the bud on the right, and magnified so that each bud is roughly the same size.

Figure 9.5. The primary buds for 1/3, 1/4, 1/5 and 2/5.

There is a feature of these pictures worth noting. To the right of the
bud for ** p/q** there is a juntion point where

Figure 9.6. The primary buds for 1/7, 2/7 and 3/7. Note the position of the shortest of the seven spokes in each.

For more online information on this topic, see Robert Devaney's The Fractal Geometry of the Mandelbrot Set I , especially Section 3, and II, especially Sections 3, 4, 5, 6 and 7. See also Devaney's recent paper (in postscript format) The Mandebrot set and the Farey tree. (For a picture of Devaney, Mandelbrot and me together, see the Yale photo.)

**Seahorse valley and spiral formations.**

The portion of the Mandelbrot set near ** c = -3/4** is known
as

Figure 9.7. The buds for 7/15 and 10/21.

Note that ** Budviewer **rotates the picture so that the
cardioid always appears on the left, even though the buds in question really
have the cardioid to their right. Note also that the shape in the bottom
center of each picture resembles the tail of a seahorse, hence the name.
The following picture shows the largest minaiture

Figure 9.8. Details of the bud for 10/21.

Figure 9.9. Two successive zooms into the tail of the bud for 10/21.

It is interesting to compare this with the bud for 20/21, which is near the cusp of the main cardioid.

Figure 9.10. Successive zooms of the bud for 20/21.

If we look at similar pictures of secondary buds, we find that their "tails" have spirals with multiple arms.

Figure 9.11. The 1/7 secondary buds attached to the primary buds for 1/3 and 1/4. Note the spirals with 3 and 4 arms respectively.

A project on this topic should address some or all the following questions.

- Why do the spiral formations shown above exist?
- Do similar spiral formations exist on all spokes (other than the one leading to the bud) coming from the main junction point?
- Are the centers of the spirals preperiodic? If so, what are the periods and self-similarity ratios?
- Can you explain the number of arms?
- Can you explain or measure the distortion in
the largets miniature
in the picture?`M` - What happens with tertiary and higher order buds?

**Fractint's formula mode.**

Fractint has a formula mode which enables you to design your own fractals.
To reach it, go to the ** Fractals** menu, select

Once an ** frm** file has been chosen and a fractal image
produced, you can return to

An ** frm **file consists of a collection of small programs
written in simple programming language built into Fractint. It is extensively
documented in An
Introduction to the Fractint Formula Parser in the Fractint
Home Page. We will illustrate it here with three examples of increasing
complexity.

Here is a simple example, ** Dragon** in

`Dragon (ORIGIN) {; Mark Peterson `

` z = Pixel: `

` z = sqr(z) + (-0.74543, 0.2), `

` |z| <= 4 `

` }`

It creates the Julia set ** J(-0.74543 + 0.2*I)** in the
usual way. The three lines of code above mean roughly the following.

- Let
be the complex number correpsonding to a pixel. This is an initialization command, and there could be several of them separated by commas. The colon indicates the end of the initialization sequence.`z` - Replace
by`z`. Note that a complex number is indicated by a pair of coordinates, and`z^2 - 0.74543 + 0.2*I`is synonymous with`sqr(z)`.`z^2` - If
, repeat Step 2. This is an escape criterion.`|z| <= 4`

Fractint automatically does this for each pixel on the screen and colors each one according to the number of iterations.

The next example, ** BudViewer**, is taken from the file

`BudViewer{;Douglas C. Ravenel February
25, 1995 `

` ;
This program shows the p/q bud on the main `

` ;
cardioid of the Mandelbrot set `

`p = p1,q = p2, Pi = 3.14159265, `

`u = exp(2*Pi*p*(0,1)/q), r = u/2 - u*u/4, `

`c0 = r + 1.5*(u - u*u)/(q*q), l = (u - u*u)/(q*q), `

`c = c0+l*pixel, z = 0: `

`z=z*z+c, |z|<4 }`

This program is designed to show pictures of buds on the main cardioid
of the Mandelbrot set. It uses the usual iteration algorithm, but shows
only a certain region of ** M**.

It has several features not visible in the first example.

- There are several lines of comments, each beginning with a semicolon.
- Use is made of the two user defined parameters
and`p1`, which in this case are intended to be whole numbers that specify whcih bud we are looking at.`p2` - The line
is equivalent to the Mathematica line`u = exp(2*Pi*p*(0,1)/q)`. A numerical definition of`u = Exp(2*Pi*p*I/q)`is included because Fractint does not know it.`Pi` - The command
says that`c = c0+l*pixel`is a certain linear function of the pixel coordinate. This causes the program to show the desired region of`c`.`M`

Our third example is ** MandelJuliaZoom** taken from

`MandelJuliaZoom{; Douglas C. Ravenel `

` ;
Shows two zooms (5x and 100x) of Mandelbrot set at c=p1, `

` ;
Julia set for c and zoom (100x)of same at c `

` ;
May have to use floating point algorithm (via x-key)!! `

`u = pixel, x = real(u), y = imag(u), `

`b11 = (-2,-1.5), b21 = (2,-1.5), b22 = (2,1.5), b12 = (-2,1.5),
`

`c11 = 2*u+b11, c21 = 2*u+b21, c12 = 2*u+b12, c22 = 2*u+b22, `

`x1 = ((x/abs(x)) - ((x-2)/abs(x-2)))/2, `

`x2 = (((x+2)/abs(x+2)) - ((x)/abs(x)))/2, `

`y1 = ((y/abs(y)) - ((y-1.5)/abs(y-1.5)))/2, `

`y2 = (((y+1.5)/abs(y+1.5)) - ((y)/abs(y)))/2, `

`c = p1 + c11*x1*y1/100 + c21*x2*y1/5, `

`z = p1+(c11*x1*y1/100)+(c21*x2*y1/5)+(c12*x1*y2/100)+(c22-p1)*x2*y2:
`

`z = z*z + c; |z| <= 4 }`

Note that last line (the only one after the colon) gives the usual iteration
algorithm, but there are complicated rules for determining the initial
values of ** c** and

Given an interval ** [a, b]** on the real line, its

** a <= x <= b**,

and 0 otherwise. Here is a formula for it.

`((x-b)/Abs[x-b] - (x-a)/Abs[x-a])/2.`

The quantities ** x1** and

We denote the pixel by ** u**. Suppose we have four different
functions

`x1*y1*F11[u] + x1*y2*F12[u] + x2*y1*F21[u]
+ x2*y2*F11[u] `

will have the value ** F11[u]** if

*This page was last revised on March 19, 1998.*