# Fractals and Chaos

In Geometry, a Fractal is defined as an object with an irregular geometric shape each part of which is statistically similar to the whole. This property, which we call self-similarity, is one of the most curious aspects of Fractals.

Fractals aren't only abstract concept, indeed they exist in the real world if we observe them within a certain scale. The shape of sea cost, constellations, trees and some vegetables are examples of Fractals, just to name a few.

Fractals can be found in places where we don't expect to find them. The mathematician Benôit Mandelbrot, who is the father of Fractal Geometry, demonstrated that we can create a Fractal from a simple equation, the same equation which represents the behavior of a dynamic system.

Mandelbrot adopted the word Fractal from latin Fractus, which means irregular, in 1975, to describe a complete new class of objects with similar properties, such as self-similarity and fractional dimension. All these interesting properties of Fractals are summarized in the book "The Fractal Geometry of Nature", published in 1982.

Mandelbrot revealed a subtle connection between Fractals and the concept of Deterministic Chaos in Physics. Fractals represent indeed an interesting subject which connects Geometry to Mathematics, and Geometry to Physics.

The equation studied by Mandelbrot, toghether with other equations which were studied by mathematicians Gaston Juila and Pierre Fatou, became famous with the diffusion of personal computers capable of advanced computer graphics.

Many people used those equations to create beautiful images, which sometimes we call images of Chaos, because of their relastionship with the chaotic behavior of dynamic systems. Worth mentioning the book "The Beauty of Fractals" by mathematicians Heinz-Otto Peitgen and Peter Richter, which first promoted Fractals with photographs.

NextFractal aims to continue the tradition of many other Fractal generators, making available to everyone simple but powerful tools for exploring the fascinating territory of Mandelbrot, Julia and Fatou Sets, without requiring a deep knowledge of the theory behind.

## The Mandelbrot Set

The Mandelbrot Set is one of the most fascinating objects in Geometry. The definition of this object, in 1978, is attributed to Robert W. Brooks and Peter Matelski, but it is the mathematician Benôit Mandelbrot who, in 1979, when he was working for IBM, created the first visualization using modern computers.

The Mandelbrot Set is defined as the set of points of the complex plane which generate orbits of a non linear system which don't converge to any attractor of the system. The simplest Mandelbrot Set is generated by equation x ^ 2 + w, which represents the non linear system x(n + 1) = x(n) * x(n) + w, where x and w are complex numbers, n is a positive integer, and the initial state is x(0) = 0.

Even a simple equation like x ^ 2 + w generates a complex object which has a very irregular frontier and it presents self-similarity. Another surprising property is that the Mandelberot Set is totally connected, which means that given two points of the set we can always connect them with a line entirely contained in the set. Mandelbrot Set of x ^ 2 + w

Mandelbrot couldn't use computers with same computational power we have now. Not to mention the limited graphics capabilities in term of pixels resolution and number of colors. The first images of the Mandelbrot Set required long computation and they were in black and white. We are lucky because we can enjoy those images with mucher rich details and colors.

In order to represent the Mandelbrot Set of equation x ^ 2 + w on the screen of a computer, we have to map the pixels of the screen to a sample of points of the complex plane. Basically we need to take samples which are distributed as in a rectangular grid of arbitrary dimension.

For each pixel (x, y) of the screen we assign a point p = (px, py) of the grid in the complex plane, we set w = px + py i, and we iterate the system equation from n = 0 to n <= N, until |x(n)| > 2 or n = N, where N is the maximun number of iterations.

Using this process, we generate for each point p a different orbit of state variable x or sequence of values s = x(0), x(1), x(2), ..., x(n). Finally we assign a color the each pixel applying an arbitrary function of the orbit s, and last value of iteration index n.

NextFractal can generate the Mandelbrot Set of equation x ^ 2 + w with a simple M script. Let's consider the region of the complex plan which includes interval [-3.0, 0.0] on X axis and interval [-1.5, 1.5] on Y axis. Let's assume the maximum number of iterations N is 200, and the background color is black, represented by color components (alpha = 1, red = 0, green = 0, blue = 0). Under those assumptions, the script is:

