The Conley-Morse Graphs Software
|
This class defines a map for the nonlinear density dependent overcompensatory Leslie population model. More...
#include <odeapprox.h>
Public Member Functions | |
MapOdeApprox (double step, int nSteps, int nSamples, double margin=0.01) | |
The constructor in which one sets the step size and the number of steps for the non-rigorous integration, the number of sample points in each direction, and the margin to add around the box (as a fraction of its actual width). More... | |
~MapOdeApprox () | |
The destructor. More... | |
void | setParam (const double *left, const double *right, int n) |
Sets the parameters to the given intervals defined by their left and right coordinates. More... | |
void | compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const |
Computes the image of a box whose left and right coordinates are given. More... | |
Public Member Functions inherited from MapOdeTimeT | |
MapOdeTimeT (const std::string &formula, int order, double step, int n) | |
The constructor which takes the formula for the ODE in the format used in the CAPD library. More... | |
~MapOdeTimeT () | |
The destructor. More... | |
void | setParam (const double *left, const double *right, int n) |
Sets the parameters to the given intervals defined by their left and right coordinates. More... | |
void | compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const |
Computes a rectangular set that is an outer enclosure of the image of the given box. More... | |
void | setBoundingBox (const double *left, const double *right, int dim, int stepsBetweenChecks) |
Sets a bounding box for the area of interest. More... | |
void | setDefaultBoundingBox () |
Sets the bounding box to the default one, as defined when setting the phase space. More... | |
bool | adjust (bool successful, int subdiv) |
Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision depth. More... | |
std::string | getOptInfo () const |
Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More... | |
void | useOptInfo (const std::string &info) |
Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More... | |
void | saveInternals (chomp::multiwork::mwData &data) const |
Saves the internal parameters and other data of the map to the mwData structure. More... | |
void | loadInternals (chomp::multiwork::mwData &data) |
Retrieves the internal paramters and other data of the map from the mwData structure. More... | |
double | getTimeStep (int subdiv) const |
Returns an approximation of the currently recommended integration time t for the time-t map at the given subdivision depth. More... | |
Public Member Functions inherited from MapTight | |
MapTight () | |
The default constructor of an object which describes a map. More... | |
~MapTight () | |
The destructor of an object which describe a map. More... | |
void | compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const |
Computes an interval bounding box for the image of a given box. More... | |
virtual void | compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const =0 |
Computes a rectangular set that is an outer enclosure of the image of the given box. More... | |
Public Member Functions inherited from MapType | |
MapType () | |
The default constructor of an object which describes a map. More... | |
virtual | ~MapType () |
The destructor of an object which describe a map. More... | |
virtual void | setParam (const double *left, const double *right, int n) |
Sets the parameters to the given intervals defined by their left and right coordinates. More... | |
const double & | getLeftParam (int n) const |
Returns the left value of the given parameter. More... | |
const double & | getRightParam (int n) const |
Returns the right value of the given parameter. More... | |
virtual void | compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const =0 |
Computes the image of a box whose left and right coordinates are given. More... | |
void | operator() (const IntervalType *x, IntervalType *y, int dim, const spcCoord *coord, int subdiv) const |
An interface to the function 'compute' based on intervals. More... | |
bool | adjust (bool successful, int subdiv) |
Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision level. More... | |
std::string | getOptInfo () const |
Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More... | |
void | useOptInfo (const std::string &info) |
Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More... | |
void | saveInternals (chomp::multiwork::mwData &data) const |
Saves the internal parameters and other data of the map to the mwData structure. More... | |
void | loadInternals (chomp::multiwork::mwData &data) |
Retrieves the internal paramters and other data of the map from the mwData structure. More... | |
virtual double | getTimeStep (int subdiv) const |
Returns the time step, which is 1 for a map, or the time t of integration in case of a time-t map of a flow. More... | |
virtual std::string | name () const |
Returns the name of the map. More... | |
Private Member Functions | |
virtual void | vectorField (double t, const double *x, double *y, int dim) const =0 |
The vector field. More... | |
MapOdeApprox (const MapOdeApprox &) | |
The copy constructor should not be used. More... | |
MapOdeApprox & | operator= (const MapOdeApprox &) |
The assignment operator should not be used. More... | |
void | RungeKutta (double t, double *x, double step, int dim, double *buffer) const |
The Runge-Kutta method for iterating a point, using the vector field defined in this class. More... | |
void | fadeVectorField (const double *x, double *y, int dim) const |
Makes a correction to the vector field to make it fade gradually outside the bounding box if one is in defined and in use for the parent class MapOdeTimeT. More... | |
Static Private Member Functions | |
static void | computeRanges (const double *samples, int nSamples, int dim, double *minimal, double *maximal) |
Computes the ranges of coordinates. More... | |
Private Attributes | |
double | step_ |
The size of the step for itegrating the flow. More... | |
int | nSteps_ |
The number of steps to use. More... | |
int | nSamples_ |
The number of samples in each direction. More... | |
double | margin_ |
The margin to add around the box (a fraction of its width). More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MapOdeTimeT | |
template<class Array1 , class Array2 > | |
static void | setPhaseSpace (const Array1 &offset, const Array2 &width, int dim, int subdivDepth, int stepsBetweenChecks=2) |
Sets the phase space for an automatic generation of bounding boxes. More... | |
Protected Attributes inherited from MapOdeTimeT | |
double * | boundingBox |
A bounding box for the area where the trajectories are computed. More... | |
int | boundingBoxDim |
The dimension of the bounding box. More... | |
This class defines a map for the nonlinear density dependent overcompensatory Leslie population model.
The interpretation of parameters depends on the dimension.
Definition at line 60 of file odeapprox.h.
|
inline |
The constructor in which one sets the step size and the number of steps for the non-rigorous integration, the number of sample points in each direction, and the margin to add around the box (as a fraction of its actual width).
Definition at line 131 of file odeapprox.h.
|
inline |
The destructor.
Definition at line 162 of file odeapprox.h.
|
private |
The copy constructor should not be used.
|
inlinevirtual |
Computes the image of a box whose left and right coordinates are given.
Fills in the images with the left and right coordinates of the image box.
Reimplemented from MapTight.
Definition at line 279 of file odeapprox.h.
References computeRanges(), margin_, nSamples_, nSteps_, RungeKutta(), and step_.
|
inlinestaticprivate |
Computes the ranges of coordinates.
Definition at line 261 of file odeapprox.h.
Referenced by compute().
|
inlineprivate |
Makes a correction to the vector field to make it fade gradually outside the bounding box if one is in defined and in use for the parent class MapOdeTimeT.
Definition at line 177 of file odeapprox.h.
References MapOdeTimeT::boundingBox, and MapOdeTimeT::boundingBoxDim.
Referenced by RungeKutta().
|
private |
The assignment operator should not be used.
|
inlineprivate |
The Runge-Kutta method for iterating a point, using the vector field defined in this class.
The buffer should be preallocated for 5*dim entries.
Definition at line 225 of file odeapprox.h.
References fadeVectorField(), and vectorField().
Referenced by compute().
|
inlinevirtual |
Sets the parameters to the given intervals defined by their left and right coordinates.
This function calls the original function from the class MapType, and skips the function from MapOdeTimeT.
Reimplemented from MapType.
Definition at line 168 of file odeapprox.h.
References MapType::setParam().
|
privatepure virtual |
The vector field.
Parameters (if any) should be determined using the methods of the class MapType: getLeftParam and getRightParam.
Implemented in MapDuffingApprox, MapLorenzApprox, MapRoesslerApprox, and MapVanderPolApprox.
Referenced by RungeKutta().
|
private |
The margin to add around the box (a fraction of its width).
Definition at line 98 of file odeapprox.h.
Referenced by compute().
|
private |
The number of samples in each direction.
Definition at line 95 of file odeapprox.h.
Referenced by compute(), and MapOdeApprox().
|
private |
The number of steps to use.
Definition at line 92 of file odeapprox.h.
Referenced by compute(), and MapOdeApprox().
|
private |
The size of the step for itegrating the flow.
Definition at line 89 of file odeapprox.h.
Referenced by compute(), and MapOdeApprox().