Parametrized families

The search for groovy pictures

Here’s how to use Mathematica to find complex parameters with pre-prescribed behaviors.

Super-attractive orbits

Let (Subscript[f, c])(z)=(z^2)+c. Suppose we’d like to find a super-attractive parameter value of period n. I guess we just need to solve (Subscript[f, c]^n)(0)=0 for c.

For example, here are all the super-attractive parameters of period 5:

f[c_][z_]=(z^2)+c;
F[c_][z_]=Nest[f[c],z,5];
cs = c/. NSolve[F[c][0]==0,c]

Here’s where they lie in the Mandelbrot set:

MandelbrotSetPlot[Epilog->{Yellow,PointSize[0.012],Point[{Re[#],Im[#]}& /@ cs]}]

And here’s what the corresponding Julia sets look like:

pics = JuliaSetPlot /@ Sort[cs];
GraphicsGrid[Partition[pics,4]]

Periodicity with particular multipliers

Let (Subscript[f, c])(z)=(z^2)+c. Suppose we’d like to find an orbit of period n with a pre-specified multiplier λ.  Note that we’d expect the dynamics and corresponding Julia set to have some properties reflecting those numbers. I guess the system of equations should be:

(Subscript[f, c]^n)(z)=z  and (((Subscript[f, c]^n)))'(z)=λ.

As a concrete example, suppose that we want the period to be 4 and the multiplier to by 15(e^(π i/4))/18. We can set this up in Mathematica as follows.

f[c_][z_]=(z^2)+c;
F[c_][z_]=Nest[f[c],z,4];
eqs = {F[c][z]==z,F[c]'[z]==15*Exp[Pi*I/4]/18}

And solve the system fairly easily:

cs = c/.NSolve[eqs,{c,z}]

Some of the solutions are clearly repeated, so let’s delete duplicates:

cs = Union[cs, SameTest->(Abs[#1-#2]<0.01&)]

Now, let’s generate pictures of the Julia sets:

pics = JuliaSetPlot /@ Sort[cs];

And display them.

GraphicsGrid[Partition[pics,3]]

Here are their positions in the Mandelbrot set:

MandelbrotSetPlot[Epilog->{Yellow,PointSize[0.012],Point[{Re[#],Im[#]}& /@ cs]}]

I guess we can see that they’re not all genuine period 4 points. Here’s a zoom into one of them:

r = 0.005;
MandelbrotSetPlot[cs[[1]]+{-r-r*I,r+r*I},
Epilog->{Yellow,PointSize[0.012],Point[{Re[#],Im[#]}& /@ cs]}]