Lyapunov Fractals

Lyapunov fractals are very interesting. The basic formula rx(1 – x) is well-known from Bifurcation diagrams. In Mandelbrot sets, the parameter r is the current point (in fact, this is the Lambda preset). Nonetheless these fractals look completely different from other common fractals.

Basic idea

In Lyapunov fractals, the most important input is a sequence that consists of two characters. These characters represent the value of r in the formula given above. The character “a” in the sequence is the x-coordinate while “b” is the y-coordinate of the current point.
So, for instance, if the current point is 1:2 and the sequence is [a,b,b], then the sequence actually represents the values [1,2,2,1,2,2,1,2,2,…] and hence first three values of the orbit are 0.5 (the start value), 10.5(1 – 0.5) = 0.25, 20.25(1 – 0.25) = 0.375, …
The final color is then determined using the lyapunov exponent. If you want to know more, Wikipedia provides an amazing article.

Lyapunov fractals in Android

Apart from Fractview, there are currently no apps that can draw lyapunov fractals in the Google App Store (based on a quick search on 2018-02-17). There used to be a nice app by Matthias Urban who still hosts his app’s source on github, called “Ljapunow Fractals”. Thanks to Matthew who provided me with a working copy of the app that is unfortunately not available in the playstore anymore.

Tweaks in Matthias Urban’s Ljapunow Fractals

Matthias Urban’s app contained many parameters, amongst them a parameter “Warm Up” that basically initializes the sequence with some amount of iterations. This parameter can be used to add some perturbation to the sequence (if the WarmUp value is not a multiple of the length of the sequence).
Another parameter was the trigger for this blog post: Matthias Urban uses three parameters for lyapunov fractals, a, b, and also c. Unfortunately, “c” is not used for 3D-Lyapunov fractals (that would be sooo cool…), instead “c” is the negated previous value. I could not find a particular use for “c”, and it is also not used for Lyapunov fractals in the demos of Matthias’ app (it is used for Newton sets there).

New Lyapunov Program

In Fractview, it is not possible to easily add a third parameter “c”, mainly because “c” is used for the coordinates of the current pixel. Nonetheless, I implemented an improved version of the Lyapunov preset. It provides the following tweaks:

The warm-up parameter

The following image shows Zirkony Zity with a Warm Up of two: The possibility to use a function different from r * z * (1 – z)

The following image uses “r * z * exp(z)” And this use uses “r * cos z”. Neat, right? Hint: If you use other formulas, you should use a root of the first derivation of Function for the Init parameter (for instance, the exp-fractal above uses -1 while the cos-fractal uses 0 as Init value).

Custom values in the sequence

Now, it is possible to use not only a and b but to enter any expression for r in the sequence. To simulate the c parameter of “Ljapunow Fractals”, use “-a” or “-b”, depending on the previous element. You can also use other expressions that return a real value for r. In the following image, I use the sequence [a,a,a,a, 1/z, b,b,b,b,1/z] (z is the current value of the sequence): All this has a price though – the more custom parameters,  the more chaotic the border of the fractal becomes.