|
CAPD DynSys Library
5.2.0
|
The CAPD library provides mechanisms for easy computation of Poincare maps their derivatives. In general the Poincare map is defined by specifying
that defines Poincare section. It is assumed that the function
is smooth and the Poincare section is given as
In the CAPD a Poincare map is seen as a function
rather than a mapping from section to section. Initial point does not need to be on Poincare section
. We can compute intersection point of any trajectory with Poincare section.
We will give an overview on Poincare maps for both cases of rigorous and nonrigorous computations as they differ in details.
Poincare section is an object of class that implements interface defined in class AbstractSection. For user convenience we defined three classes that implement interface AbstractSection. Clearly the user can implement own class if necessary.
for some index
and
.
. We strongly recommend usage of affine sections that are locally orthogonal to the vector field.
. Constructors of this class have exactly the same arguments as of the class Function. In fact class NonlinearSection is derived from class Function. For user convenience we defined the following types for computation in double D, long double LD, multiple precision Mp and in interval arithmetics I, MpI
In the examples below we will show how to use each of these types of Poincare sections. Thus, we will use type NonlinearSection even if the section will be linear - just to demonstrate how to define it.
Given an ODE solver (see section ODEs - nonrigorous methods)
and Poincare section
we define an instance of Poincare map by constructor call
The last argument specifies crossing direction of Poincare section. This is an enumeration type with three possible values
changes sign from minus to plus along trajectory
changes sign from plus to minus along trajectory crossingDirection of the constructor can be skipped. Its default value is capd::poincare::Both.In similar way one can define an instance of IPoincareMap for rigorous computation of Poincare maps.
vectorField, solver, section must exists during usage of object pm as pm holds references to them. In particular this code is incorrect