Skip to content

A library to calculate Lyapunov exponents and vectors

License

Notifications You must be signed in to change notification settings

ushham/LyapunovExponents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lyapunov Analysis

This library provides a set of calculations for numerically finding Lyapunov exponents and vectors of a given dynamical system.

Outputs

TBC

Maximal Lyapunov Exponent of System

Using the class LyapunovCalculations. This class takes the DynamicalSystem as an input and produces an array of the maximal Lyapunov exponent over time:

    import LyapunovCalculations from lyapunov_calcs

    dyn_sys = DynamicalSystem()
    maximal_exp_arr = LyapunovCalculation(dyn_sys).max_lyapunov_exp()

Backwards Lyapunov Vectors and Exponents

Usage/Examples

The class DynamicalSystem is imported from the script system.py. This class takes the arguments variables, parameters, system equations.

For example, if we want to initialise the Lorenz system (this involves using Sympy):

import DynamicalSystem from system
from sympy import symbols

# Definition of symbols used in definiton
time = symbols('t')
x, y, z = symbols('x, y, z')
sigma, rho, beta = symbols('sigma rho beta')

# Collection of system definitions
variables = [x, y, z]
parameters = [sigma, rho, beta]

lorenz_equations = [
    sigma * (y - x),
    x * (rho - z) - y,
    x * y - beta * z
]

# Initialise dynamical system
lorenz = DynamicalSystem(time, variables, parameters, lorenz_equations)

# Input user defined values of parameters (optional)
parms=[10., 28., 8/3]
lorenz.base_parameters(parms)

Here the system is defined symbolically as:

Lorenz_system

With the following parameters and variables:

Lorenz_parms

License

MIT

About

A library to calculate Lyapunov exponents and vectors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published