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:
-
dimension | the system dimension |
Member Function Documentation
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:
-
precision | the 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). |
resultA | a vector of vector (of size dimension * dimension) representing a matrix corresponding to the linear part of the affine interpolated system (x' = resultA*x + resultb) |
resultb | a vector (of size dimension) constant part of the affine interpolated system (x' = resultA x + resultb) |
domainA | a 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 |
domainb | a 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)
Procedure which set the initial set for the approximation. This procedure must be called before computeApproximation(...)
- Parameters:
-
dim | the dimension of the polyhedron (must be equal to the system dimension) |
nbConstraint | the number of inequalities |
A | a 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 |
b | a 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:
-
dim | the system dimension |
f | function returning the i^th component of the evaluation of the system at point pt |
ddf | function returning the i^th component of the evaluation of the second partial derivative of the system (d^2f/dxdy) |
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:
-
The documentation for this class was generated from the following files: