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

12. Mandelbrot and Julia sets for other functions.

**Polynomials.**

Remember how the classical Mandelbrot and Julia
sets are defined. We start with a quadratic function of the form ** g[z_]
:= z^2 + c**, and we want to see what happens when we iterate it.
For a fixed complex number

What happens if we replace ** f** or

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

where ** a[0],...,a[d]** are constants,
we can define the Julia set

In order to define a Mandelbrot set, we need to
look at a *family* of polynomials, such as ** z^2 + c**
for varying

Here is a simple example. Consider the cubic polynomials
** p[z_] := z^3 + c** for varying

Figure 12.1. The Mandelbrot set for the family
** z^3 + c**, and the Julia set for

Determine which symmetries must hold for this Mandelbrot set and this type of Julia set.

This Mandelbrot set has the following features, some of which require further magnifcation to see.

- There is a main body that has two cusps instead of the one we see on a cardioid.
- The buds themselves are shaped like cardioids.
- There are miniature copies of this Mandelbrot set thoughout.

Look for similar features in the Mandelbrot set
for ** z^d + c** for larger values of the exponent

We can derive an equation for the main body in the same way we did for the classical Mandelbrot set. Here is the code needed to get Mathematica to solve the relevant equations.

`p[z_] := z^3 + c; `

`Solve[{p[z] == z, p'[z] == u}, c, z] `

and here is the output.

`{{c -> -Sqrt[9*u - 6*u^2 + u^3]/(3*Sqrt[3])},
`

` {c -> Sqrt[9*u - 6*u^2 + u^3]/(3*Sqrt[3])}}`

We can simplify this by eplacing ** u**
by

`Factor[c^2/.Solve[{p[z] == z, p'[z] ==
u^2}, c, z]] `

which gives

{(1*u^2*(-3 + u^2)^2)/27, (1*u^2*(-3 + u^2)^2)/27}

The following code will give us a picture of the
corresponding curve for ** |u| = 1**.

`u[t_] := Exp[2Pi*I*t]; `

`z[u_] := u*(u^2-3)/Sqrt[27]; `

`ParametricPlot[{{Re[z[u[t]]], Im[z[u[t]]]},
{t, 0, 1} ,AspectRatio-> Automatic] `

which gives the curve

Figure 12.2. Main body curve for the Mandelbrot
set for the family ** z^3 + c**.

Find an equation for the period 2 body for this Mandelbrot set.

Find a formula for the points where buds are attached to the main body.

Find an equation for the main body of the Mandelbrot
set for ** z^d + c** for larger values of

Here is another example, which can be seen using
the program ** CubeMandel2** in

`p'[z] = 3z^2 - 3p1^2 = 3(z - p1)(z + p1),`

so there are two critical points, ** z = p1**
and

`CubeMandel2(ORIGIN){; Douglas C. Ravenel
`

` ;Mandelbrot
set for f(z)=z^3 -3*p1*p1*z using BOTH critical points `

`z = p1, z2 = - p1, c = pixel: `

`z = z*z*z - 3*p1*p1*z + c `

`z2 = z2*z2*z2 - 3*p1*p1*z2 + c `

`|z| + |z2| <= 20 } `

Note that ** z** and

Now here is an escape criterion exercise. Prove that an orbit under this cubic polynomial is unbounded if it contains a number with absolute value at least 10.

The code above stops iterating if ** |z| +
|z2| > 20. **If this is the case , then at least one of the two
absolute values must exceed 10 , so one of the two orbits must be unbounded.
We are looking for cases where both orbits are bounded.

Find an equation for the main body of this Mandelbrot
set and plot it for various values of ** p1**.

Are there values of ** p1** for which
this Mandelbrot set is empty?

One could consider a more general family of cubic polynomials

`p[z_] := z^3 - 3*p1^2*z + p2.`

Here there are two complex parameters, ** p1**
and

The Mandelbrot set for this family consists of
pairs of complex numbers ** (p1, p2)** for which both critical
orbits of

**Rational functions. **

A rational function ** f[z] = p[z]/q[z]**
is one that can be written as a fraction whose numerator

The Julia-Fatou Theorem (5.7)
does *not* apply to rational functions, but only to polynomials. It
is not true that the Julia set is connected if and only if the critical
orbits (of which there are always a finite number) are all bounded. We
will see an example of this below.

Nevertheless we can look at a one parameter family of rational functions and define its Mandelbrot set to be the ste of rational functions in the family forwhich each critical orbit is bounded.

Here is an example which can be seen using the
programs ** Garland** and

`f[z_] := c*(z^q + z^(-q)) = c*(z^(2q)
+ 1)/z^q`

where ** c** is the pixel coordinate
and the exponent

`f'[z] = q*c*(z^(q-1) - z^(-q-1))`

` = q*c*(z^(2q)
- 1)/z^(q+1).`

This derivative vanishes when ** z^(2q) =
1**, i.e., when

`{1, 2c, f[2c], f[f[2c]], ...}`

Note that if ** w^(2q) = 1**, then
either

` f[w*z]
= c*((w*z)^(2q) - 1)/(w*z)^q`

` =
- c*(z^(2q) - 1)/z^q`

` =
- f[z]`

` f[f[w*z]] = f[-f[z]]`

` =
(-1)^q*f[f[z]]`

`f[f[f[w*z]]] = (-1)^(q^2)*f[f[f[z]]]`

` etc.`

This means that each point (beyond the first)
in the orbit of ** w*z** is the same as the corresponding point
in the orbit of

Figure 12.3. The garland Mandelbrot set for ** q
= 3 **and the corresponding Julia set for

