Recent from talks
Nothing was collected or created yet.
Julia set
View on WikipediaThis article needs additional citations for verification. (July 2021) |

and the parameters
cre = cim = -0.5251993
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 f is commonly denoted and the Fatou set is denoted [a] These sets are named after the French mathematicians Gaston Julia[1] and Pierre Fatou[2] whose work began the study of complex dynamics during the early 20th century.
Formal definition
[edit]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.[3] Each component of the Fatou set of a rational map can be classified into one of four different classes.[4]
Equivalent descriptions of the Julia set
[edit]- 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
[edit]The Julia set and the Fatou set of f are both completely invariant under iterations of the holomorphic function f:[5]
Examples
[edit]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:
Theorem—Each of the Fatou domains has the same boundary, which consequently is the Julia set.[citation needed]
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
[edit]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 c 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 .
-
Julia sets for where a ranges from 0 to
-
A video of the Julia sets as left
-
Filled Julia set for fc, c = 1 − φ, where φ is the golden ratio
-
Julia set for fc, c = (φ − 2) + (φ − 1)i = −0.4 + 0.6i
-
Julia set for fc, c = 0.285 + 0i
-
Julia set for fc, c = 0.285 + 0.01i
-
Julia set for fc, c = 0.45 + 0.1428i
-
Julia set for fc, c = −0.70176 − 0.3842i
-
Julia set for fc, c = −0.835 − 0.2321i
-
Julia set for fc, c = −0.8 + 0.156i
-
Julia set for fc, vc = −0.7269 + 0.1889i
-
Julia set for fc, c = -0.8i
-
Julia set for fc, c = 0.35 + 0.35i
-
Julia set for fc, c = 0.4 + 0.4i
-
Collection of Julia sets laid out in a 100 × 100 grid such that the center of each image corresponds to the same position in the complex plane as the value of the set. When laid out like this, the overall image resembles a Photographic mosaic depicting a Mandelbrot set.
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.[6]
Generalizations
[edit]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
[edit]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
[edit]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
[edit]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. [7]
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
[edit]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 .[8] 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.[9]
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
where w′ is w iterated r times and the formula for φ(z) by:
And now the real iteration number is given by:
For the colouring we must have a cyclic scale of colours (constructed mathematically, for instance) and containing H colours numbered from 0 to H−1 (H = 500, for instance). We multiply the real number by a fixed real number determining the density of the colours in the picture, and take the integral part of this number modulo H.
The definition of the potential function and our way of colouring presuppose that the cycle is attracting, that is, not neutral. If the cycle is neutral, we cannot colour the Fatou domain in a natural way. As the terminus of the iteration is a revolving movement, we can, for instance, colour by the minimum distance from the cycle left fixed by the iteration.
Field lines
[edit]

In each Fatou domain (that is not neutral) there are two systems of lines orthogonal to each other: the equipotential lines (for the potential function or the real iteration number) and the field lines.
If we colour the Fatou domain according to the iteration number (and not the real iteration number , as defined in the previous section), the bands of iteration show the course of the equipotential lines. If the iteration is towards ∞ (as is the case with the outer Fatou domain for the usual iteration ), we can easily show the course of the field lines, namely by altering the colour according as the last point in the sequence of iteration is above or below the x-axis (first picture), but in this case (more precisely: when the Fatou domain is super-attracting) we cannot draw the field lines coherently - at least not by the method we describe here. In this case a field line is also called an external ray.
Let z be a point in the attracting Fatou domain. If we iterate z a large number of times, the terminus of the sequence of iteration is a finite cycle C, and the Fatou domain is (by definition) the set of points whose sequence of iteration converges towards C. The field lines issue from the points of C and from the (infinite number of) points that iterate into a point of C. And they end on the Julia set in points that are non-chaotic (that is, generating a finite cycle). Let r be the order of the cycle C (its number of points) and let be a point in C. We have (the r-fold composition), and we define the complex number α by
If the points of C are , α is the product of the r numbers . The real number 1/|α| is the attraction of the cycle, and our assumption that the cycle is neither neutral nor super-attracting, means that 1 < 1/|α| < ∞. The point is a fixed point for , and near this point the map has (in connection with field lines) character of a rotation with the argument β of α (that is, ).
In order to colour the Fatou domain, we have chosen a small number ε and set the sequences of iteration to stop when , and we colour the point z according to the number k (or the real iteration number, if we prefer a smooth colouring). If we choose a direction from given by an angle θ, the field line issuing from in this direction consists of the points z such that the argument ψ of the number satisfies the condition that
For if we pass an iteration band in the direction of the field lines (and away from the cycle), the iteration number k is increased by 1 and the number ψ is increased by β, therefore the number is constant along the field line.

