ChaosPro Home
Introduction
What's New
Palettes
Using Formulas
Layering in ChaosPro
Rendering
Fractal Parameter Windows
Windows
Menu
3D Transformations
Animations
Formula Compiler
Compatibility
Fractal Type Reference
Attractor
Bifurcation - Theory
Dynamic System
Escapetime
IFS
LSystem
Lyapunov Space - Theory
Plasma
Quaternions
Tutorials
Appendix
CHAOSPRO 4.0
Release 4.0
.

Theory

The Lyapunov Space is similar to a Bifurcation diagram. There a formula was used, which - with some creative mind - could be interpreted as the development of a population. Depending on the growth rate there was shown, whether a balance exists in the population (an attractor for the system) and if there is one, what type of balance (the lenght of this eventually existing cyclus).

The Lyapunov Space now has 2 growth rates, which vary in a periodic fashion.

This 'periodic fashion' is defined by a sequence string. For example AAABB means the following:

Iteration step 1: Take growth rate A
Iteration step 2: Take growth rate A
Iteration step 3: Take growth rate A
Iteration step 4: Take growth rate B
Iteration step 5: Take growth rate B
(repeating sequence...)
Iteration step 6: Take growth rate A
Iteration step 7: Take growth rate A
Iteration step 8: Take growth rate A
Iteration step 9: Take growth rate B
Iteration step 10: Take growth rate B

Now we have to determine whether the system behaves chaotic or stable. We do this by calculating the so called Lyapunov Exponent, which is defined as follows:

lim    log( |f'(x1) * f'(x2) * ... * f'(xn) | )
n->oo  -----------------------------------------
                          n

One can interpret this exponent as follows:

If negative, then the average derivation of f at the orbit points is smaller than 1, i.e. the system is contractive. Otherwise the average derivation is greater than 1, so the system is expansive, it behaves chaotic.

In practice we cannot calculate a limes. So we stop after some iterations (after Maxit iterations). In order to improve the approximation of the Lyapunov Exponent we start calculating after m iterations to give the system a chance to decide where to go.

So we calculate:

log( |f'(xm) * f'(xm+1) * ... * f'(xm+n) | )
-----------------------------------------
                 n+1

Now an example algorithm could look as follows:

X=0.5            ; the population start value...
A=2.3           ; Growth rate A
B=0.8           ; Growth rate B
Sequence=AABAB  ; Sequence: How should A and B vary?
; Just iterate several times
; for improving the exponent

FOR N=1 TO 4000
; R is A or B, see sequence...
X=R*X*(1-X)
NEXT N

; Now lets calculate the Lyapunov Exponent
Sum=1
FOR N=1 TO 6000
; R again is A or B, see sequence...
X = R*X*(1-X)
; now calculate exponent
Sum = Sum * |R-2*R*X|
NEXT N
Exponent=log(Sum)/6000        ; calculate the average