In complex dynamics, the Julia set and the Fatou set are two complementary sets (Julia "laces" and Fatou "dusts") defined from a function. Informally, the Fatou set of the function consists of values with the property that all nearby values behave similarly under repeated iteration of the function, and the Julia set consists of values such that an arbitrarily small perturbation can cause drastic changes in the sequence of iterated function values. Thus the behavior of the function on the Fatou set is "regular", while on the Julia set its behavior is "chaotic".
The Julia set of a function is commonly denoted and the Fatou set is denoted These sets are named after the French mathematicians Gaston JuliaGaston Julia (1918) "Mémoire sur l'iteration des fonctions rationnelles", Journal de Mathématiques Pures et Appliquées, vol. 8, pages 47–245. and Pierre FatouPierre Fatou (1917) "Sur les substitutions rationnelles", Comptes Rendus de l'Académie des Sciences de Paris, vol. 164, pages 806–808 and vol. 165, pages 992–995. whose work began the study of complex dynamics during the early 20th century.
Formal definition Let be a non-constant meromorphic function from the Riemann sphere onto itself. Such functions are precisely the non-constant complex rational functions, that is, where and are complex polynomials. Assume that p and q have no common roots, and at least one has degree larger than 1. Then there is a finite number of open sets that are left invariant by and are such that: The union of the sets is dense in the plane and behaves in a regular and equal way on each of the sets .
The last statement means that the termini of the sequences of iterations generated by the points of are either precisely the same set, which is then a finite cycle, or they are finite cycles of circular or annular shaped sets that are lying concentrically. In the first case the cycle is attracting, in the second case it is neutral.
These sets are the Fatou domains of , and their union is the Fatou set of . Each of the Fatou domains contains at least one critical point of , that is, a (finite) point z satisfying , or if the degree of the numerator is at least two larger than the degree of the denominator , or if for some c and a rational function satisfying this condition.
The complement of is the Julia set of . If all the critical points are preperiodic, that is they are not periodic but eventually land on a periodic cycle, then is all the sphere. Otherwise, is a nowhere dense set (it is without interior points) and an uncountable set (of the same cardinality as the real numbers). Like , is left invariant by , and on this set the iteration is repelling, meaning that for all w in a neighbourhood of z (within ). This means that behaves chaotically on the Julia set. Although there are points in the Julia set whose sequence of iterations is finite, there are only a countable number of such points (and they make up an infinitesimal part of the Julia set). The sequences generated by points outside this set behave chaotically, a phenomenon called deterministic chaos.
There has been extensive research on the Fatou set and Julia set of iterated rational functions, known as rational maps. For example, it is known that the Fatou set of a rational map has either 0, 1, 2 or infinitely many components.Beardon, Iteration of Rational Functions, Theorem 5.6.2. Each component of the Fatou set of a rational map can be classified into one of four different classes.Beardon, Iteration of Rational Functions, Theorem 7.1.1.
Equivalent descriptions of the Julia set is the smallest closed set containing at least three points which is completely invariant under f. is the closure of the set of repelling periodic points. For all but at most two points the Julia set is the set of limit points of the full backwards orbit (This suggests a simple algorithm for plotting Julia sets, see below.) If f is an entire function, then is the boundary of the set of points which converge to infinity under iteration. If f is a polynomial, then is the boundary of the filled Julia set; that is, those points whose orbits under iterations of f remain bounded.
Properties of the Julia set and Fatou set The Julia set and the Fatou set of f are both completely invariant under iterations of the holomorphic function f:Beardon, Iteration of Rational Functions, Theorem 3.2.4.
Examples For the Julia set is the unit circle and on this the iteration is given by doubling of angles (an operation that is chaotic on the points whose argument is not a rational fraction of ). There are two Fatou domains: the interior and the exterior of the circle, with iteration towards 0 and ∞, respectively.
For the Julia set is the line segment between −2 and 2. There is one Fatou domain: the points not on the line segment iterate towards ∞. (Apart from a shift and scaling of the domain, this iteration is equivalent to on the unit interval, which is commonly used as an example of chaotic system.)
The functions f and g are of the form , where c is a complex number. For such an iteration the Julia set is not in general a simple curve, but is a fractal, and for some values of c it can take surprising shapes. See the pictures below.
For some functions f(z) we can say beforehand that the Julia set is a fractal and not a simple curve. This is because of the following result on the iterations of a rational function:
This means that each point of the Julia set is a point of accumulation for each of the Fatou domains. Therefore, if there are more than two Fatou domains, each point of the Julia set must have points of more than two different open sets infinitely close, and this means that the Julia set cannot be a simple curve. This phenomenon happens, for instance, when f(z) is the Newton iteration for solving the equation :
The image on the right shows the case n = 3.
Quadratic polynomials
A very popular complex dynamical system is given by the family of complex quadratic polynomials, a special case of rational maps. Such quadratic polynomials can be expressed as
where c is a complex parameter. Fix some large enough that (For example, if is in the Mandelbrot set, then so we may simply let ) Then the filled Julia set for this system is the subset of the complex plane given by
where is the nth iterate of The Julia set of this function is the boundary of .
The parameter plane of quadratic polynomials – that is, the plane of possible c values – gives rise to the famous Mandelbrot set. Indeed, the Mandelbrot set is defined as the set of all c such that is connected. For parameters outside the Mandelbrot set, the Julia set is a Cantor space: in this case it is sometimes referred to as Fatou dust.
In many cases, the Julia set of c looks like the Mandelbrot set in sufficiently small neighborhoods of c. This is true, in particular, for so-called Misiurewicz parameters, i.e. parameters c for which the critical point is pre-periodic. For instance: At c = i, the shorter, front toe of the forefoot, the Julia set looks like a branched lightning bolt. At c = −2, the tip of the long spiky tail, the Julia set is a straight line segment.
In other words, the Julia sets are locally similar around Misiurewicz points.Tan Lei, "Similarity between the Mandelbrot set and Julia Sets", Communications in Mathematical Physics 134 (1990), pp. 587–617.
Generalizations The definition of Julia and Fatou sets easily carries over to the case of certain maps whose image contains their domain; most notably transcendental meromorphic functions and Adam Epstein's finite-type maps.
Julia sets are also commonly defined in the study of dynamics in several complex variables.
Pseudocode The below pseudocode implementations hard code the functions for each fractal. Consider implementing complex number operations to allow for more dynamic and reusable code.
Pseudocode for normal Julia sets
R = escape radius # choose R > 0 such that R**2 - R >= sqrt(cx**2 + cy**2)
for each pixel (x, y) on the screen, do: { zx = scaled x coordinate of pixel; # (scale to be between -R and R) # zx represents the real part of z. zy = scaled y coordinate of pixel; # (scale to be between -R and R) # zy represents the imaginary part of z.
iteration = 0; max_iteration = 1000;
while (zx * zx + zy * zy < R**2 AND iteration < max_iteration)
xtemp = zx * zx - zy * zy; zy = 2 * zx * zy + cy; zx = xtemp + cx;
iteration = iteration + 1;
if (iteration == max_iteration) return black; else return iteration; }
Pseudocode for multi-Julia sets
R = escape radius # choose R > 0 such that R**n - R >= sqrt(cx**2 + cy**2)
for each pixel (x, y) on the screen, do: { zx = scaled x coordinate of pixel; # (scale to be between -R and R) zy = scaled y coordinate of pixel; # (scale to be between -R and R)
iteration = 0; max_iteration = 1001;
while (zx * zx + zy * zy < R**2 AND iteration < max_iteration)
xtmp = (zx * zx + zy * zy) ^ (n / 2) * cos(n * atan2(zy, zx)) + cx; zy = (zx * zx + zy * zy) ^ (n / 2) * sin(n * atan2(zy, zx)) + cy; zx = xtmp;
iteration = iteration + 1;
if (iteration == max_iteration) return black; else return iteration;
Another recommended option is to reduce color banding between iterations by using a renormalization formula for the iteration.
Such formula is given to be,
where is the escaping iteration, bounded by some such that and , and is the magnitude of the last iterate before escaping.
This can be implemented, very simply, like so: # simply replace the last 4 lines of code from the last example with these lines of code:
if(iteration == max_iteration) return black; else abs_z = zx * zx + zy * zy; return iteration + 1 - log(log(abs_z))/log(n);
The difference is shown below with a Julia set defined as where .
The potential function and the real iteration number The Julia set for is the unit circle, and on the outer Fatou domain, the potential function φ(z) is defined by φ(z) = log|z|. The equipotential lines for this function are concentric circles. As we have
where is the sequence of iteration generated by z. For the more general iteration , it has been proved that if the Julia set is connected (that is, if c belongs to the (usual) Mandelbrot set), then there exist a biholomorphic map ψ between the outer Fatou domain and the outer of the unit circle such that . This means that the potential function on the outer Fatou domain defined by this correspondence is given by:
This formula has meaning also if the Julia set is not connected, so that we for all c can define the potential function on the Fatou domain containing ∞ by this formula. For a general rational function f(z) such that ∞ is a critical point and a fixed point, that is, such that the degree m of the numerator is at least two larger than the degree n of the denominator, we define the potential function on the Fatou domain containing ∞ by:
where d = m − n is the degree of the rational function.
If N is a very large number (e.g. 10100), and if k is the first iteration number such that , we have that
for some real number , which should be regarded as the real iteration number, and we have that:
where the last number is in the interval [0, 1).
For iteration towards a finite attracting cycle of order r, we have that if is a point of the cycle, then (the r-fold composition), and the number
is the attraction of the cycle. If w is a point very near and w′ is w iterated r times, we have that
Therefore, the number is almost independent of k. We define the potential function on the Fatou domain by:
If ε is a very small number and k is the first iteration number such that , we have that
for some real number , which should be regarded as the real iteration number, and we have that:
If the attraction is ∞, meaning that the cycle is super-attracting, meaning again that one of the points of the cycle is a critical point, we must replace α by