A colouring of the field lines of the Fatou domain means that we colour the spaces between pairs of field lines: we choose a number of regularly situated directions issuing from , and in each of these directions we choose two directions around this direction. As it can happen that the two field lines of a pair do not end in the same point of the Julia set, our coloured field lines can ramify (endlessly) in their way towards the Julia set. We can colour on the basis of the distance to the center line of the field line, and we can mix this colouring with the usual colouring. Such pictures can be very decorative (second picture).
A coloured field line (the domain between two field lines) is divided up by the iteration bands, and such a part can be put into a one-to-one correspondence with the unit square: the one coordinate is (calculated from) the distance from one of the bounding field lines, the other is (calculated from) the distance from the inner of the bounding iteration bands (this number is the non-integral part of the real iteration number). Therefore, we can put pictures into the field lines (third picture).
Plotting the Julia set
[edit]Methods :
- Distance Estimation Method for Julia set (DEM/J)
- Inverse Iteration Method (IIM)
Using backwards (inverse) iteration (IIM)
[edit]

As mentioned above, the Julia set can be found as the set of limit points of the set of pre-images of (essentially) any given point. So we can try to plot the Julia set of a given function as follows. Start with any point z we know to be in the Julia set, such as a repelling periodic point, and compute all pre-images of z under some high iterate of f.
Unfortunately, as the number of iterated pre-images grows exponentially, this is not feasible computationally. However, we can adjust this method, in a similar way as the "random game" method for iterated function systems. That is, in each step, we choose at random one of the inverse images of f.
For example, for the quadratic polynomial fc, the backwards iteration is described by
At each step, one of the two square roots is selected at random.
Note that certain parts of the Julia set are quite difficult to access with the reverse Julia algorithm. For this reason, one must modify IIM/J ( it is called MIIM/J) or use other methods to produce better images.
Using DEM/J
[edit]- Images of Julia sets for
-
-
-
-
Julia set drawn by distance estimation, the iteration is of the form
-
Three-dimensional rendering of Julia set using distance estimation
As a Julia set is infinitely thin we cannot draw it effectively by backwards iteration from the pixels. It will appear fragmented because of the impracticality of examining infinitely many startpoints. Since the iteration count changes vigorously near the Julia set, a partial solution is to imply the outline of the set from the nearest color contours, but the set will tend to look muddy.
A better way to draw the Julia set in black and white is to estimate the distance of pixels (DEM) from the set and to color every pixel whose center is close to the set. The formula for the distance estimation is derived from the formula for the potential function φ(z). When the equipotential lines for φ(z) lie close, the number is large, and conversely, therefore the equipotential lines for the function should lie approximately regularly. It has been proven that the value found by this formula (up to a constant factor) converges towards the true distance for z converging towards the Julia set.[9]
We assume that f(z) is rational, that is, where p(z) and q(z) are complex polynomials of degrees m and n, respectively, and we have to find the derivative of the above expressions for φ(z). And as it is only that varies, we must calculate the derivative of with respect to z. But as (the k-fold composition), is the product of the numbers , and this sequence can be calculated recursively by , starting with (before the calculation of the next iteration ).
For iteration towards ∞ (more precisely when m ≥ n + 2, so that ∞ is a super-attracting fixed point), we have
(d = m − n) and consequently:
For iteration towards a finite attracting cycle (that is not super-attracting) containing the point and having order r, we have
and consequently:
For a super-attracting cycle, the formula is:
We calculate this number when the iteration stops. Note that the distance estimation is independent of the attraction of the cycle. This means that it has meaning for transcendental functions of "degree infinity" (e.g. sin(z) and tan(z)).
Besides drawing of the boundary, the distance function can be introduced as a 3rd dimension to create a solid fractal landscape.
See also
[edit]Notes
[edit]- ^ Regarding notation: For other branches of mathematics the notation can also represent the Jacobian matrix of a real-valued mapping f between smooth manifolds.
References
[edit]- ^ Gaston Julia (1918) "Mémoire sur l'iteration des fonctions rationnelles", Journal de Mathématiques Pures et Appliquées, vol. 8, pages 47–245.
- ^ Pierre 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.
- ^ Beardon, Iteration of Rational Functions, Theorem 5.6.2.
- ^ Beardon, Iteration of Rational Functions, Theorem 7.1.1.
- ^ Beardon, Iteration of Rational Functions, Theorem 3.2.4.
- ^ Tan Lei, "Similarity between the Mandelbrot set and Julia Sets", Communications in Mathematical Physics 134 (1990), pp. 587–617.
- ^ Vepstas, Linas. "Renormalizing the Mandelbrot Escape". linas.org. Creative Commons. Retrieved 5 November 2023.
- ^ Douady, Adrien; Hubbard, John H. (1984). "Etude dynamique des polynômes complexes". Prépublications mathémathiques d'Orsay. 2; "[op.cit.]". Prépublications mathémathiques d'Orsay. 4. 1985.
- ^ a b Peitgen, Heinz-Otto; Richter Peter (1986). The Beauty of Fractals. Heidelberg: Springer-Verlag. ISBN 0-387-15851-0.
Bibliography
[edit]- Carleson, Lennart; Gamelin, Theodore W. (1993). Complex Dynamics. Springer.
- Douady, Adrien; Hubbard, John H. (1984). "Etude dynamique des polynômes complexes". Prépublications mathémathiques d'Orsay. 2; "[op.cit.]". Prépublications mathémathiques d'Orsay. 4. 1985.
- Milnor, J.W. (2006) [1990]. Dynamics in One Complex Variable. Annals of Mathematics Studies. Vol. 160 (Third ed.). Princeton University Press;
First appeared in as a "Stony Brook IMS Preprint". Archived from the original on 2006-04-24. available as Milnor, John W. (1990). "Dynamics in one complex variable: Introductory lectures". arXiv:math.DS/9201272. - Bogomolny, Alexander. "Mandelbrot Set and Indexing of Julia Sets". cut-the-knot. Algebra curriculum.
- Demidov, Evgeny (2003). "The Mandelbrot and Julia sets' anatomy".
- Beardon, Alan F. (1991). Iteration of Rational Functions. Springer. ISBN 0-387-95151-2.
External links
[edit]- "Julia set", Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- Weisstein, Eric W. "Julia Set". MathWorld.
- Bourke, Paul. "Julia set fractal (2D)" (personal site).
- Sawyer, Jamie (6 April 2007). "Julia sets" (blog).
- McGoodwin, Michael. "Julia jewels: An exploration of Julia sets" (personal site).
- Pringle, Lucy. "Crop circle Julia Set" (personal site).
- Greig, Josh. "Interactive Julia Set Applet". Archived from the original on 2012-03-26.
- Joyce, David E. "Julia and Mandelbrot set explorer" (academic personal site). Clark University.
- "A simple program to generate Julia sets". liazardie.com. Archived from the original on 2011-03-17. – Windows, 370 kB
- "A collection of applets". SourceForge. – one of the applets can render Julia sets, via Iterated Function Systems.
- "Julia meets HTML5". Google Labs. Archived from the original on 2011-02-18.
HTML5 Fractal generator for your browser
- "Julia". r-project.org. GNU R Package. 25 November 2014.
generate Julia or Mandelbrot set at a given region and resolution
- "Julia sets". Archived from the original on 2017-06-16. Retrieved 2011-08-24. – A visual explanation of Julia Sets.
- "FractalTS". github.io. – Mandelbrot, Burning ship and corresponding Julia set generator.
- "Julia set images, online rendering". finengin.net. Archived from the original on 2019-06-22. Retrieved 2017-01-24.
- "Understanding Julia and Mandelbrot Sets". - A visual explanation.
Julia set
View on GrokipediaBackground and History
Complex Dynamics Prerequisites
In complex analysis, a holomorphic function is a function that is complex differentiable at every point in some open domain of the complex plane.[5] These functions satisfy the Cauchy-Riemann equations and possess powerful properties, such as being infinitely differentiable and representable by power series in their domains of holomorphy.[6] To study global behavior in complex dynamics, the complex plane is often extended to the Riemann sphere , which compactifies the plane by adding a point at infinity and endows it with the topology of a sphere via stereographic projection.[7] Holomorphic functions on the Riemann sphere are rational functions, providing a natural setting for iterating maps without boundary issues at infinity.[8] The study of complex dynamics centers on iterating a holomorphic map , typically a rational function of degree at least 2, and examining the behavior of orbits starting from initial points .[9] A fixed point of is a point such that , while a periodic point of period satisfies but for .[10] The stability of these points is determined by the multiplier : if , the point is attracting; if , it is repelling; and if with , it is neutral (or indifferent).[10] The basin of attraction of an attracting periodic point (or cycle) is the open set of points whose orbits converge to that cycle under iteration.[11] Repelling points, in contrast, have orbits that diverge from them, often leading to chaotic behavior nearby.[12] Central to understanding iteration behavior is Fatou's theorem on normal families of holomorphic functions, which states that for a rational map of degree at least 2, the family of its iterates forms a normal family—meaning every sequence has a subsequence converging uniformly on compact subsets to a holomorphic limit—precisely on the largest open set where the dynamics are "regular."[9] This theorem, proved by Pierre Fatou in 1920, underpins the partition of the Riemann sphere into regions of stable and chaotic dynamics, with Julia sets emerging as the boundaries separating these domains.[9]Discovery and Development
The study of what would later be known as Julia sets originated in the early 20th century through the pioneering work of French mathematicians Pierre Fatou and Gaston Julia on the iteration of rational functions in the complex plane.[13][14] Fatou initiated this research in 1917 with a memoir applying Paul Montel's concept of normal families to analyze the global behavior of iterated functions, publishing key results in the Comptes Rendus de l'Académie des Sciences between 1919 and 1920 that laid foundational ideas for holomorphic dynamics.[13] Julia, building on similar ideas, submitted his doctoral thesis in 1918, which was published that year in the Journal de Mathématiques Pures et Appliquées as a comprehensive 200-page treatment of iteration theory for rational functions, introducing concepts central to understanding the boundaries of basins of attraction under iteration.[14] Despite the mathematical depth of these contributions, Fatou and Julia's work on iteration received limited attention during the mid-20th century, largely because the intricate boundary structures they described—now recognized as Julia sets—could not be visualized without computational tools, rendering the abstract results inaccessible to broader mathematical exploration.[15] This neglect persisted until the advent of digital computing in the 1970s, when Benoit Mandelbrot, working at IBM, began generating computer images of these sets, first producing recognizable plots of Julia sets in late 1979.[15] Mandelbrot's visualizations, culminating in high-quality images by 1980, dramatically revived interest in Julia and Fatou's theories by revealing their fractal nature and self-similar complexity, which Mandelbrot connected to his broader framework of fractal geometry as detailed in his 1982 book The Fractal Geometry of Nature.[15] This rediscovery not only reestablished Julia sets as a cornerstone of complex dynamics but also influenced emerging fields such as chaos theory, where iterative processes model unpredictable behaviors in physical systems, and computer graphics, enabling realistic rendering of natural forms through fractal algorithms.[15]Core Definitions
Formal Definition
In complex dynamics, the Julia set of a holomorphic function , where denotes the Riemann sphere, is studied through the iteration process defined by with initial point .[4] For a rational function of degree at least 2, the Julia set is the closure of the set of repelling periodic points of , where a periodic point of period satisfies and is repelling if .[9] When is a polynomial, infinity is a superattracting fixed point, and the filled Julia set is defined as , with the Julia set given by .[4] A prominent family of examples is the quadratic polynomials for , where the Julia set lies in the complex plane and captures the chaotic dynamics on its boundary.[16]Equivalent Descriptions
One equivalent characterization of the Julia set for a rational function of degree at least 2 is as the closure of the repelling periodic points of . A periodic point of period is repelling if , and the set of all such points is dense in , with their closure precisely equaling . This description highlights the chaotic, expanding nature of the dynamics on the Julia set, as repelling periodic points are fundamental to the unstable behavior under iteration.[17][18] Another formulation arises from the theory of normal families: the Julia set consists of those points such that the family of iterates is not normal in any neighborhood of . Here, normality means the family is locally equicontinuous or, equivalently by Montel's theorem, that there exists a subsequence converging uniformly on compact subsets to a holomorphic function or to infinity. This characterization complements the Fatou set , defined as the largest open set where the iterates form a normal family, making the complement of .[19][17] The Julia set can also be described as the boundary of the Fatou set: . Since is open and completely invariant under , its boundary coincides with the closure of the set where the dynamics exhibit sensitivity to initial conditions, separating stable regions from chaotic ones. This boundary property underscores the topological role of in partitioning the Riemann sphere.[17][19] For polynomial maps of degree at least 2, the Julia set is the boundary of the basin of attraction of infinity, denoted , so . Infinity acts as a superattracting fixed point, and this basin forms a connected component of the Fatou set, with the filled Julia set having boundary .[17][19]Dynamical Properties
Properties of the Julia Set
The Julia set of a rational map of degree at least 2 is a non-empty, compact, and perfect subset of the Riemann sphere, meaning it contains no isolated points and is closed under taking limits. This structure arises from the closure of the repelling periodic points, ensuring the set's completeness and topological richness. A fundamental topological dichotomy holds: for polynomials, particularly quadratics, the Julia set is either connected or totally disconnected, resembling a Cantor set in the latter case.[20] This classification depends on the boundedness of critical orbits, with connectivity preserved only if no critical point escapes to infinity.[20] Julia sets are not always locally connected, even when connected; counterexamples include certain infinitely renormalizable quadratic maps constructed via iterated tuning, where pinch points prevent path-connectedness between nearby components. Such non-local connectivity complicates boundary descriptions and visualization. The Hausdorff dimension of hyperbolic Julia sets equals their hyperbolic dimension, the supremum of dimensions of repelling Cantor subsets, and reaches 2 in many cases, such as those with positive Lebesgue measure, indicating space-filling behavior.[21] For instance, sequences of quadratic maps near certain Mandelbrot set parameters yield Julia sets of dimension arbitrarily close to 2.[21] For hyperbolic rational maps, the dynamics on the Julia set are ergodic with respect to the unique conformal measure of maximal entropy, implying strong mixing properties and uniform expansion away from critical points.[22] This ergodicity underpins the statistical uniformity of orbits on .[22] Small perturbations in the parameter for quadratic maps can induce drastic topological transitions in the Julia set, such as from connected to totally disconnected or shifts in connectivity loci.[20]Julia Set versus Fatou Set
The Fatou set of a rational function is defined as the largest open subset of the Riemann sphere on which the family of iterates is normal, meaning every sequence of iterates has a subsequence that converges uniformly on compact subsets to a holomorphic function or to infinity.[23] This normality is equivalent to the family being equicontinuous on , due to Montel's theorem applied to families of meromorphic functions omitting at most three values.[24] In contrast, the Julia set consists of points where the iterates exhibit chaotic behavior, lacking such uniform convergence properties.[9] The connected components of the Fatou set, known as Fatou components, are classified into periodic, preperiodic, and wandering types, though the latter do not occur for rational maps. Periodic Fatou components are those invariant under some iterate , and by the works of Fatou, Julia, Siegel, Branner-Hubbard, and others, they fall into four main categories: attracting or superattracting basins, where iterates converge to an attracting periodic cycle; parabolic basins, associated with rationally indifferent fixed points; Siegel disks, where dynamics are conjugate to irrational rotations on the disk; and Herman rings, annular regions with similar rotational dynamics.[25] Preperiodic components map eventually to periodic ones under iteration. Sullivan's no wandering domains theorem proves that for any rational , every Fatou component is eventually periodic, resolving a long-standing conjecture and ensuring the Fatou set has no wandering components—open sets whose orbits under remain disjoint forever. The Julia set serves as the boundary of every Fatou component, enclosing the stable regions of where dynamics are tame, while captures the chaotic frontier. Since rational maps are open by the open mapping theorem, maps open sets to open sets, implying that and ; moreover, the sets are completely invariant, as preimages preserve the normality or chaos.[23] For polynomial maps, the basin of infinity—consisting of points whose orbits escape to —forms a distinguished unbounded Fatou component, often simply connected and containing all escaping points.[26]Examples and Families
Basic Examples
Julia sets arise prominently in the study of the quadratic family of maps , where is a complex parameter; the filled Julia set consists of points whose orbits under iteration of remain bounded, while the Julia set is the boundary of , forming the boundary between escaping and non-escaping regions.[27] A basic connected example occurs for , where is the closed interval on the real axis, a simple dendritic structure extended along the real line without branches or interior points.[28] In this case, iteration of points within produces bounded orbits that oscillate within the interval, while points outside escape to infinity. The fixed points, solutions to , are and , with multipliers and , respectively; both have , rendering them repelling.[27] For a totally disconnected example, consider , which lies on the boundary of the parameter region yielding connected sets; however, slight perturbations outside produce dust-like structures, but strictly for values like (real), is a Cantor set, consisting of uncountably many isolated points with no connected components larger than a singleton, resembling fractal dust scattered along the real line.[29] Here, all orbits on the Julia set are bounded but dense in small neighborhoods, while nearby points escape rapidly to infinity. The fixed points solve , yielding , with multipliers ; both satisfy , so they are repelling.[27] For real parameters , the Julia sets are connected and exhibit varied qualitative shapes: near , they resemble thin rods or line-like dendrites; around , they form rounded, cauliflower-like boundaries enclosing a disk-like filled set; and approaching , they become pinched and quasi-circular with increasing intricacy at the parabolic cusp.[28] These forms illustrate how small changes in transform the boundary dynamics while maintaining connectivity.Quadratic Julia Sets
The quadratic family of maps is defined by , where is a complex parameter varying over the plane . The associated Julia set is the boundary of the filled Julia set , and its connectivity depends critically on . Specifically, (and thus ) is connected if and only if lies in the Mandelbrot set is connected ; otherwise, is totally disconnected (a Cantor set) and coincides with .[20][4] The dynamics of are governed by the orbit of its sole finite critical point at , as the behavior of all other orbits is subordinate to this one under the quadratic structure. The orbit of 0 remains bounded if and only if , which ensures the connectivity of ; unbounded escape of this orbit leads to a disconnected Julia set.[4][20] This critical orbit criterion provides a practical means to determine membership in and classify the topology of . The Mandelbrot set possesses a distinctive bulb structure, comprising the main cardioid—a central region where admits an attracting fixed point—and an infinite collection of period- bulbs attached to it, each corresponding to parameters with an attracting cycle of minimal period . These bulbs adorn the cardioid in a self-similar fashion, with the largest being the period-2 bulb to the left and smaller ones spiraling outward for higher periods. For example, the case yields a connected dendritic Julia set without attracting cycles.[20][30] Hyperbolic components form the open interior of , consisting of all for which is hyperbolic (i.e., possesses an attracting cycle to which the critical point converges). Each such component is bounded by a curve where the multiplier of the attracting cycle has modulus exactly 1, marking the transition to non-hyperbolic dynamics; the component's root (where the multiplier is 1) and center (where it is 0) define key structural points.[20] In the Douady-Hubbard theory, the combinatorial structure of and its Julia sets is illuminated through external rays—curves from infinity parameterized by angles —which land at specific boundary points. Rational-argument external rays of land precisely at the roots of hyperbolic components or at Misiurewicz points (where the critical orbit is preperiodic); at these roots, the rays coincide with the landing points of internal rays from the component's dynamics, establishing a bijection between parameter and dynamical planes.[20] For a fixed point of , satisfying , the multiplier is given by Attracting fixed points occur when , which parameterizes the main cardioid via the relation . This multiplier governs local stability and bifurcations at the cardioid's boundary.[20]Generalizations and Extensions
To Higher-Degree Polynomials
Julia sets can be generalized to monic polynomials of degree , such as where . For this unicritical family, there is a critical point at with multiplicity , as the derivative is , vanishing to order at the origin. In this family, the dynamics are determined by the orbit of this single critical point. While the unicritical family captures an analog via the Multibrot set, general monic degree polynomials have finite critical points, leading to a higher-dimensional parameter space. The parameter space for these unicritical families is known as the Multibrot set , the analog of the Mandelbrot set for degree , consisting of parameters for which the orbit of the critical point 0 remains bounded under iteration of . For , the Multibrot set exhibits greater structural complexity than the quadratic Mandelbrot set, featuring more hyperbolic components and higher-period bifurcation loci due to the higher degree and multiplicity.[31] A key dynamical property carries over from quadratics: the Julia set of a polynomial of degree is connected if and only if the orbits of all finite critical points remain bounded. If any critical orbit escapes to infinity, becomes a Cantor set of uncountably many components. This criterion generalizes the quadratic connectivity condition, where boundedness of the single critical orbit suffices.[32] For monic polynomials with connected Julia sets, the basin of infinity is simply connected. This follows from the existence of a conformal isomorphism (via an adjusted Böttcher function) mapping onto the open unit disk, possible precisely because no finite critical points lie in the basin. In contrast to the quadratic case, the presence of multiple critical points in general polynomials allows for richer combinatorial structures, such as captures of one critical orbit by another, contributing to the increased complexity of hyperbolic components and periodic cycles in the parameter space.[33] A representative example is the cubic family , which has a single critical point at 0 with multiplicity 2. The Multibrot set is the connectivity locus where the orbit of 0 remains bounded. In contrast, the general cubic family, such as , has two distinct critical points (solutions to ), requiring bounded orbits for both to ensure connectivity, and features a two-dimensional parameter space with more intricate structure than the quadratic Mandelbrot set.To Non-Polynomial Maps
The generalization of Julia sets to non-polynomial holomorphic maps encompasses rational functions of degree and transcendental entire functions, introducing distinct dynamical behaviors on the Riemann sphere or extended complex plane. For a rational map , where and are coprime polynomials of degree , the map has exactly critical points, counted with multiplicity, as the derivative is a rational function of degree . The Julia set is the closure of the repelling periodic points of , and it coincides with the closure of all repelling periodic points under iteration.[34][9] Fatou components for rational maps include attracting and parabolic basins, as well as rotation domains such as Siegel disks (where is conjugate to an irrational rotation on a disk) and Herman rings (annular rotation domains, possible only for degree at least 3). Unlike polynomial maps, rational functions act on the compact Riemann sphere , so there is no dedicated superattracting basin of infinity; instead, infinity behaves as an ordinary point in the dynamics. By Sullivan's no-wandering-domains theorem, every Fatou component under a rational map is eventually periodic, precluding wandering domains where forward images remain disjoint.[9] For transcendental entire functions, such as exponentials or trigonometric maps, the Julia set is the set where the family of iterates fails to be normal, often exhibiting more complex structures due to the non-compact domain. These functions possess infinitely many critical points and asymptotic values (points omitted in the range, including ), with singular values defined as the critical values and asymptotic values; the postsingular set, the closure of the forward orbits of singular values, governs much of the dynamics. A canonical example is the exponential map with , where is the sole finite singular value (as 0 is an asymptotic value), and the escaping set consists of dynamic rays landing at repelling points or the singular value's orbit.[35][35] Transcendental entire functions admit phenomena absent in rational maps, including Baker domains—Fatou components where for but is not onto an attracting cycle—and wandering domains, whose forward orbits consist of infinitely many distinct components. Baker domains were first identified in the context of normality domains for entire functions, and examples include certain quadratic entire maps like for specific . Wandering domains, conjectured by Fatou, are ruled out for rational maps by Sullivan but exist for transcendentals, as in for small . If the Fatou set of a transcendental entire function is nonempty, then has empty interior in .[36][36] Trigonometric entire functions provide illustrative examples; for , the Julia set is the entire complex plane , as the iterates exhibit no normality anywhere due to unbounded critical orbits and dense escaping points. Similarly, the sine family for yields Julia sets of positive area, often Cantor bouquets of curves, highlighting the rich topology possible in transcendental dynamics.[35][35]Computation and Visualization
Plotting Algorithms
The most straightforward method for plotting Julia sets involves forward iteration, also known as the escape-time algorithm. In this approach, a grid of points is defined in the complex plane, typically within a bounded region such as a square centered at the origin. For each grid point , the iteration is performed starting from , where is the generating function (e.g., a quadratic polynomial ). The process continues until either exceeds a predefined escape radius (often 2 or larger, depending on ) or a maximum number of iterations (e.g., 100–1000) is reached. Points that escape are colored according to the iteration count at which escape occurs, creating a smooth gradient that highlights regions near the Julia set boundary; points that remain bounded after the maximum iterations are typically colored black or a solid hue to indicate membership in the filled Julia set , the set of points with bounded orbits under . This method effectively visualizes repelling Julia sets but can be computationally intensive for fine grids or high iteration counts.[37] The inverse iteration method (IIM) addresses limitations of forward iteration, particularly for connected Julia sets, by working backwards from the exterior of the set. It begins with a set of known exterior points, such as a large disk or circle far from the origin where is sufficiently large to ensure escape under forward iteration. For each such point , the equation is solved for preimages , yielding multiple solutions (e.g., two for quadratic ). These preimages are iteratively computed over many steps (often hundreds), with random or systematic selection among branches to densely sample the plane. As iterations proceed, the preimages converge to the Julia set boundary, which acts as an attracting set in the inverse dynamics, allowing efficient filling of interior regions without exhaustively testing every grid point. This technique excels at rendering detailed boundaries for polynomials where the Julia set is connected, though it requires careful branch selection to avoid biases toward certain angles.[38][39] For enhanced boundary smoothness and antialiasing, the distance estimation method (DEM) approximates the distance from each point to the Julia set boundary, enabling subpixel refinement. Starting from a point outside the set, forward iteration computes and the accumulated derivative , with . The estimated distance is then , derived from the Green potential function and , so . This provides a lower bound on the true distance with controlled error for large and smooth boundaries. Coloring or shading based on this distance yields antialiased images, particularly useful for quadratic Julia sets where boundaries are -smooth away from critical points. DEM reduces artifacts in zoomed views but demands higher iteration counts near the boundary for accuracy.[40] To plot the filled Julia set , the boundedness test is central: during forward iteration, points whose orbits remain within the escape radius after the maximum iterations are classified as interior to , while escapers are exterior. For quadratic maps , an escape criterion guarantees that if , the orbit diverges to infinity, allowing reliable termination; this test extends to higher-degree polynomials with adjusted radii based on coefficients. Challenges in rendering include aliasing from discrete grids, which DEM partially mitigates via distance-based interpolation, and precision loss in deep zooms, where standard double-precision floating-point arithmetic fails due to accumulated rounding errors in iterations, necessitating arbitrary-precision libraries (e.g., GMP) that increase computation time exponentially with zoom depth.[41][42]Pseudocode Implementations
The standard method for generating images of quadratic Julia sets employs forward iteration of the map , where is a fixed complex parameter and initial points are sampled on a grid in the complex plane. For each grid point, the orbit is iterated until exceeds a threshold (typically 2, as escape to infinity occurs for under this map), or a maximum iteration count is reached; the escape iteration count determines the coloring, with non-escaping points colored black to indicate bounded orbits.[37] The following pseudocode illustrates this escape-time algorithm for a filled Julia set, where the filled set consists of points with bounded orbits (colored black if no escape within max iterations), distinguishing it from the normal Julia set, which is solely the boundary of escaping and non-escaping regions.function generate_filled_julia(width, height, c_real, c_imag, max_iter, escape_radius=2.0):
image = array of size (width, height) initialized to 0 # 0 for black (bounded)
for x in 0 to width-1:
for y in 0 to height-1:
z_real = scale(x, width, -2.0, 2.0) # Map grid to complex plane, e.g., [-2,2] x [-2,2]
z_imag = scale(y, height, -2.0, 2.0)
c = complex(c_real, c_imag)
z = complex(z_real, z_imag)
iter = 0
while |z| <= escape_radius and iter < max_iter:
z = z^2 + c
iter += 1
if iter == max_iter:
image[x][y] = 0 # Bounded orbit: filled set interior
else:
image[x][y] = iter # Escape time for coloring
return image
function generate_filled_julia(width, height, c_real, c_imag, max_iter, escape_radius=2.0):
image = array of size (width, height) initialized to 0 # 0 for black (bounded)
for x in 0 to width-1:
for y in 0 to height-1:
z_real = scale(x, width, -2.0, 2.0) # Map grid to complex plane, e.g., [-2,2] x [-2,2]
z_imag = scale(y, height, -2.0, 2.0)
c = complex(c_real, c_imag)
z = complex(z_real, z_imag)
iter = 0
while |z| <= escape_radius and iter < max_iter:
z = z^2 + c
iter += 1
if iter == max_iter:
image[x][y] = 0 # Bounded orbit: filled set interior
else:
image[x][y] = iter # Escape time for coloring
return image
function generate_multi_julia(c_width, c_height, ...): # Similar args as above
multi_image = array of size (c_width * width, c_height * height)
for cx in 0 to c_width-1:
for cy in 0 to c_height-1:
c_real = scale(cx, c_width, c_min_real, c_max_real) # e.g., c in [-0.8, 0.2] + i[-0.2, 0.2]
c_imag = scale(cy, c_height, c_min_imag, c_max_imag)
sub_image = generate_filled_julia(width, height, c_real, c_imag, max_iter)
copy sub_image to multi_image at offset (cx * width, cy * height)
return multi_image
function generate_multi_julia(c_width, c_height, ...): # Similar args as above
multi_image = array of size (c_width * width, c_height * height)
for cx in 0 to c_width-1:
for cy in 0 to c_height-1:
c_real = scale(cx, c_width, c_min_real, c_max_real) # e.g., c in [-0.8, 0.2] + i[-0.2, 0.2]
c_imag = scale(cy, c_height, c_min_imag, c_max_imag)
sub_image = generate_filled_julia(width, height, c_real, c_imag, max_iter)
copy sub_image to multi_image at offset (cx * width, cy * height)
return multi_image
function generate_inverse_julia(c_real, c_imag, max_depth, num_samples, grid_size):
c = complex(c_real, c_imag)
preimages = set() # Store points on Julia set approximation
# Start from repelling fixed point or large |z| (e.g., infinity approximation)
start_points = sample_random_points_outside(grid_size, radius=10.0) # e.g., 1000 points
for start_z in start_points:
current = start_z
for depth in 1 to max_depth:
# Choose branch randomly (0 or 1 for + or - sqrt)
branch = random(0, 1)
inv = sqrt(current - c) * (1 if branch == 0 else -1)
add inv to preimages if within grid bounds
current = inv # Backtrack
image = mark_grid_points(preimages, grid_size) # Density or presence on grid
return image
function generate_inverse_julia(c_real, c_imag, max_depth, num_samples, grid_size):
c = complex(c_real, c_imag)
preimages = set() # Store points on Julia set approximation
# Start from repelling fixed point or large |z| (e.g., infinity approximation)
start_points = sample_random_points_outside(grid_size, radius=10.0) # e.g., 1000 points
for start_z in start_points:
current = start_z
for depth in 1 to max_depth:
# Choose branch randomly (0 or 1 for + or - sqrt)
branch = random(0, 1)
inv = sqrt(current - c) * (1 if branch == 0 else -1)
add inv to preimages if within grid bounds
current = inv # Backtrack
image = mark_grid_points(preimages, grid_size) # Density or presence on grid
return image
function julia_dem_distance(z_real, z_imag, c_real, c_imag, max_iter, escape_radius=2.0):
c = complex(c_real, c_imag)
z = complex(z_real, z_imag)
dz = complex(1.0, 0.0) # Initial [derivative](/page/Derivative)
iter = 0
while |z| <= escape_radius and iter < max_iter:
dz_new = 2 * z * dz
z = z^2 + c
dz = dz_new
iter += 1
if iter == max_iter:
return infinity # Or large value for interior
else:
return |z| * log(|z|) / |dz| # [Distance](/page/Distance) estimate to boundary
function julia_dem_distance(z_real, z_imag, c_real, c_imag, max_iter, escape_radius=2.0):
c = complex(c_real, c_imag)
z = complex(z_real, z_imag)
dz = complex(1.0, 0.0) # Initial [derivative](/page/Derivative)
iter = 0
while |z| <= escape_radius and iter < max_iter:
dz_new = 2 * z * dz
z = z^2 + c
dz = dz_new
iter += 1
if iter == max_iter:
return infinity # Or large value for interior
else:
return |z| * log(|z|) / |dz| # [Distance](/page/Distance) estimate to boundary