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

DynSysMap is a proxy to convert any Map into discrete Dynamical System. More...

#include <capd/dynsys/DynSysMap.h>

Public Types

typedef MapT MapType
 
typedef MapType::MatrixType MatrixType
 
typedef DynSys< MatrixType >::VectorType VectorType
 
typedef DynSys< MatrixType >::ScalarType ScalarType
 
typedef DynSys< MatrixType >::NormType NormType
 

Public Member Functions

 DynSysMap (const MapType &map)
 map should implement C1Map concept More...
 
VectorType Phi (const ScalarType &, const VectorType &iv)
 value of a map for a point iv More...
 
VectorType operator() (const ScalarType &, const VectorType &iv)
 value of a map for a point iv More...
 
MatrixType JacPhi (const ScalarType &, const VectorType &iv)
 derivative of a map in a point iv More...
 
MatrixType operator[] (const VectorType &iv)
 derivative of a map in a point iv More...
 
VectorType operator() (const ScalarType &, const VectorType &iv, MatrixType &derivative)
 value and derivative of a map in a point iv More...
 
template<typename SetType >
SetType & operator() (SetType &set)
 it computes image of the set (in give representation) using set.move function More...
 
VectorTypeoperator() (const ScalarType &, VectorType &iv)
 
VectorType Remainder (const ScalarType &, const VectorType &iv, VectorType &)
 because we have explicit formula for a map not only numerical method the remainder term is equal to zero More...
 
virtual void encloseC0Map (const ScalarType &, const VectorType &x, const VectorType &xx, VectorType &o_phi, VectorType &o_rem, VectorType &o_enc, MatrixType &o_jacPhi)
 
ScalarType Lipschitz (const ScalarType &, const VectorType &, NormType &)
 empty implemented - throws exception on use More...
 
VectorType enclosure (const ScalarType &, const VectorType &x)
 
virtual std::string type (void)
 returns name of the class (for backward compatibility) More...
 
virtual ~DynSysMap ()
 
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...
 

Protected Attributes

const MapTypepMap
 

Detailed Description

template<typename MapT>
class capd::dynsys::DynSysMap< MapT >

DynSysMap is a proxy to convert any Map into discrete Dynamical System.

This conversion is needed to use Map as dicrete dynamical systems to move various set representations. This class implements both DynSys and C1Map interface.

MapT should be type implementing C1Map interface i.e. if f is of type MapT then the following expresions should be valid: f(x) - returns value of a map in x, f[x] - returns derivative of a map in x f(x, deriv) returns value of a map and in deriv its derivative.

Member Typedef Documentation

◆ MapType

template<typename MapT >
typedef MapT capd::dynsys::DynSysMap< MapT >::MapType

◆ MatrixType

template<typename MapT >
typedef MapType::MatrixType capd::dynsys::DynSysMap< MapT >::MatrixType

◆ NormType

template<typename MapT >
typedef DynSys<MatrixType>::NormType capd::dynsys::DynSysMap< MapT >::NormType

◆ ScalarType

template<typename MapT >
typedef DynSys<MatrixType>::ScalarType capd::dynsys::DynSysMap< MapT >::ScalarType

◆ VectorType

template<typename MapT >
typedef DynSys<MatrixType>::VectorType capd::dynsys::DynSysMap< MapT >::VectorType

Constructor & Destructor Documentation

◆ DynSysMap()

template<typename MapT >
capd::dynsys::DynSysMap< MapT >::DynSysMap ( const MapType map)
inline

map should implement C1Map concept

◆ ~DynSysMap()

template<typename MapT >
virtual capd::dynsys::DynSysMap< MapT >::~DynSysMap ( )
inlinevirtual

Member Function Documentation

◆ encloseC0Map() [1/2]

template<typename MapT >
virtual void capd::dynsys::DynSysMap< MapT >::encloseC0Map ( const ScalarType ,
const VectorType x,
const VectorType xx,
VectorType o_phi,
VectorType o_rem,
VectorType o_enc,
MatrixType o_jacPhi 
)
inlinevirtual

◆ encloseC0Map() [2/2]

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

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() [1/2]

