In the context of complex dynamics, a branch of mathematics, 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
\operatorname{J}(f),
\operatorname{F}(f).
Let
f(z)
f(z)
f(z)=p(z)/q(z)
p(z)
q(z)
F1,...,Fr
f(z)
Fi
f(z)
Fi
The last statement means that the termini of the sequences of iterations generated by the points of
Fi
These sets
Fi
f(z)
\operatorname{F}(f)
f(z)
f(z)
f'(z)=0
f(z)=infty
p(z)
q(z)
f(z)=1/g(z)+c
g(z)
The complement of
\operatorname{F}(f)
\operatorname{J}(f)
f(z)
\operatorname{J}(f)
\operatorname{J}(f)
\operatorname{F}(f)
\operatorname{J}(f)
f(z)
|f(z)-f(w)|>|z-w|
\operatorname{J}(f)
f(z)
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]
\operatorname{J}(f)
\operatorname{J}(f)
z\inX ,
cupnf-n(z).
\operatorname{J}(f)
\operatorname{J}(f)
The Julia set and the Fatou set of f are both completely invariant under iterations of the holomorphic function f:[5]
f-1(\operatorname{J}(f))=f(\operatorname{J}(f))=\operatorname{J}(f),
f-1(\operatorname{F}(f))=f(\operatorname{F}(f))=\operatorname{F}(f).
For
f(z)=z2
2\pi
For
g(z)=z2-2
x\to4(x-\tfrac{1}{2})2
The functions f and g are of the form
z2+c
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
P(z):=zn-1=0~:~n>2
f(z)=z-
P(z) | |
P'(z) |
=
1+(n-1)zn | |
nzn-1 |
~.
The image on the right shows the case n = 3.
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
fc(z)=z2+c~,
R>0
R2-R\ge|c|.
|c|\le2,
R=2~.
K(fc)=\left\{z\inC:\foralln\in
n(z)| | |
N,|f | |
c |
\leR\right\}~,
n(z) | |
f | |
c |
fc(z).
J(fc)
K(fc)
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
J(fc)
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:
In other words, the Julia sets
J(fc)
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.
The below pseudocode implementations hard code the functions for each fractal. Consider implementing complex number operations to allow for more dynamic and reusable code.
f(z)=z2+c
for each pixel (x, y) on the screen, do:
f(z)=zn+c
for each pixel (x, y) on the screen, do:
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,
mu=k+1-
log{log{|zk| | |
\forallfc,n(z)=zn+lowerpowerterms+c
where
k
K
0\leqk<K
K\inN
|zk|
This can be implemented, very simply, like so:
if(iteration
The difference is shown below with a Julia set defined as
fc,(z)
c=-0.835-0.321i
The Julia set for
f(z)=z2
|f(z)|=|z|2
\varphi(z)=\limk\toinfty
log|zk| | |
2k |
,
where
zk
f(z)=z2+c
|\psi(f(z))|=|\psi(z)|2
\varphi(z)=\limk\toinfty
log|zk| | |
2k |
.
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:
\varphi(z)=\limk\toinfty
log|zk| | |
dk |
,
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
|zk|>N
log|zk| | |
dk |
=
log(N) | |
d\nu(z) |
,
for some real number
\nu(z)
\nu(z)=k-
log(log|zk|/log(N)) | |
log(d) |
,
where the last number is in the interval [0, 1). For iteration towards a finite attracting cycle of order ''r'', we have that if <math>z^*</math> is a point of the cycle, then <math>f(f(...f(z^*))) = z^*</math> (the ''r''-fold composition), and the number :<math>\alpha = \frac{1}{\left |(d(f(f(\cdots f(z))))/dz)_{z=z^*} \right |} \qquad (> 1)</math> is the ''attraction'' of the cycle. If ''w'' is a point very near <math>z^*</math> and ''w''′ is ''w'' iterated ''r'' times, we have that :<math>\alpha = \lim_{k\to\infty} \frac{|w - z^*|}{|w' - z^*|}.</math> Therefore, the number <math>|z_{kr} - z^*|\alpha^{k}</math> is almost independent of ''k''. We define the potential function on the Fatou domain by: :<math>\varphi(z) = \lim_{k\to\infty} \frac{1}{(|z_{kr} - z^*|\alpha^{k})}.</math> If ε is a very small number and ''k'' is the first iteration number such that <math>|z_k - z^*| < \epsilon</math>, we have that :<math>\varphi(z) = \frac{1}{(\varepsilon \alpha^{\nu(z)})}</math> for some real number <math>\nu(z)</math>, which should be regarded as the real iteration number, and we have that: :<math>\nu(z) = k - \frac{\log(\varepsilon/|z_k - z^*|)}{\log(\alpha)}.</math> 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 :<math>\alpha = \lim_{k\to\infty} \frac{\log|w' - z^*|}{\log|w - z^*|},</math> where ''w''′ is ''w'' iterated ''r'' times and the formula for ''φ''(''z'') by: :<math>\varphi(z) = \lim_{k\to\infty} \frac{\log(1/|z_{kr} - z^*|)}{\alpha^k}. </math> And now the real iteration number is given by: :<math>\nu(z) = k - \frac{\log(\log|z_k - z^*|/\log(\varepsilon))}{\log(\alpha)}.</math> 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 <math>\nu(z)</math> 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== [[Image:Juliasetsdkfieldlines2.jpg|thumb|right|The equipotential lines for iteration towards infinity]]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
\nu(z)
z2+c
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
z*
f(f(...f(z*)))=z*
\alpha=(d(f(f(...
f(z))))/dz) | |
z=z* |
.
If the points of C are
zi,i=1,...,r(z1=z*)
f'(zi)
z*
f(f(...f(z)))
f(f(...f(z)))
\alpha=|\alpha|e\beta
In order to colour the Fatou domain, we have chosen a small number ε and set the sequences of iteration
zk(k=0,1,2,...,z0=z)
|zk-z*|<\epsilon
z*
z*
zk-z*
\psi-k\beta=\theta\mod\pi.
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
\psi-k\beta\mod\pi
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
z*
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).
Methods :
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
fn
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
zn-1=\sqrt{zn-c}.
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.
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
|\varphi'(z)|
\delta(z)=\varphi(z)/|\varphi'(z)|
We assume that f(z) is rational, that is,
f(z)=p(z)/q(z)
zk
z'k
zk
zk=f(f( … f(z)))
z'k
f'(zk)
z'k+1=f'(zk)z'k
z'0=1
zk+1=f(zk)
For iteration towards ∞ (more precisely when, so that ∞ is a super-attracting fixed point), we have
|\varphi'(z)|=\limk\toinfty
|z'k| | ||||||
|
,
and consequently:
\delta(z)=\varphi(z)/|\varphi'(z)|=\limk\toinftylog|zk||zk|/|z'k|.
For iteration towards a finite attracting cycle (that is not super-attracting) containing the point and having order r, we have
|\varphi'(z)|=\limk\toinfty|z'kr|/(|zkr-z*|2\alphak),
and consequently:
\delta(z)=\varphi(z)/|\varphi'(z)|=\limk\toinfty|zkr-
*|/|z' | |
z | |
kr |
|.
For a super-attracting cycle, the formula is:
\delta(z)=\limk\toinftylog|zkr-z*|
2/|z' | |
kr |
|.
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.