The subject of this post is the use of an imaginary power instead of z2 in the standard Mandelbrot formula. Doing this with a programming language that doesn’t support complex numbers is tricky which is why I failed to correctly implement it, twice, more to do with the mathematics involved than the coding. I’ve mentioned the failed implementations because they produce sufficiently interesting pictures to be retained as specific fractal types in Saturn and Titan, the fractal types covered in this post are:
- Zcpac (cp for complex power, ac for add constant)
- Bad Complex Power
- Bad Complex Power 2
The basic form of the formula is:
zn+1 = znα + c
where α is a complex number and c is the location in the complex plane. There are also the corresponding Julia variants where c is replaced with β which is also a complex number, the Julia variants aren’t dealt with in this post.
For this post only the imaginary component of α will be set.
The first picture has bailout limit of 16 and isn’t at all promising:
Increasing the imaginary power slightly results in the following which slightly better:
The fractal is sensitive to the bailout value, increasing it to 160 and the fractal becomes much more interesting:
Increasing the bailout value to 500:
Zooming in again:
So far the fractal has been coloured using the default method “integer” and uses the first default colour map with an offset of 30. To make the fractal more interesting the colour map and colouring method can be changed, using colour method “absolute log of average change in magnitude, scale = 110, offset = 30” and adjusting the bailout limit still further to 1500 results in:
Elsewhere in this fractal using the colour method “absolute log of fractal dimension of change in magnitude, scale = 140, offset = 30” and a different colour map the following can be found:
For version 3.0.x of Saturn & Titan both Mandelbrot and Julia algorithms are supported by common formulae where any parameter can be substituted with the location in the complex plane, if at least one parameter is substituted the Mandelbrot algorithm will be used otherwise the Julia algorithm will used. Only Zcpac is retained for version 3.0.x, the Bad Complex Power, Bad Complex Power 2 and indeed Zcpac fractals can be produced using a new fractal type called Single Function.
The Single Function fractal formula is:
zn+1 = f1(αzn) + β
where α and β are complex parameters which can be substituted with the location in the complex plane and f1 is a complex function among the functions available are Power, Bad Complex Power (bcp) and Bad Complex Power 2 (bcp2).
The new formula has two complex number parameters instead of one so there are more variations to play with.
The initial bad complex power fractal is much sparser than the version using the correct function and it is much less sensitive to the bailout value, so much lower values can be used. The initial fractal with a power parameter of 0 + i and default settings (except colour offset which is set to 30) is also not that promising:
Going to a zoomed area with a limit of 20 and power changed to 0 + 1.2i and the colouring unchanged:
Changing the colour method to “variance of angle, scale = 100, offset = 30” and colour map transforms the fractal to this:
Finally there is bad complex power 2 which has by far the most interesting initial form with the default settings:
Here is an example of a bcp2 fractal using the colouring method “absolute log of standard deviation of change in magnitude, scale = 390, offset = 30” with a bailout of 160.
All these fractals were generated using the Mandelbrot algorithm. In General for these fractals the best range of powers appears to 0 + i to 0 + 2i, adjustment of the bailout value thins the basic structures that make up the fractal, too high and the fractal disappears, higher values are required when the correct function is used for imaginary powers.