template<typename MapT >
VectorType capd::dynsys::DynSysMap< MapT >::enclosure ( const ScalarType ,
const VectorType x 
)
inline

◆ enclosure() [2/2]

virtual VectorType capd::dynsys::DynSys< MapT::MatrixType >::enclosure ( const ScalarType t,
const VectorType x 
)
pure virtualinherited

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 >, and capd::dynsys::OdeSolver< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.

◆ getStep()

virtual ScalarType capd::dynsys::DynSys< MapT::MatrixType >::getStep ( ) const
inlinevirtualinherited

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< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.

◆ JacPhi() [1/2]

template<typename MapT >
MatrixType capd::dynsys::DynSysMap< MapT >::JacPhi ( const ScalarType ,
const VectorType iv 
)
inline

derivative of a map in a point iv

◆ JacPhi() [2/2]

virtual MatrixType capd::dynsys::DynSys< MapT::MatrixType >::JacPhi ( const ScalarType t,
const VectorType iv 
)
pure virtualinherited

◆ Lipschitz() [1/2]

template<typename MapT >
ScalarType capd::dynsys::DynSysMap< MapT >::Lipschitz ( const ScalarType ,
const VectorType ,
NormType  
)
inline

empty implemented - throws exception on use

◆ Lipschitz() [2/2]

DynSys< MatrixType >::ScalarType capd::dynsys::DynSys< MatrixType >::Lipschitz ( const ScalarType t,
const VectorType iv,
NormType n 
)
virtualinherited

this function returns Lipschitz contants for maps. It should be overriden in classes implementing flows.

◆ operator()() [1/4]

template<typename MapT >
VectorType capd::dynsys::DynSysMap< MapT >::operator() ( const ScalarType ,
const VectorType iv 
)
inline

value of a map for a point iv

◆ operator()() [2/4]

template<typename MapT >
VectorType capd::dynsys::DynSysMap< MapT >::operator() ( const ScalarType ,
const VectorType iv,
MatrixType derivative 
)
inline

value and derivative of a map in a point iv

◆ operator()() [3/4]

template<typename MapT >
VectorType& capd::dynsys::DynSysMap< MapT >::operator() ( const ScalarType ,
VectorType iv 
)
inline

◆ operator()() [4/4]

template<typename MapT >
template<typename SetType >
SetType& capd::dynsys::DynSysMap< MapT >::operator() ( SetType &  set)
inline

it computes image of the set (in give representation) using set.move function

◆ operator[]()

template<typename MapT >
MatrixType capd::dynsys::DynSysMap< MapT >::operator[] ( const VectorType iv)
inline

derivative of a map in a point iv

◆ Phi() [1/2]

template<typename MapT >
VectorType capd::dynsys::DynSysMap< MapT >::Phi ( const ScalarType ,
const VectorType iv 
)
inline

value of a map for a point iv

◆ Phi() [2/2]

virtual VectorType capd::dynsys::DynSys< MapT::MatrixType >::Phi ( const ScalarType t,
const VectorType iv 
)
pure virtualinherited

◆ Remainder() [1/2]

template<typename MapT >
VectorType capd::dynsys::DynSysMap< MapT >::Remainder ( const ScalarType ,
const VectorType iv,
VectorType  
)
inline

because we have explicit formula for a map not only numerical method the remainder term is equal to zero

◆ Remainder() [2/2]

virtual VectorType capd::dynsys::DynSys< MapT::MatrixType >::Remainder ( const ScalarType t,
const VectorType iv,
VectorType out_enc 
)
pure virtualinherited

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 >, and capd::dynsys::OdeSolver< MapT, capd::dynsys::ILastTermsStepControl, HighOrderEnclosure, capd::diffAlgebra::C2Curve< capd::diffAlgebra::BasicC2Curve< typename MapT::MatrixType > > >.

◆ type()

template<typename MapT >
virtual std::string capd::dynsys::DynSysMap< MapT >::type ( void  )
inlinevirtual

returns name of the class (for backward compatibility)

Member Data Documentation

◆ pMap

template<typename MapT >
const MapType* capd::dynsys::DynSysMap< MapT >::pMap
protected