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

7. Periodic and preperiodic points in the Mandelbrot set.

Here again is the classical Mandelbrot set ** M**.

Figure 7.1. The classical Mandelbrot set M.

Here is some useful Mathematica code.

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

Thus ** G[1, c, z] = z^2 + c** (also known as

**Periodic points.**

We say that a point ** c** in the Mandelbrot set M

** G[n, c, 0] = 0**,

and ** n** is the smallest positive number for which this
is true. Here is some code which displays the roots of

`Do[Print["n = ",n]; Print[NSolve[G[n, c, 0]==0,
c]],{n,1,4}]`

The output is

`n = 1 {{c -> 0.}} `

`n = 3 `

`{{c -> -1.75488}, {c -> -0.122561 - 0.744862 I}, `

` {c -> -0.122561 + 0.744862 I},{c -> 0.}} `

`n = 4 `

`{{c -> -1.9408}, {c -> -1.3107}, {c -> -1.}, {c ->
-0.15652 - 1.03225 I},`

` {c -> -0.15652 + 1.03225 I}, {c -> 0.}, {c ->
0.282271 - 0.530061 I}, `

` {c -> 0.282271 + 0.530061 I}}`

Note that the number of such roots doubles for each successive value
of ** n**. This happens because

We have already studied these points for ** n < 4**. Here
is what we found:

is the center of the main cardioid.`c = 0`is the center of the period 2 body, the largest circular region attached to the main cardioid.`c = -1``c =`is the center of the cardioid in a miniature copy of`-1.75488`.`M`and`c = -0.122561 - 0.744862 I`are centers of circular regions attached to the main cardioid. Such regions are called`c = -0.122561 +0.744862 I`*buds*.

Note that the 8 roots listed for ** n = 4**
include the two listed for

is the center of the circular region to the left of the period 2 body, which we will call a`c = -1.3107`*secondary bud*.and`c = 0.282271 - 0.530061 I`are centers of buds attached to the main cardioid.`c = 0.282271 + 0.530061 I`- The other three roots of
are centers of cardioids in other miniature`G[4, c, 0]`s. Two of them are shown below.`M`

Figure 7.2. The Mandelbrot set near ** c
= -0.15652 + 1.03225 I **magnified 25 times, and

**Some questions about periodic points.**

Here are some questions (except for the first one) which are suitable topics for the assignment due on March 4.

*Does each such point lie in a black region of*`M`*?**Which lie in buds and which lie in minature*`M`*s?**Why do miniature*`M`*s occur?**Is there a way to predict their size and orientation?*

The first of these questions is easy to answer affirmatively. Here is a more precise formulationof the answer.

**Theorem 7.3. ***Let *`c0`* be a period point
in *`M`*. Then there is a number *`r > 0`*
so that each point *`c `*with *

`|c - c0| < r`

*s also in *`M`*. *

**Proof: **Note that ** z = 0** is automatically a fixed
point of the function

`G[n, c0, z] = G[n, c0, -z]. `

This means that for fixed values of ** n** and

Now if we replace** c0 **by a nearby point

**Preperiodic points.**

A point ** c** in

** {0, -2, 2, 2,...} **and

respectively and their periods are 1 and 2. In these cases the fixed points in question are repelling. To see this, the relevant derivatives are

` D[G[1, -2, z], z]/.z -> 2 = 4, `

` D[G[2,
I, z], z]/.z -> I = -4 - 4 I, `

and** D[G[2, I, z], z]/. z-> I - 1 = 4 + 4
I, **(7.4)

and all of these have absolute value exceeding 1. This means that these
points are not part of a periodic body, and they are not in a black region
of ** M**. There are points arbitrarily close that do not belong
to

Here is some code that will list some preperiodic points ** c0**
with period 1, along with a magnification factor

`Do[p[c0_] := (G[k, c0 ,0] - G[k-1, c0, 0])/ `

` (G[k-1,
c0, 0] - G[k-2, c0, 0]); `

` MPoints = NSolve[p[c0] ==0,c0]; `

` Print["Values of c0 and m for k = ",k,"
are "]; `

` Print[" ", {c0, 2*G[k, c0 ,0]} /.
MPoints], `

` {k, 3, 5}] `

The output is

** **Values of c0 and m for k =
3 are

` {{-2., 4.}, {0., 0.}} `

`Values of c0 and m for k = 4 are `

`{{-1.543689012692076, -1.678573510428321}, {-0.2281554936539618
- 1.115142508039937 I, 2.839286755214160 + 1.212581458414396 I}, {-0.2281554936539618
+ 1.115142508039937 I, 2.839286755214160 - 1.212581458414396 I}, {0., 0.}}
`

`Values of c0 and m for k = 5 are `

`{{-1.892910987907820, -1.927737001786787}, {-1.296355138173036 -
0.4418516057351964 I, 3.511811540280869 + 0.3518190745200629 I}, {-1.296355138173036
+ 0.4418516057351964 I, 3.511811540280869 - 0.3518190745200629 I}, {-0.1010963638456222
- 0.9562865108091413 I, -0.6551723573987147 - 1.155512906597899 I}, {-0.1010963638456222
+ 0.9562865108091413 I, -0.6551723573987147 + 1.155512906597899 I}, {0.,
0.}, {0.3439069959725680 - 0.7006200202350049 I, 2.107229318011193 + 1.265537335108605
I}, {0.3439069959725680 + 0.7006200202350049 I, 2.107229318011193 - 1.265537335108605
I}}`

Here are illustrations of ** M** near
some of these these points.

Figure 7.5. The Mandelbrot set near ** c0
= -2**, magnified 5, 20 and 80 times.

Figure 7.6. The Mandelbrot
set near ** c0 = -0.228155 + 1.11514 I**,
magnified 5, 15 and 45 times.

Figure 7.7. The Mandelbrot set near ** c0
= -0.101096 + 0.956287 I**, magnified 5, 15 and 45
times.

These pictures have three features in common:

- The points in question are not in black regions of
. In each case one can compute a derivative as in (7.4) and see that the relevant fixed point is repelling. We have already seen that the fixed point of`M`(regarded as a function of`G[1, c, z] = z^2 + c`) is repelling whenever`z`is outside the main cardioid.`c` - They exhibit self-similarity, i.e., they look roughly the same at increasing
magnifications. This becomes more precise as the magnification increases.
We will see later that if
is the preperiodic point and we repeatedly magnify the picture by a factor of`c0`the successive images become indistinguishable. This means that we replace a nearby value of`m = 1 + Sqrt[1-4*c0],`by`c`, which entails magnifying the picture centered at`c0 + (c-c0)/m`by a factor of`c0`(which always exceeds 2) and rotating clockwise through the angle`Abs[m]`.`Arg[m]` - There is a sequence of miniature
s of decreasing size converging to the point. Each of them has a periodic point in its main cardioid, and thse can be found by solving suitable equations. We will discuss this more below.`M`

There is a fourth feature not visible in these pictures: For preperiodic
point ** c0**, the Julia set

Now we will discuss a way to locate periodic points ** c**
near a preperiodic point

`c0 = -2;c = -1. `

`Do[Previous = c - c0; c = c/.FindRoot[G[n,c,0]==0,{c, c0}]; `

`Print["The nearest period ",n," point is ",c,"
and |c - c0| = ",`

` Abs[c-c0], "."];
`

`Print["The ratio of the previous distance to this one is
",`

` Previous/(c-c0), "."]'Print[""],{n,
3, 6}]`

The output is

`The nearest period 3 point is -1.754877670117962 and |c - c0| =
0.2451223298820380. `

`The ratio of the previous distance to this one is 4.079595687921363.`

`The nearest period 4 point is -1.940799806561466 and |c - c0| =
0.05920019343853422. `

`The ratio of the previous distance to this one is 4.140566367178194.`

`The nearest period 5 point is -1.985424253056363 and |c - c0| =
0.01457574694363695. `

`The ratio of the previous distance to this one is 4.061554695444141.`

`The nearest period 6 point is -1.996376137711542 and |c - c0| =
0.003623862288458123. `

`The ratio of the previous distance to this one is 4.022158068771044.`

The ratio between successive distances appears to be converging to 4,
which is the value of ** 1 + Sqrt[1-4*c0]**.

**Theorem 7.8.** *Let *`c0`*be a preperiodic
point with period 1. Let *`c[n] `*denote the nearest
periodic point with period* ** n**.

*as* `n`*approaches infinity is* ** m =
2h**, where

We will give an explanation of this which falls short of being a mathematical
proof by replacing the ratio in question by an approximation of it given
by Newton's method. By definition ** c[n] **is
the root of

For simplicity we will denote ** (D[G[n, c, 0], c]/.c -> c0)
**by

Since ** G[n, c, 0] = G[n-1, c, 0]^2 + c**, it follows that
for large

`d[n] = 2*h*d[n - 1] + 1`

and

`d[n+1] = 2*h*d[n] + 1`

` = 2*h*(2*h*d[n - 1] + 1) + 1`

` = 4*h^2*d[n - 1] + 2*h + 1.`

When we substitute all of this into (7.7) we get

`(h/(d[n])/(h/(d[n + 1]))`

`= d[n + 1]/d[n]`

`= (4*h^2*d[n - 1] + 2*h + 1)/(2*h*d[n - 1] + 1)`

`= 2*h + 1/(2*h*d[n - 1] + 1)`

`= 2*h + 1/d[n].`

The limit of this as ** n** approaches infinity is

This argument falls short of being a mathematical proof because we have
not justified replacing ** c[n] **in 7.8
by the approximation for it of (7.9). It is possible
to estimate the error of this approximation and hence that of our estimate
of the ratio in 7.8. Then one can show this error
gets arbitrarily small, but we will not attempt this here.

**Possible homework assignment: **Make a similar
calculation for preperiodic points with periods greater than 1, e.g. for
** c0 = I**.

**Newton's method for finding roots
of polynomials.**

Newton's method (also known as the Newton-Raphson method) will appear twice in this course. In this lecture we are using it as a method for approximating the roots of polynomials. Later on we will use it to construct some interesting fractals having to do with caes where it fails as a numerical method. Here is an online reference from Eric's Treasure Trove of Mathematics.

Now suppose that ** p[x] **is a polynomial (or other function)
whose root we want to find, and we knwo that the number

** r[x] = p[x0] + p'[x0](x - x0)**.

Solving the equation ** r[x] = 0 **gives a new estimate of
the root,

`x1 = x0 - p[x0]/p'[x0].`

Under favorable circumstances, this number is closer to the actual root
that ** x0 **was. We can repeat this process using

`x2 = x1 - p[x1]/p'[x1], `

** x3 = x2 - p[x2]/p'[x2], **etc.

In many cases these converge to the root very quickly.

As an illustration, let ** p[x] = x^2 - 2**, so the root
we are looking for is

` x1 = x0 - p[x0]/p'[x0]`

` =
x0 - ((x0)^2 - 2)/(2*x0)`

`= (x0 + 2/x0)/2.`

Here is a Mathematica program that illustrates how rapidy this converges
to ** Sqrt[2] **using

`x0=1; `

`Do[x0 = (x0 + 2/x0)/2; `

` Print["n = ",n, ": Estimate
= ", InputForm[x0]]; `

` Print[" Error = ", InputForm[N[Sqrt[2]-x0,
20]]], `

` {n, 1, 5}] `

The output is

`n = 1: Estimate = 3/2 `

` Error
= -0.0857864 `

`n = 2: Estimate = 17/12 `

` Error
= -0.0024531`

`n = 3: Estimate = 577/408 `

` Error
= -2.1239014*10^-6 `

`n = 4: Estimate = 665857/470832 `

` Error
= -1.5948618*10^-12 `

`n = 5: Estimate = 886731088897/627013566048 `

` Error
= -8.9929283*10^-25`

Note that the number of digits of precision roughly doubles each time.

*This page was last revised on February 10, 1998.*