Definition of the Mandelbrot set#

Let \(f : \mathbb{C} \mapsto \mathbb{C}\) be the quadratic function

\[ f(z) = z^2 + c \]

with \(c \in \mathbb{C}\). Now, consider the discrete time dynamical system generated by iterating this function with \(z_0 = 0\), i.e.

\[\begin{split} \begin{aligned} z_0 & = 0 \\ z_{k+1} & = z_k^2 + c \quad \forall \ k \geq 1. \end{aligned} \end{split}\]

For some values of \(c\), \(z_k\) remains bounded as \(k \to \infty\). For others, it blows up. This is how the Mandelbrot set is defined. It is the set of points \(c \in \mathbb{C}\) such that

\[ \lim_{k \to \infty} \vert z_k \vert < \infty. \]

For example \(c = 1\) gives rise to the sequence 0, 1, 2, 5, 25, …, which tends to infinity. Hence, \(c = 1\) is not an element of the Mandelbrot set. On the other hand, \(c=-1\) yields 0, -1, 0, -1, 0, …, which is bounded. As such \(c = -1\) does belong to the Mandelbrot set.

Some analytical results#

This definition of the Mandelbrot is not very helpful when it comes to computation as we would need to test every possible values of \(c\) and iterate for long enough to see if the iteration tends to infinity or not. Luckily, we do have a few simple analytical results which help us narrow down the portion of the complex plane we need to scan.

First, it is easy to show by induction that if \(\vert z_k \vert > 2\) for a particular \(c \in \mathbb{C}\), then the iteration diverges and \(c\) is not the Mandelbrot set. This result directly implies that the Mandelbrot set is inscribed in a circle of radius \(2\), i.e. any \(c\) such that \(\vert c \vert > 2\) is not in the set. This already narrows down the portion of the complex plane we need to scan.

Main cardioid#

The most prominent piece of the Mandelbrot set is known as the main cardioid. It is the region of the complex plane for which the map \(f(z) = z^2 + c\) has an attracting fixed point. It can be shown that its border is given by the set of points \(c\) such that

\[ c = \dfrac{e^{i\theta}}{2} \left( 1 - \dfrac{e^{i\theta}}{2} \right). \]

This is the equation of a cardioid.

After some simple manipulations, we can come up with a simple test to check whether a given \(c\) is in the main cardioid or not. Let \(x\) (resp. \(y\)) be the real (resp. imaginary) part of \(c\) and \(p = \sqrt{x^2 + y^2}\). The point \(c = x + i y\) is in the main cardioid (and hence in the Mandelbrot set) if

\[ x \leq p - 2 p^2 + \dfrac{1}{4}. \]

This test can equivalently be performed without the square root. Let \(q = \left( x - \dfrac{1}{4} \right)^2 + y^2\). Then \(c = x + iy\) is in the Mandelbrot set if it verifies

\[ q \left( q + \left(x - \dfrac{1}{4} \right) \right) \leq \dfrac{1}{4}y^2. \]

This simple check will save us a tremendous amount of computation.

Period-2 bulb#

Another region of interest is the circle on the left of the main cardioid, attached to it as the point \(c=-\dfrac{3}{4}\). This region of the complex plane correspond to values of \(c\) for which the iteration has an attracting cycle of period 2. Using simple arguments, it can be shown that it is an actual circle of radius \(\dfrac{1}{4}\) centered at \(c = -1\). As such, the following test

\[ \left( x + 1 \right)^2 + y^2 \leq \dfrac{1}{16} \]

will let us know if \(c\) is in the Mandelbrot or not.

There are infinitely many other bulbs tangent to the main cardioid. These are however not exact circles and we do not have such simple tests for them. Simply testing for the main cardioid and the period-2 bulb already accounts for a significant portion of the whole Mandelbrot set and will be sufficient to massively reduce the computation time needed to render the Mandelbrot set.