```fractal {
orbit [<-3.0,-1.5>,<0.0,1.5>] [x,n] {
loop [0, 200] (|x| > 2) {
x = x * x + w;
}
}
color [(1,0,0,0)] {
[#FFFF0000 > #FFFFFFFF, 10];
[#FFFFFFFF > #FF000000, 190];
}
rule (n > 0) [1.0] {
}
}
}
```

Looking at the script, we can easily identify the region represented by two corner points [<-3.0,-1.5>,<0.0,1.5>], the iteration interval [0, 200], the loop terminiation condition |x| > 2, the system equation x = x * x + w, the background color (1,0,0,0), and the rule which computes the color returning the element n - 1 of a linear gradient when n > 0. We can also notice the array [x,n] which represents the internal state vector, and the opacity level [1.0] in the color rule.

We can see in the image generated by NextFractal that the Mandelbrot Set has an irregular frontier with many tentacles departing from the central bulb. We can't immidiately see them, but there are very thin tentacles all around the central bulb. Mandelbrot Set of x ^ 2 + w

Let's change the region and get close to the frontier of the Mandelbrot Set to see more details. The more we get close, the more details we find, and we may also find copies of the whole Mandelbrot Set.

The amount of details depends on the maximun number of iterations N, the higher is the value the more details we find. Unfortunately floating point numbers have a finite resolution, so we can't continue zooming more than a certain limit. The amount of details makes the Mandelbrot Set one of the most complex objects in Geometry. Upper bulb with tentacles Upper bulb with antenna Left bulb with tentacles Left bulb with antenna

## From Mandelbrot Set to Julia and Fatou Sets

The Mandelbrot Set is a map which describes the chaotic behavior of the dynamic system represented by equation x ^ 2 + w. Mandelbrot demonstrated that there is connection between Deterministic Chaos and Fractals. He stuied the relation between the Mandelbrot Set and a family of equations defined by mathematicians Gaston Julia and Pierre Fatou.

From the Mandelbrot Set we can derive new Fractals, which we call Julia Sets and Fatou Sets. They are generated from the same equation of the Mandelbrot Set, but with a different initial state.

Actually the Mandelbrot Set is a map of all possible Julia and Fatou Sets. Each point inside the Mandelbrot Set generates a Julia Set, and each point outside the Mandelbrot Set generates a Fatou Set. All those sets have similar fractal properties, with the exception that Julia Sets are totally connected as the Mandelbrot Set, but on contrary Fatou Sets are not connected (and for that reason they are also called fractal dust).

The script for generating Julia and Fatou Sets is very similar to the script for generating the Mandelbrot Set. They differ for the initial values of w and x. For Julia and Fatou Sets w is a constant and x is a variable, where the constant w determines the shape of the fractal:

```fractal {
orbit [<-1.5,-1.5>,<1.5,1.5>] [x,n] {
begin {
x = w;
w = <0.28,0.53>;
}
loop [0, 200] (|x| > 2) {
x = x * x + w;
}
}
color [(1,0,0,0)] {
[#FFFF0000 > #FFFFFFFF, 10];
[#FFFFFFFF > #FF000000, 190];
}
rule (n > 0) [1.0] {
}
}
}
```

NextFractal provides tools for generating Julia and Fatou Sets from a selected constant w. Usually we don't need to insert the begin statement in the script, unless we want to force a specific value of constant w as in the example above. NextFractal can handle the initial state automatically for us. Since Julia and Fatou Sets are basically the same from the point of view of the computing algorithm, NextFractal doesn't make any distinction between Julia Sets and Fatou Sets. Julia Set for w = 0.28 + 0.53i or Lapin de Douady

Mandelbrot Set and Julia and Fatou Sets are deeply interconnected by the system equation. We can observe that the shape of the Julia Set or Fatou Set for constant w = wx + wy i reflects the shape of Mandelbrot Set around the same point w of complex plane.

NextFractal provides a tool for generating a preview of Julia Set or Fatou Set for any point complex plane. We can use the Mandelbrot Set to predict the shape of the Julia Set or Fatou Set. Julia Set or Seahorse Julia Set or Dragon Fatou Set or Fractal dust Fatou Set or Fractal dust 