# Understanding the Equation for the Lyapunov Exponent

I'm trying to calculate the Lyapunov exponent for a simple dynamical system, but I think I have misunderstood the equation. My calculations constantly lead to zero, although I'm varying initial conditions and other parameters and the system definitely is not stable but chaotic when I'm plotting it. I can't seem to figure out what's wrong, especially since when I look at the equation and only realize that the Lyapunov exponent always should be zero! Obviously my understanding is lacking!

The equation I have used is

$$\lambda= \lim_{n → \infty} \frac{1}{n} \sum\limits^{n-1}_{i=0} \log \left |f'(x_i) \right|$$

When $n\rightarrow \infty$ I think that the Lyapunov exponent, $\lambda$, should be zero because of the $1/n$ factor, so what am I not understanding? I'm also feeling a bit confused about what the iterator variable, $i$, is. Is it the time step? But shouldn't the Lyapunov exponent compare trajectories to each other? How are these included in the equation? I feel like I have not understood the definition of the Lyapunov exponent, so I hope someone can explain a little!

• keep in mind your sum is also dependent on n. If the sum increases faster than ~n the exponent will not be zero. Commented Jan 29, 2016 at 1:25
• Thanks! I realized that my calculations were actually not wrong (I hope). I got the sum 89 and divided it with the number of iterations 400, but my program estimated 89/400 to be 0.0 instead of 0.22. I just had to convert the iteration number to a float... sigh Commented Jan 29, 2016 at 14:57
• First law of numerical physics: The code is always broken :) Commented Jan 29, 2016 at 16:27

$$\lambda= \lim_{n → \infty} \frac{1}{n} \sum\limits^{n-1}_{i=0} \log \left |f'(x_i) \right|$$

When $n\rightarrow \infty$ I think that the Lyapunov exponent, $\lambda$, should be zero because of the $1/n$ factor, so what am I not understanding?

No, the number of summands in your sum is going towards $∞$ as fast as your $\frac{1}{n}$ factor is going towards $0$. For finite $n$ (i.e., in application), the equation means that you get as many values of $\left |f'(x_i) \right|$ as you can and average them.

I'm also feeling a bit confused about what the iterator variable, $i$, is. Is it the time step?

If by time step you mean the time step of integrating a continous-time system (i.e., a differential equation), then you are applying the wrong formula. (Still, applying this formula should give you something different from $0$, just not the Lyapunov exponent.)

The above formula only works for discrete-time systems (i.e., maps), whose iterations you may call time steps.

But shouldn't the Lyapunov exponent compare trajectories to each other? How are these included in the equation?

As said above, the equation you are using only works for maps, which have no trajectories. Suppose the current state of our system is $x_i$ and the perturbed state is $x_i+ε$ (with $ε≠0$ for a change). The separation of your perturbed system from your unperturbed one at the next time step is $f(x_i+ε) − f(x_i)$. And the ”local” Lyapunov exponent $λ_i$ – i.e., the Lyapunov point for the very point $x_i$ – is:

$$λ_i = \lim_{ε→0} \log \left | \frac{f(x_i+ε) − f(x_i)}{ε} \right | = \log \left | \lim_{ε→0} \frac{f(x_i+ε) − f(x_i)}{ε} \right | = \log \left | f'(x_i) \right |$$

In the last step, we use the very definition of $f'$. (To get the “global” Lyapunov exponent, just average over the local ones.)