Note the symmetry and the appearance of miniature
Mandelbrot sets in the left picture of Figure 12.3.
The point ** c = 1/2 **is the center
of the leftmost cardioid, so its 6 critical orbit are all bounded; in fact
each of the critical points is an attarcting fixed point. However the Julia
set shown on the right does not appear to be connected. Recall the the
theorem of Julia and Fatou (5.7) does not
apply here.

Every cubic polynomial is equivalent for our purposes
to one of the form ** f[z_] := z^3 - 3a^2*z + b** for constants

looks at a complex line through the origin in parameter space by setting`CubicMandelLine`. Setting`a = p1*pixel, b = p2*pixel`has the same effect as using`p1 = 0`with exponent 3. Setting`manzpower`gives an image that includes 4 copies of the period 2 bud on the classical Mandelbrot set shown below.`p2 =0`

Figure 12.4. ** CubicMandelLine**
with

This should be compared with ** Blanchard**, which gives
the Mandelbrot set for

looks at a complex line in parameter space by setting`CubicMandelSlice`. In particular we can set`a = pixel, b = p1*a + p2`equal a constant`b`by setting`p2`.`p1 = 0`looks at a complex line in parameter space by setting`CubicMandelRoot`and choosing`a = pixel`so that a prescribed number`b`is a root of`r = p1``f.`sets`CubicMandelFixed`and chooses`a = pixel`in such a way that`b`has a fixed point with derivative`f[z]`. It would be interesting to animate this with`u = p1`moving around the unit circle. Setting`u`gives an image that has two types of sets occuring at many different scales: replicas of the quadratic Mandelbrot set and a second larger type. A detail of this image is shown below.`u = 0`

Figure 12.6. Detail of ** CubicMandelFixed
**with

sets`CubicMandel1Orbit`and chooses`a = pixel`in such a way that`b`so only one orbit has to be tested. This image is not connected and has many miniature`f[-a]=a,`s. Some details are shown below.`M`

Figure 12.7. Details of ** CubicMandel1Orbit**
at

gives the Julia set for fixed values of`CubicJulia`and`a`.`b`does it for fixed`CubicJuliaFixed`and`a`with`u`chosen as in`b`, and`CubicMandelFixed`does it for fixed`CubicJulia1Orbit`with`a`chosen as in`b``CubicMandel1Orbit.`

**Distorting the classical Mandelbrot
set.**

The program ** DistortMandel** in

`pixel = r[c_] := a*c/(b*(a-c)).`

Thus raising ** b** from its default
value of 1 has the effect of zooming out by a factor off

Suppose for the moment that ** p2 = 0,**
so

Things get more interesting when the complex number
** a** (which must be nonzero) is close to or inside

- If
is in the interior of`a`, then for`M`suffciently large, all but the central area of the screen will be black as in the left portion of Figure 12.8 below. In that illustration, the period 2 bud (whose center is at -1) has been turned inside out. The large circle in the picture is the edge of this bud. The main cardioid is on the left, the period 4 bud that is normally to the left of the period 2 bud is now on the right, and the main antenna is pointing toward the center. If we choose`b`to be a nonzero point inside the main cardioid, we would see a region shaped like a tear drop corresponding to the exterior of the cardioid.`a` - If
is preperiodic, then the small scale self-similarity associated with it gets converted to large scale self-similarity. In the right half of Figure 12.8, the black body on the right consists of the main cardioid, and the now slightly larger period 2 bud. The black object on the left is the period 3 miniature`a`with cups at`M`. Another example is the right half of Figure 12.9, for which`c = -1.75`and`a = I`. the balck object near the center consists of the main cardiodi with the period 3 and 9 buds attached. The black obect in the upper left is the period 4 miniature`b = 10^1.5 = 31.6`. Further zoomouts will reveal more miniature`M`s clooser to`M`.`c = I` - If
is the root of a bud, then the edge of the bud and the object it is attached to get transformed into parallel lines, as seen in the left half of Figure 12.9. In this case we have set p2 = .68, the approximate value of`a`. The effect of this "zoom out" is a 90 degree rotation. the vsible secondary buds are equally spaced and half roughly the same size.`I*Pi/Log[100]`

Figure 12.8. ** DistortMandel **with

Figure 12.9. ** DistortMandel**
with

**Study topics.**

- Try this for the Feigenbaum points -1.4011524 (period doubling), -1.786440252979 (period tripling) and other points like them. You may want ot use a version of Fractint (19.6 or above) that supports more than 2^15 iterations.
- Try it for the Fibonacci point -.39067+.58681*
(more precisely
where`u/2-u^2/4`. In this case the distortion viewed at a large scale looks just like the original viewed at a small scaleand rotated half a turn. Why is that?`u = Exp[Pi*I*(Sqrt[5]-1)/2])` - Write a variant of the program that allows you
to toggle back and forth between a small scale picture of the area near
in`c`and a large scale picture of`M`inverted at`M`.`c` - Try for other preperiodic points like .437924241359 + .3418920843381*I, the main junction point near the 1/5 bud. Try it for a spiral point in seahorse valley.
- Write a program that distorts Julia sets in a similar way. The formula parser that come with version 19.6 of Fractint supports three (rather than two) complex parameters.
- Try using other functions to distort
.`M` - Find some miniature
's which are distorted and try to match their shapes with this program. Is there a lmiit to how badly distorted they can be?`M`

**Some mathematical background
for distortion.**

A function of the form

`h[z_] := (m*z + n)/(p*z + q)`

(such as the one that occurs in ** DistortMandel
**above) for constants

This function is closely related to the ** 2
x 2** matrix

For example in ** DistortMandel**,

`h[pixel_] := a*b*pixel/(a + b*pixel),`

so the associated matrix is ** M = {{a*b,
0}, {b, a}}**. Its determinant is

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