Julia Set 2

From Math Images
Jump to: navigation, search


A Julia Set
Anna1.jpg
Fields: Fractals and Dynamic Systems
Image Created By: Anna

A Julia Set

This is a filled Julia Set created with a program described in this page.


Basic Description

Images of Julia Sets, like this one, are generated by simple computer programs, but the sets were first described long before anyone could see how beautiful they are.

Julia Sets were first discovered and analyzed by Pierre Fatou and Gaston Julia in the 1920's, but their work was based on the work that Henri Poincare started in the 1890's. Poincare was looking solutions to certain problems that come from systems that change and develop in time or space. He focused primarily on trying to find the equations that perfectly describe the way three planets or stars move due to each others' gravity.

When he began to believe he simply could not find specific solutions, he started instead to study the general properties that these unknown solutions would have to possess. He found that for certain problems, these general properties would make the solutions behave completely unpredictably. He had discovered chaotic systems.

Fatou and Julia were looking for the values where particular functions behaved "normally" and chaotically. They found, described, and named Julia Sets and Fatou Sets. For a function, the Julia Set is the set of points where the function behaves chaotically, and the Fatou Set is where the function does not behave chaotically.

Understanding these sets allows us to understand the behavior of different systems. For example, if we say that we can model the growth of a population with a particular function, we want to be able to predict the population at some future time. However, the Julia Set of such a function tells us the conditions where we simply cannot predict the growth of the population. The Fatou Set tells us where our model will work.

A More Mathematical Explanation

Note: understanding of this explanation requires: *Calculus

Many people know Julia Sets as beautiful and intricate pictures without understanding how those image [...]

Many people know Julia Sets as beautiful and intricate pictures without understanding how those images are generated. Mathematically, Julia Sets are sets of complex numbers, that are visualized by plotting in the complex plane. These sets are the closure of the set of repelling periodic points of iterated, complex functions. If any these terms are familiar to you, please feel free to skip certain sections in this page.


Complex Numbers and the Complex Plane

Note: This description is meant as a review for those who are already familiar with complex numbers. If you aren't please click on Complex Numbers.


Complex numbers are generally written in the form z = x+iy, where x and y are real numbers and i=\sqrt{-1}. The magnitude of a complex number \mid z\mid is defined by \mid z\mid^2=x^2+y^2. I will also be using the notation z=re^{i\theta} where r=\mid z\mid and \theta=tan^{-1}\left( \frac{y}{z}\right). This is just like switching between cartesian coordinates (x and y) to polar coordinates (r and \theta). The complex plane is the plane defined by the x and y value (or r and \theta values) of z.

Iterated Functions

When we talk about an iterated function, we referring to plugging a function into itself repeatedly. For example, take the function Q(z)=z^2. Then,

Q^2(z)=Q(Q(z))=(z^2)^2=z^4 and f^3(z)= (z^4)^2=z^8, and so on.

Periodic and Fixed Points

Iterated functions can have fixed points—points where the function stays the same under each iteration. We can always find these points by solving the equation f(z)=z. For example, if  f(z)=z^2+5, this gives z^2+5=z. This equation has two complex roots: \frac{1\pm i \sqrt{19}}{2}. We can see that

f\left(\frac{1\pm i \sqrt{19}}{2}\right)=\left(\frac{1\pm i \sqrt{19}}{2}\right)^2+5=\frac{1\pm 2i\sqrt{19}-19}{4}+5=\frac{1\pm i \sqrt{19}}{2}.

Fixed points are simply periodic points of period 1. Periodic points are any points that appear in a cycle. Cycles are ordered sets of numbers \{z_0,z_1,z_2...z_n\} such that  
f(z_0)=z_1, f(z_1)=z_2,  f(z_2)=z_3, and so on until  f(z_n)=z_0. Cycles are also sometimes referred to as orbits. We say that \{z_0,z_1,z_2...z_n\} belong to the orbit of z_0

To find the points of period 2, we can solve the equation f^2(z)=z. By checking what f(z) is for each of those points, we can determine which belong to the same cycle.

Periodic points and cycles can be either attracting, repelling, or neutral. For attracting periodic point, there is some region around the point where iterations of points in that region get closer and closer to the periodic one. These cycles are sort of like the center of a bowl; when you put an object inside, it will move towards the bottom. For a repelling point, every point near the periodic point will eventually be iterated past a certain value. These cycles are like the top of a cone; when you place an object on the side, it will move away from the center. Neutral points are a bit more complicated, and we’ll leave them alone for now.

If you would like more information, including examples of attracting and repelling periodic points, please click on Iterated Functions

Julia Set Definition

The conceptually easiest way to define Julia Sets are the closure of the set of repelling periodic points of a complex rational function. A rational function is a lot like a rational number; it is defined as R(x)=\frac{P(x)}{Q(x)} where P(x) and Q(x) are polynomials with roots distinct from each other. For example, H(x)=\frac{2-x}{x^2} is a rational function, whereas ln\left(x\right) and K(x)=\frac{2-x}{(2-x)x^2} are not.


It may seem like rational functions are undefined for certain values. We get around this problem by using the Riemann Sphere for our analysis.

