The CAPD library and its applications
Daniel Wilczak
Institute of Computer Science and Computational MathematicsJagiellonian University, Krakow, Poland
June 11, 2014
Outline:
1 Short history of the CAPD
2 Introduction to CAPD by short examples3 Applications
periodic orbits for the Lorenz systemchaotic dynamics in the Rossler systemcontinuation of stable elliptic periodic orbits
http://capd.ii.uj.edu.pl
Computer Assisted Proofs in Dynamics
http://capd.ii.uj.edu.pl
1992 Marian MrozekFirst version of rigorous ODE solver.
1995 M.Mrozek, K.MischaikowEncyclopedia Britanica:paper on chaos in the Lorenz equations amog4 best results in mathematics in 1995
2001CAPD publically available at http://capd.ii.uj.edu.pl
1992-2014continuously developed at the Jagiellonian University
http://capd.ii.uj.edu.pl
1992 Marian MrozekFirst version of rigorous ODE solver.
1995 M.Mrozek, K.MischaikowEncyclopedia Britanica:paper on chaos in the Lorenz equations amog4 best results in mathematics in 1995
2001CAPD publically available at http://capd.ii.uj.edu.pl
1992-2014continuously developed at the Jagiellonian University
http://capd.ii.uj.edu.pl
1992 Marian MrozekFirst version of rigorous ODE solver.
1995 M.Mrozek, K.MischaikowEncyclopedia Britanica:paper on chaos in the Lorenz equations amog4 best results in mathematics in 1995
2001CAPD publically available at http://capd.ii.uj.edu.pl
1992-2014continuously developed at the Jagiellonian University
The CAPD 4.0 in 2014:
core CAPD: (Multiprecision) IA, linear algebra (dense)
capdRedHom: (co)-homology software
Pawe l Pilarczyk Pawe l D lotko Mateusz Juda
capdDynSys: validated numerics for dynamical systems
Daniel WilczakPiotr Zgliczynski Tomasz Kapela
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
The capdDynSys 4.0 in 2014:
C0 − C1 − Cr ODE solvers
Poincare maps and their r−th order derivatives
Differential inclusions
supports: double, long double, multiprecision, interval,mpfr-intervals
Some applications:
C0-computations;chaotic dynamics for many textbook systems, bifurcations for reversible systems
C1-computations;periodic orbits (in quite high dimensions, like 300 for the N-body problem),
hyperbolicity, homoclinic and heteroclinic solutions for ODEs both to equilibria
and periodic solutions
C2-computations;cocoon bifurcations, homoclinic tangencies
C3 − C5 computations;bifurcations of periodic orbits for ODEs, KAM stability of periodic solutions,
invariant tori around periodic orbits
Compilation of the library:
./configure [options]
make -j (takes some time, more than 120 000 lines of code)
Basic options:
--with-mpfr
--with-wx-config (internal graphics kernel)
Building own programs:
g++ main.cpp -o main ‘capd-config --cflags --libs‘
Optional scripts:
‘capd-gui-config --cflags --libs‘
‘mpcapd-config --cflags --libs‘
Compilation of the library:
./configure [options]
make -j (takes some time, more than 120 000 lines of code)
Basic options:
--with-mpfr
--with-wx-config (internal graphics kernel)
Building own programs:
g++ main.cpp -o main ‘capd-config --cflags --libs‘
Optional scripts:
‘capd-gui-config --cflags --libs‘
‘mpcapd-config --cflags --libs‘
Compilation of the library:
./configure [options]
make -j (takes some time, more than 120 000 lines of code)
Basic options:
--with-mpfr
--with-wx-config (internal graphics kernel)
Building own programs:
g++ main.cpp -o main ‘capd-config --cflags --libs‘
Optional scripts:
‘capd-gui-config --cflags --libs‘
‘mpcapd-config --cflags --libs‘
Compilation of the library:
./configure [options]
make -j (takes some time, more than 120 000 lines of code)
Basic options:
--with-mpfr
--with-wx-config (internal graphics kernel)
Building own programs:
g++ main.cpp -o main ‘capd-config --cflags --libs‘
Optional scripts:
‘capd-gui-config --cflags --libs‘
‘mpcapd-config --cflags --libs‘
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
Main header files
#include "capd/capdlib.h"
#include "capd/mpcapdlib.h" // for multiprecision
#include "capd/krak/krak.h" // for graphics kernel
Defined types:
interval, MpFloat, MpInterval
Algebra:
DVector, LDVector, IVector, MpVector, MpIVector[Prefix]Matrix[Prefix]Hessian[Prefix]Jet
Automatic differentiation:
[Prefix]Map
ODE solvers:
[Prefix]OdeSolver, [Prefix]CnOdeSolver[Prefix]TimeMap, [Prefix]CnTimeMap[Prefix]PoincareMap, [Prefix]CnPoincareMap
The Rossler system
x = −y − z
y = x + by
z = b + z(x − a)
Theorem (Zgliczynski 1997)
For a = 5.7 and b = 0.2 the system is Σ2-chaotic.
The Rossler system
x = −y − z
y = x + by
z = b + z(x − a)
Theorem (Zgliczynski 1997)
For a = 5.7 and b = 0.2 the system is Σ2-chaotic.
Topological tool
Theorem (Zgliczynski, 1997)
If a map f : N ∪M → R2 looks like this
M NfHNL
fHML
then it is Σ2 chaotic.
any binifinite sequence of symbols N and M is realized by atrajectory of f
each periodic sequence of symbols N and M is realized by aperiodic trajectory of f with the same period
Topological tool
Theorem (Zgliczynski, 1997)
If a map f : N ∪M → R2 looks like this
M NfHNL
fHML
then it is Σ2 chaotic.
any binifinite sequence of symbols N and M is realized by atrajectory of f
each periodic sequence of symbols N and M is realized by aperiodic trajectory of f with the same period
Topological tool
Theorem (Zgliczynski, 1997)
If a map f : N ∪M → R2 looks like this
M NfHNL
fHML
then it is Σ2 chaotic.
any binifinite sequence of symbols N and M is realized by atrajectory of f
each periodic sequence of symbols N and M is realized by aperiodic trajectory of f with the same period
Poincare section
Π = {(x , y , z) : x = 0, x = −(y + z) > 0}
-5
0
5
10
x
0
y
0
10
20
z
Wall time reported in the article:
50 hours (180 000 sec) on 50MHz processor
Poincare section
Π = {(x , y , z) : x = 0, x = −(y + z) > 0}
-5
0
5
10
x
0
y
0
10
20
z
Wall time reported in the article:
50 hours (180 000 sec) on 50MHz processor
The Lorenz system
x = 10(−x + y)y = 28x − y − xz
z = xy − 83z
Poincare section
Π = {(x , y , z) : z = 27, z < 0}
Theorem (Z. Galias, W. Tucker, 2011)
The Poincare map P : Π → Π has exactly 8798 periodic orbits of
periods 2-16.
The Lorenz system
x = 10(−x + y)y = 28x − y − xz
z = xy − 83z
Poincare section
Π = {(x , y , z) : z = 27, z < 0}
Theorem (Z. Galias, W. Tucker, 2011)
The Poincare map P : Π → Π has exactly 8798 periodic orbits of
periods 2-16.
The Lorenz system
x = 10(−x + y)y = 28x − y − xz
z = xy − 83z
Poincare section
Π = {(x , y , z) : z = 27, z < 0}
Theorem (Z. Galias, W. Tucker, 2011)
The Poincare map P : Π → Π has exactly 8798 periodic orbits of
periods 2-16.
Π± = {(x , y , z) : z = 27, z ∈ R±}
P± : Π± 7→ Π∓
Interval Newton Method applied to:
F : R4p ∋
x1x2...
x2p
7→
x1 − P−(x2p)x2 − P+(x1)
...x2p − P+(x2p−1)
∈ R4p
Validation of zeros of maps
Interval Newton Operatorf : Rn → R
n – smoothX ⊂ R
n - a convex, compact setx0 ∈ int(X )
N(f ,X , x0) := x0 − conv(Df (X ))−1f (x0)
Theorem
If
N(f ,X , x0) ⊂ int(X )
then f has a unique zero x∗ ∈ int(X ). Moreover x∗ ∈ N(f ,X , x0).
Toy example: f (x) = x(x2 + 2) + 1Approx zero of f is x∗ ≈ −0.453398.....
x0 = −0.5 f (x0) = −0.125
X = [−1, 0] Df (X ) ⊂ [2, 5]
N(f ,X , x0) ⊂ [−0.475,−0.4375] ⊂ intX = (−1, 0)
Validation of zeros of maps
Interval Newton Operatorf : Rn → R
n – smoothX ⊂ R
n - a convex, compact setx0 ∈ int(X )
N(f ,X , x0) := x0 − conv(Df (X ))−1f (x0)
Theorem
If
N(f ,X , x0) ⊂ int(X )
then f has a unique zero x∗ ∈ int(X ). Moreover x∗ ∈ N(f ,X , x0).
Toy example: f (x) = x(x2 + 2) + 1Approx zero of f is x∗ ≈ −0.453398.....
x0 = −0.5 f (x0) = −0.125
X = [−1, 0] Df (X ) ⊂ [2, 5]
N(f ,X , x0) ⊂ [−0.475,−0.4375] ⊂ intX = (−1, 0)
Validation of zeros of maps
Interval Newton Operatorf : Rn → R
n – smoothX ⊂ R
n - a convex, compact setx0 ∈ int(X )
N(f ,X , x0) := x0 − conv(Df (X ))−1f (x0)
Theorem
If
N(f ,X , x0) ⊂ int(X )
then f has a unique zero x∗ ∈ int(X ). Moreover x∗ ∈ N(f ,X , x0).
Toy example: f (x) = x(x2 + 2) + 1Approx zero of f is x∗ ≈ −0.453398.....
x0 = −0.5 f (x0) = −0.125
X = [−1, 0] Df (X ) ⊂ [2, 5]
N(f ,X , x0) ⊂ [−0.475,−0.4375] ⊂ intX = (−1, 0)
Validation of zeros of maps
Interval Newton Operatorf : Rn → R
n – smoothX ⊂ R
n - a convex, compact setx0 ∈ int(X )
N(f ,X , x0) := x0 − conv(Df (X ))−1f (x0)
Theorem
If
N(f ,X , x0) ⊂ int(X )
then f has a unique zero x∗ ∈ int(X ). Moreover x∗ ∈ N(f ,X , x0).
Toy example: f (x) = x(x2 + 2) + 1Approx zero of f is x∗ ≈ −0.453398.....
x0 = −0.5 f (x0) = −0.125
X = [−1, 0] Df (X ) ⊂ [2, 5]
N(f ,X , x0) ⊂ [−0.475,−0.4375] ⊂ intX = (−1, 0)
Validation of zeros of maps
Interval Newton Operatorf : Rn → R
n – smoothX ⊂ R
n - a convex, compact setx0 ∈ int(X )
N(f ,X , x0) := x0 − conv(Df (X ))−1f (x0)
Theorem
If
N(f ,X , x0) ⊂ int(X )
then f has a unique zero x∗ ∈ int(X ). Moreover x∗ ∈ N(f ,X , x0).
Toy example: f (x) = x(x2 + 2) + 1Approx zero of f is x∗ ≈ −0.453398.....
x0 = −0.5 f (x0) = −0.125
X = [−1, 0] Df (X ) ⊂ [2, 5]
N(f ,X , x0) ⊂ [−0.475,−0.4375] ⊂ intX = (−1, 0)