## Image Details

This is another render which employs the Buddhabrot technique, this time applied to the function \(z_{k+1} = z_0\cdot\cos(\overline{z_k})\). Initially, it seems odd that a trigonometric function should produce an interesting fractal using the Mandelbrot algorithm. This algorithm relies on the fact that some points generate sequences that diverge to infinity, while points generate sequences that follow orbits that remain near the origin. Our normal intuition about the cosine function is that it is bounded between \(-1\) and 1, hence it is surprising that any sequence of numbers obtained by taking cosines should diverge. However, our normal intuition comes from applying the cosine function to real numbers. Here, we are applying it to complex numbers.

Recall that \(e^{ix} = \cos(x) + i\sin(x)\). Similarly, as the cosine function is symmetric, \(e^{-ix} = \cos(x) – i\sin(x)\). Adding these two equations and solving for \(\cos(x)\), we get

\(\displaystyle \cos(x) = \frac{e^{ix}+e^{-ix}}{2}\).

This formula looks a lot like the hyperbolic cosine. In general, they hyperbolic cosine of \(x\), noted as \(\cosh(x)\) is given by

\(\displaystyle \cosh(x) = \frac{e^{x}+e^{-x}}{2}\).

This is *almost* what we got above, though there seems to be a missing factor of \(i\). That is, \(\cos(x) = \cosh(ix)\). By a similar derivation, we get the identity \(\sin(x) = \sinh(ix)/i\), or equivalently, \(\sin(ix) = i\sinh(x)\). We will apply these identities in a minute, but first we need to recall a trigonometry fact: if you have taken trigonometry, you may know that

\(\cos(x+y) = \cos(x)\cos(y) – \sin(x)\sin(y)\).

If you have never seen this before, there are a number of ways of deriving this formula, though I am fond of a method which makes use of Euler’s formula.

As any complex number can be expressed as the sum of its real and imaginary components, we have

\(\cos(a+bi) = \cos(a)\cos(bi) – \sin(a)\sin(bi) = \cos(a)\cosh(b) – i\sin(a)\sinh(b)\)

Here’s where it gets cool: consider the purely imaginary number \(0+bi\):

\(\cos(0+bi) = \cos(0)\cosh(b)-i\sin(0)\sinh(b) = \cosh(b)\).

So the cosine function behaves like the cosine function we know and love when applied to real numbers, but behaves like the hyperbolic cosine function when applied to purely imaginary numbers. What’s neat about this is that \(\cosh(x)\) diverges to infinity as \(x\) gets large. This means that there is some reason to expect that some points in the complex plane will generate divergent orbits when iterated under the function \(z_{k+1} = z_0\cdot\cos(\overline{z_k})\).

In fact, applying this function gives rise to a fractal set that looks like this:

Finally, applying the nebulabrot rendering technique to this function and using the same coloring method discussed previously gives us the image shown at the top of this post. That image contains 5 layers, with the bluest layer representing points that escape in less than 10 iterations, and the reddest layer representing point that escape between 10,000 and 100,000 iterations.