CAPD DynSys Library  5.2.0
capd::dynsys::DynSys< MatrixT > Class Template Referenceabstract

Class dynsys is an abstract class representing a discrete dynamical system. More...

#include <capd/dynsys/DynSys.h>

Public Types

typedef MatrixT MatrixType
 
typedef MatrixType::RowVectorType VectorType
 
typedef MatrixType::ScalarType ScalarType
 
typedef capd::vectalg::Norm< VectorType, MatrixTypeNormType
 

Public Member Functions

virtual VectorType Phi (const ScalarType &t, const VectorType &iv)=0
 Computes value of function (usually numerical scheme for an ODE) at time t and point iv. More...
 
virtual MatrixType JacPhi (const ScalarType &t, const VectorType &iv)=0
 Computes derivative of function (usually numerical scheme for an ODE) at time t and point iv. More...
 
virtual VectorType Remainder (const ScalarType &t, const VectorType &iv, VectorType &out_enc)=0
 Computes and returns bound for local error of a function (for instance if Phi is finite Taylor series of a map then this method computes bound for Lagrange remainder). If DynSys is an ODE, then out_enc contains enclosure of trajectories over the time step. If the function cannot validate existence of solutions to ODE over the time step, out_enc might be in an inconsistent state. More...
 
virtual ScalarType Lipschitz (const ScalarType &t, const VectorType &iv, NormType &n)
 this function returns Lipschitz contants for maps. It should be overriden in classes implementing flows. More...
 
virtual VectorType enclosure (const ScalarType &t, const VectorType &x)=0
 Used for ODEs. It verifies the existence of solutions to IVP at time t and set of initial conditions x over the time step. If the function succeeds, a rigorous bound for the trajectories is returned. Otherwise, an exception is thrown. More...
 
virtual void encloseC0Map (const ScalarType &t, const VectorType &x, const VectorType &xx, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, MatrixType &o_jacPhi)=0
 For given set xx, time t and a point x from the set xx It simultaneously computes and returns enclosures for: More...
 
virtual ScalarType getStep () const
 Returns time step of the dynamical system. By default it returns one - time step for discrete DS (maps). Shall be overridden in classes that implement numerical schemes for ODEs. More...
 
virtual ~DynSys ()
 

Detailed Description

template<typename MatrixT>
class capd::dynsys::DynSys< MatrixT >

Class dynsys is an abstract class representing a discrete dynamical system.

It is assumed that the generator Psi of the dynamical system decomposes into Psi=Phi+Omega where Phi is a polynomial and Omega is the remainder. A realization of the class must implement three methods: Phi - the interval enclosure of the polynomial part JacPhi - the interval enclosure of the jacobian of Phi Remainder - an enclosure of the remainder Omega. Although the class represents a discrete dynamical system, it may be also used with time t translations along trajectories of an ODE. This is done in the class OdeNum inheriting from DynSys and defined in the sequel.

Member Typedef Documentation

◆ MatrixType

template<typename MatrixT >
typedef MatrixT capd::dynsys::DynSys< MatrixT >::MatrixType

◆ NormType

template<typename MatrixT >
typedef capd::vectalg::Norm<VectorType,MatrixType> capd::dynsys::DynSys< MatrixT >::NormType

◆ ScalarType

template<typename MatrixT >
typedef MatrixType::ScalarType capd::dynsys::DynSys< MatrixT >::ScalarType

◆ VectorType

template<typename MatrixT >
typedef MatrixType::RowVectorType capd::dynsys::DynSys< MatrixT >::VectorType

Constructor & Destructor Documentation

◆ ~DynSys()

template<typename MatrixT >
virtual capd::dynsys::DynSys< MatrixT >::~DynSys ( )
inlinevirtual

Member Function Documentation

◆ encloseC0Map()

template<typename MatrixT >
virtual void capd::dynsys::DynSys< MatrixT >::encloseC0Map ( const ScalarType t,
const VectorType x,
const VectorType xx,
VectorType o_phi,
VectorType o_rem,
VectorType o_enc,
MatrixType o_jacPhi 
)
pure virtual

For given set xx, time t and a point x from the set xx It simultaneously computes and returns enclosures for:

  • numerical scheme Phi(t,x),
  • derivative of numerical scheme D_x Phi(t,xx)
  • error of numerical scheme Remainder(t,xx)
  • an enclosure for the trajectories over the time step (ODEs only) If the function cannot compute any of the output results, an exception is thrown and the output parameters o_* might be in inconsistent state.

◆ enclosure()

template<typename MatrixT >
virtual VectorType capd::dynsys::DynSys< MatrixT >::enclosure ( const ScalarType t,
const VectorType x 
)
pure virtual

Used for ODEs. It verifies the existence of solutions to IVP at time t and set of initial conditions x over the time step. If the function succeeds, a rigorous bound for the trajectories is returned. Otherwise, an exception is thrown.

Implemented in capd::dynsys::OdeSolver< MapT, StepControlPolicyT, EnclosurePolicy, CurveT >, capd::dynsys::OdeSolver< typename MapT::MapType >, and capd::dynsys::OdeSolver< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.

◆ getStep()

template<typename MatrixT >
virtual ScalarType capd::dynsys::DynSys< MatrixT >::getStep ( ) const
inlinevirtual

Returns time step of the dynamical system. By default it returns one - time step for discrete DS (maps). Shall be overridden in classes that implement numerical schemes for ODEs.

Reimplemented in capd::dynsys::OdeSolver< typename MapT::MapType >, and capd::dynsys::OdeSolver< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.

◆ JacPhi()

◆ Phi()

◆ Remainder()

template<typename MatrixT >
virtual VectorType capd::dynsys::DynSys< MatrixT >::Remainder ( const ScalarType t,
const VectorType iv,
VectorType out_enc 
)
pure virtual

Computes and returns bound for local error of a function (for instance if Phi is finite Taylor series of a map then this method computes bound for Lagrange remainder). If DynSys is an ODE, then out_enc contains enclosure of trajectories over the time step. If the function cannot validate existence of solutions to ODE over the time step, out_enc might be in an inconsistent state.

Implemented in capd::dynsys::OdeSolver< MapT, StepControlPolicyT, EnclosurePolicy, CurveT >, capd::dynsys::OdeSolver< typename MapT::MapType >, and capd::dynsys::OdeSolver< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.