Julia Sets
Let us consider complex quadratic polynomials that can be expressed as
$$\phi_c(z)=z^2+c.$$
The filled Julia set gathers $z$ such that the sequence of their iterates by $\phi_c$ is bounded.
Fix some $R>0$ large enough that $R^2-R\geq |c|$, the filled Julia set for this system is the subset of the complex plane given by
$$K(\phi_c)=\{z\in C\; :\; \forall n \in N, \;|\phi_c^n(z)|\leq R\},$$
where $\phi_c^n(z)$ is the nth iterate of $\phi_c(z)$. The Julia set $J(\phi_c)$ of this function is the boundary of $K(\phi_c)$.
In 1982, a deep theorem by Adrien Douady and Hubbard states that Julia sets are path-connected if and only if the sequence of the iterates of $0$ is bounded.
Moreover, $K(\phi_c)$ and $J(\phi_c)$ are either path-connected (there is a path within the set that connects any two given points in the set) or path-disconnected (for any two given points in the set, it is impossible to find a path within the set that connects the pair). The set of complex numbers $c$ that can form a path-connected Julia set is called the Mandelbrot set. It is defined in the complex plane as the complex numbers $c$ for which the function $\phi_c$ does not diverge to infinity when iterated starting at $z=0$.
The set Mandelbrot set is bounded, included in $B(0,2)$. Different components of the Mandelbrot set correspond to different dynamical behaviors of the corresponding filled Julia sets.
From
Aubin, J.-P., Bayen, A., & Saint-Pierre, P. Viability Theory: New Directions. Springer. 2011.
- Obviously, the subset $K_c:=Viab_{\phi_c}(B(0,2))$ is the filled Julia set for the function $\phi_c$ whenever $|c|\leq 2$ (which is true when $c$ belongs to the Mandelbrot set) and its boundary $J_u:=\partial K_c$ is the Julia set.
We can approximate these Julia sets thanks to the Viability Algorithm.
| Dynamics | Constraints | Target | Viability Concept |
|
Discrete Time Continous 2-dimensional space $\phi(x,y):=(x^2-y^2+a,2xy+b)$ Parameters : $a$, $b$ |
B(0,2) | None | Viability Kernel |
Two famous Julia sets :
- Douady Rabbit when $c$ is a complex root of $c^3+2c^2+c+$, $c\approx -0.123 \pm 0.745i $ which implies that the orbit of 0 is periodic with period 3. Douady Rabbit is then connected. See below an approximation obtained by the ViabLab software :
You can see below an approximation of the filled Julia and the Julia set for $c=???$ obtained using the VIABLAB software:.




To compute apporximations of these viability kernels, simply place the .cpp file in ViabLab's /source directory and the .json file in the /INPUT directory.
Then, run ViabLab ; the output files will be placed in the /OUTPUT directory.
To visualize the viability kernel and its boundary, place the .py file in the /OUTPUT directory and run it.
For assistance, consult the training materials.