To visualize the definition of Julia Sets, consider the function Q_0(z)=z^2. Denote z=re^{i\theta} where 0 \leq \theta <2 \pi and r is a real number. We can see that if r<1 , then all points will iterate towards zero, and if r>1, then all points iterate towards the point at \infty. However if r = 1, then z is part of some cycle. For example, if z_0= e^{2i\pi/3}, then z_1= e^{4i\pi/3}, z_2= e^{8i\pi/3}=e^{2i\pi/3}=z_0 , and \{z_0,z_1\} is a repelling two cycle. We can see that the set of repelling periodic points must be contained in the unit circle in the complex plane. The closure of this set is the entire unit circle. Therefore, the Julia Set is the unit circle.

The main image for this page is a much more complicated Julia Set, and it arises from the function f(z)=z^3-.48z+.70626+.502896i .


This definition is equivalent to simply saying that the Julia Set is the set of points where the function exhibits chaotic behavior, however the proof of equivalence is highly non-trivial and requires a background in complex analysis. The highly ambitious should examine the proofs in the sources by Milnor and DeVaney listed at the bottom of the page.

Fatou Set

The Julia Set is the set of points where a function behaves chaotically, and the Fatou Set is the set of points where it does not. Since a function can either be chaotic or not, the sets are complements of each other.

Sets are complements if they contain no shared elements and when combined they account for all elements being considered. For example, if we look at the positive integers {1,2,3,4,5,6....}, the even numbers {2,4,6...} and the odd numbers {1,3,5,...} are complements of each other.

Computational Method

Now, to see how we can plot Julia Sets, we will look at the simplest method. The escape criterion method generates something called the filled Julia Set. Julia Sets do not have interiors; however, this method often ends up plotting the interior along with the Julia Set. In this method, one defines the size of the plot, the step size, the number of iterations, and some “escape criterion.” Generally, all of these variables can be adjusted through trial and error until the desired plot is obtained.

To understand why this program often plots the interior of the Julia Set, we must first define the filled Julia Set, as the union of the Julia Set and the set of all points whose orbits are bounded by the Julia Set.

A good example of this is our example from before, Q_0(z)=z^2. Since the orbits of all z with \mid z\mid <1 are bounded by the unit circle, the filled Julia set is the unit disk.

While the filled Julia often contains interiors, when the Julia Set is not a simple closed curve, the filled Julia Set may or may not have a “filled” interior. In the picture at the top of this page, the Julia Set is composed of infinitely many simple closed curves, and we see infinitely many filled parts. To see a wider variety of filled Julia Sets, click on More Julia Set Pictures Created by Anna

Programs of this style simply iterate points on a grid (with the fineness determined by the step size) for a chosen number of iterations and test whether or not the point iterates to outside a given value. Depending on whether one is plotting the filled Julia Set, or its complement, the program then either plots those points that did not iterate out of the desired interval or the points that did remained inside the interval. The points that remain inside are in the filled Julia Set, and the points that do not are in its complement.

The smaller the step size, the more detailed the picture will be. We also need to balance the number of iterations with the escape criterion. A too large escape criterion paired with a too small number of iterations results in many points not in the Julia Set being plotted.

We can write very simple programs to execute this algorithm in Mathematica, and one I wrote is below. It plots the complement of the filled Julia Set in purple and the set itself in white.

Mathematica Program

This program, based off of the work of Bocarra, is written for Mathematica 6. It will run on later versions of Mathematica, but may or may not run on earlier version.

f[z_] = z^3 + z^2 + c; (*Defines the function*) JuliaTest = Compile[{x, y, {n, _Integer}, {c, _Complex}}, (*defines input values for the command JuliaTest*) Module[{z, num = 0}, z = x + y I; (*Sets z as complex and defines the fact that we will plot the initial value, not any iterates*) While[Abs[z] < 2.0 && num < n, z = f[z]; num++]; num]] (*Iterates the function and defines the escape criterion as |z|>2*) DensityPlot[JuliaTest[x, y, 10, -.5], {x, -2.0, 2.0}, {y, -2.0, 2.0}, PlotPoints -> 100, Mesh -> False] (*Plots in the complex plane for the desired values. PlotPoints sets the step size *)

The picture at the top of this page used the function f(z)=z^3-.48z+c with c=.70626+.502896i. For more images created by this program, click here More Julia Set Pictures Created by Anna

If you would like to see more pictures of Julia Sets created by others, please click here More Julia Set Images

For More Information

Barnes, Julia and Lorelei Koss. “The Julia Set is Everything.” Mathematics Magazine. Vol 76, No 4 (2003). pp 255-263.

Boccara, Nino. Essentials of Mathematica With Applications to Mathematics and Physics. Springer Science and Business Media, New York, 2007.

Devaney, Robert. L. An Introduction to Chaotic Dynamical Systems. Benjamin Cummings Publishing, Menlo Park CA, 1986.

Getz, Chonat and Janet Helmstedt.Graphics with Mathematica: Fractals, Julia Sets, Patterns, and Natural Forms. Elsevier, New York, 2004.

Milnor, John. Dynamics in One Complex Variable. 3rd ed. Princeton University Press, Princeton, NJ, 2006.




Teaching Materials

There are currently no teaching materials for this page. Add teaching materials.









If you are able, please consider adding to or editing this page!


Have questions about the image or the explanations on this page?
Leave a message on the discussion page by clicking the 'discussion' tab at the top of this image page.