NLToolbox
 All Classes Namespaces Functions
Public Member Functions
nltool::HybridizationInterface Class Reference

List of all members.

Public Member Functions

 HybridizationInterface ()
 HybridizationInterface (int dimension)
void setSystemDynamic (unsigned dim, double(*f)(const int i, const std::vector< double > &pt, void *data), double(*ddf)(const int i, const std::vector< double > &pt, const int dx, const int dy, void *data), void *data)
void setSystemDynamic (unsigned dim, std::string str)
void setInitialSet (unsigned dim, unsigned nbConstraint, vector< vector< double > > &A, vector< double > &b)
HybridizationResult computeApproximation (const double precision, vector< vector< double > > &resultA, vector< double > &resultb, vector< vector< double > > &domainA, vector< double > &domainb)

Constructor & Destructor Documentation

This class is a proxy for calling Hybridization methods develloped in the tool NlToolBox

The user must start by set the system dynamics and the initial set before calling the approximation function Non consistent constructor

Main constructor

Parameters:
dimensionthe system dimension

Member Function Documentation

HybridizationResult nltool::HybridizationInterface::computeApproximation ( const double  precision,
vector< vector< double > > &  resultA,
vector< double > &  resultb,
vector< vector< double > > &  domainA,
vector< double > &  domainb 
)

Function which computes the approximation domain and system, the approximation domain is a polyhedron defined by the inequalities given by domainA*x <= domainb the affine interpolated system is given by x' = resultA*x + resultb

Parameters:
precisionthe precision which constrains the approximation domain size, the approximation guarantee that ||resultA*x + resultb - f(x)|| <= precision (where x'=f(x) is the original system).
resultAa vector of vector (of size dimension * dimension) representing a matrix corresponding to the linear part of the affine interpolated system (x' = resultA*x + resultb)
resultba vector (of size dimension) constant part of the affine interpolated system (x' = resultA x + resultb)
domainAa vector of vector representing a matrix (of size (dimension + 1) * dimension) such that the simplicial domain used for the approximation is given by the inequalities domainA*x <= domainb
domainba vector (of size dimension + 1) such that the simplicial domain used for the approximation is given by the inequalities domainA*x <= domainb
Returns:
0 if success otherwise an integer greater than 0 (see HybridizationResult)
void nltool::HybridizationInterface::setInitialSet ( unsigned  dim,
unsigned  nbConstraint,
vector< vector< double > > &  A,
vector< double > &  b 
)

Procedure which set the initial set for the approximation. This procedure must be called before computeApproximation(...)

Parameters:
dimthe dimension of the polyhedron (must be equal to the system dimension)
nbConstraintthe number of inequalities
Aa vector of vector (of size m*dim where m is the number of inequalities) corresponding to a matrix which describes the polyhedron defined by the inequalities A*x<=b
ba vector (of size m) such that the polyhedron is defined by the inequalities A*x<=b
void nltool::HybridizationInterface::setSystemDynamic ( unsigned  dim,
double(*)(const int i, const std::vector< double > &pt, void *data)  f,
double(*)(const int i, const std::vector< double > &pt, const int dx, const int dy, void *data)  ddf,
void *  data 
)

Procedure which set the dynamical system that requires to be approximated. This procedure must be called before computeApproximation(...)

Parameters:
dimthe system dimension
ffunction returning the i^th component of the evaluation of the system at point pt
ddffunction returning the i^th component of the evaluation of the second partial derivative of the system (d^2f/dxdy)
void nltool::HybridizationInterface::setSystemDynamic ( unsigned  dim,
std::string  str 
)

Procedure which set the dynamical system that requires to be approximated. This procedure must be called before computeApproximation(...) For now only polynomials system can be described by this function, the string must be formatted as in the following 3d example: " x0' = x0 - x1*x0^2 \n x1' = - x1 + x0^3*x1 - x1*x2 \n x2' = -x2^4 + x1*X2 " The performances using polynomials system are better due to efficient algorithms that approximate conservatively the polynomial optimization problem

Parameters:
dim
str

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions