Lyapunov Exponents: C. C. Esporlas National Institute of Physics University of The Philippines
Lyapunov Exponents: C. C. Esporlas National Institute of Physics University of The Philippines
C. C. Esporlas
National Institute of Physics
University of the Philippines
[email protected]
1. Introduction
Not all physical systems follow linear dynamics.
These nonlinear physical systems exhibit chaotic
behaviors that were once difficult to understand or
approximate. Such systems include impulsively
driven mechanical systems, some parts of economics,
digital electronics, weather patterns, turbulent fluid
systems and population dynamics. These systems
occur in times that are discrete rather than continuous
and are modeled using difference equations,
recursion relations or iterated maps.
In population dynamics, chaotic behavior was
discovered by biologist Robert May by studying a
simplified model of population growth. This model is
called the Logistic Map which is simple but contains
key attributes of complex chaotic behavior. The
Logistic Map used in this paper is of the form:
xn +1 = 4rxn (1 xn ) = f ( xn )
n = 0,1, 2,...
(1)
which is a one-dimensional map since the points xn
belong to the one-dimensional space of real numbers.
The sequence x0, x1, x2, ... is called the orbit starting
from x0 which tells the initial population size while r
is the control parameter which accounts for both the
death and birth rates of a certain population.
2. Physics
The chaotic behavior of simple systems such as a
growing population can be observed by analyzing the
behavior of the Logistic Map.
From Equation (1) with 1 xn 0 since if xn
1, xn+1 would be negative which would be unphysical
while 1 r 0.
If some initial population x0 is used, and r 1/4,
xn0 as n, the population always goes extinct. If
1/4 r < 3, the population grows and reaches a
nonzero steady state. But before it goes to a steady
state, as r increases it undergoes an initial transient
behavior which is shown in Figure1. At r=0.2, the
stable fixed point is x=0 starting at r=0.25 the x0 but
as it increases more like at r=0.87, an initial transient
behavior is observed and then it oscillates between
four values which means xn repeats every four
iterations that it has a stable cycle of period 4 unlike
the stable cycle of period 1 at smaller values. This
= ln
=
dn
d0
f
1
ln
n
''
4. Results
( x0 + d 0 ) f ( x0 )
''
(4)
d0
'
1
ln ( f '' ) ( x0 )
n
where we took the lim d00 in the last step. By
applying chain rule to the term in the logarithm in the
last step we get,
n =1
f '' ( x0 ) = f ' ( xi )
(5)
i =0
1 n 1
= lim ln f ' ( xi )
n n
i =0
(6)
n 1
1
'
= lim ln ( f ( xi ) )
n n
i =0
3. Algorithm
To calculate the Lyapunov exponents of the
Logistic Map in Equation (1) we first define the
needed functions which are the logistic map and its
derivative, then we set the range for the control
parameter r which is set at 1 r 0 and lastly the
number of iterations N which can be a very large
number. Now, all we need to get is the current value
of xn with respect to its r. To do this, two empty
arrays are created before implementing the
Appendix
Source Code:
import scipy, pylab
def f(r,x):
return 4*r*x*(1.0-x)
def df(r,x):
return 4*r-8*r*x
N=500
rrange = scipy.linspace(0.1,1,500)
#Create arrays to store lyapunov
#exponents at each parameter value
lexp=[ ]
rlexp=[ ]
for r in rrange:
#Set initial condition
x_n = 0.65
#Remove initial transient iterations
for i in range(100):
x_n=f(r,x_n)
#Bifurcation
rlist=[ ]
x=[]
References
[1] S. Strogatz, Non-Linear Dynamics and Chaos,
Chapter 10, Perseus Books Publishing, 1994.
[2] W. Kinzel and G. Reents. Physics by Computer.
Springer. 1998
for i in range(N):
x_n = f(r,x_n)
rlist.append(r)
x.append(x_n)
pylab.plot(rlist, x, 'r,')
#Estimate lyapunov exponents over N iterations
l=0.0
for i in range(N):
x_n = f(r,x_n)
l = l + scipy.log(abs(df(r,x_n)))
#Get average of lyapunov exponent per iteration
l = l/float(N)
lexp.append(l)
rlexp.append(r)
pylab.plot(rlexp,lexp,'g-')
pylab.show()