# Mandelbrot and Julia Set

Consider a dynamical system $$z_{n+1}=\frac{\alpha+z_n}{1+z_{n-1}}$$ for $n=0,1,2,\dots$

In other words the system is $$z_{n+1}=f_{\alpha}(z_n,z_{n-1})$$ where $f_{\alpha}$ is defined from $B(z,r)\times B(z,r)$ to $B(z,r)$ as $f_{\alpha}(z,w)=\frac{\alpha+z}{1+w}$. $B(z,r)$ is an open ball in complex plane.

How can we find out the Mandelbrot and Julia sets for this system?

To visualize the Julia set for a given function, $f_\alpha$ in your family, you can iterate starting at each point in your plot, and look for cycles. One easy algorithm for cycle detection is tortoise and hare. Essentially, you keep two independent iterations going, one iterating twice as fast as the other, and if the two sequences meet then you've got a cycle. You can then color your starting point based on how quickly the cycle converged. If you perform this experiment for the right values of $\alpha$ you'll see wonderful fractal patterns appear in the shared boundary of the attracting basins. This boundary, the complement of the set of points on which cycles converge, is the Julia set for $f_\alpha$.

I've written an OpenGL Shading Language based program to help you get started. You should be able to run it in any modern WebKit based browser. The entire program is contained in a single fairly small file so I think you'll have an easy time hacking on it.

The plot in the program runs from -10 to +10 on both the real and imaginary axes. The parameter $\alpha$ is highlighted in yellow, and the brightness of each point indicates how quickly iteration starting at that point converged to a cycle. Brighter indicates faster convergence. You can change the parameter $\alpha$ by dragging in the window, and you'll see different Julia sets if you do that.

The Mandelbrot set is a particular object related to a different family of functions than the one in your question, but the sort of thing your after is known as the bifurcation locus of the family of functions, $f_\alpha$. There are several equivalent ways to define the bifurcation locus, but roughly speaking it is the set of parameters $\alpha$ such that a small perturbation of the parameter leads to an abrupt change in the dynamics. If you run the demonstration program and drag the parameter around with the mouse you'll see that sometimes the Julia set morphs "smoothly" and sometimes it changes abruptly. When the Julia set seems unstable it's a good bet that you have the parameter on (or close to) the bifurcation locus.

To explore the parameter space of a family of functions of one complex variable, you'd normally start by finding the critical point(s) of the family. Then for any given value of the parameter ($\alpha$, in your case) you would iterate starting at the critical points and color the parameter based on the long term behavior of that iteration. For example, the Mandelbrot set is the set of values of the parameter $c$ in the family $z\to z^2 + c$, where the long term behavior of the critical point (0) under iteration, is to remain bounded, as opposed to approaching infinity. The bifurcation locus of the family $z\to z^2 + c$ is the boundary of the Mandelbrot set. Unfortunately I'm not really sure how much these techniques apply to families of functions of two complex variables, like the one you are studying. Maybe someone with more experience in this field can fill in the details. As a last resort I think you could write a program that generates Julia set visualizations for various parameters and detects when a small change in the parameter leads to an abrupt change in the Julia set, just using image comparison. That might be enough to get you some first plots of the bifurcation locus.

Edit: I am seeking some extra help with this on mathoverflow. In the linked question you can see a rendering of the bifurcation locus of $f_\alpha$ generated using the technique I described in the previous paragraph.

• can you please send me the corresponding Mathematica/Matlab code for the Julia set? Thanks a lot. Feb 4, 2015 at 6:09