Next: The NonLinear procedure
Up: Solving systems with linear
Previous: Mathematical background
Contents
The procedure is implemented as:
int Solve_Simplex(int m,int n,int NbNl,
INTEGER_VECTOR TypeEq,
INTERVAL_VECTOR (* IntervalFunction)(int,int,INTERVAL_VECTOR &),
void (* NonLinear)(INTERVAL_VECTOR &x,INTERVAL_VECTOR &X),
void (* CoeffLinear)(MATRIX &U),
double MaxDiam,
int FullSimplex,
INTERVAL_VECTOR & TheDomain,
int Order,int Iteration,int Stop,
double epsilon,double epsilonf,double Dist,
INTERVAL_MATRIX & Solution,int Nb,
int (* Simp_Proc)(INTERVAL_VECTOR &))
the arguments being:
- m: number of unknowns
- n: number of equations, see the note 2.3.4.1
- NbNl: number of equations that have no linear term at
all or are inequalities.
If you omit this parameter its value will be assumed to be 0 and
you have to omit the TypeEq parameter.
- TypeEq: an array of integers that indicate the type for
the equations. TypeEq(i) is -1,0,1 if equation i is an
inequality , an equation or an inequality .
- IntervalFunction: a function which return the interval
vector evaluation of the equations, see the note 2.3.4.3 on how
to write this procedure. The equations must be ordered: first
the equations with linear terms then the equations
without any linear terms and finally the inequalities
- NonLinear: a procedure to compute the non linear part of
the equations, see note 2.14.2.1
- CoeffLinear: a procedure that return a matrix which
contain the constant coefficients of the linear term in the equation,
see note 2.14.2.2
- MaxDiam: the simplex method will not be used on boxes
whose maximal width is lower than this value. Should be set
to 0 or a small value
- FullSimplex: this flag is used to indicate how much we
will
use the simplex method (which may be costly). If set to -1 only the
phase I of the simplex will be used. If set to with , then
the full simplex method will be used recursively on the
variables having the largest interval width.
- TheDomain: box in which we are looking for
solution of the equations
- Order: the type of order which is used to store the
intervals created during the bisection process. This order may be
either MAX_FUNCTION_ORDER or MAX_MIDDLE_FUNCTION_ORDER. See the note on the order 2.3.4.4.
- M: the maximum number of boxes which may be
stored. See the note 2.3.4.5
- Stop: the possible values are 0,1,2
- 0: the algorithm will look for every solution in TheDomain
- 1: the algorithm will stop as soon as 1 solution has
been found
- 2: the algorithm will stop as soon as Nb solutions
have been found
- epsilon: the maximal width of the solution intervals, see the
note 2.3.4.6
- epsilonf: the maximal width of the equation intervals for
a solution, see the
note 2.3.4.6
- Dist: minimal distance between the middle point of two
interval solutions, see the note 2.3.4.7
- Solution: an interval matrix of size (Nb,m)
which will contained the solution intervals. This list is sorted using
the order specified by Order
- Nb: the maximal number of solution which will be returned
by the algorithm
- Simp_Proc: a user-supplied procedure that take as input
the current box and proceed to some further reduction of
the width of the box or even determine that there is no
solution for this box, in which case it should return
-1 (see note 2.3.3).
Remember that you may use the 3B method to improve the efficiency of
this algorithm (see section 2.3.2).
Note that the Simp_Proc argument may be omitted.
Subsections
Next: The NonLinear procedure
Up: Solving systems with linear
Previous: Mathematical background
Contents
Jean-Pierre Merlet
2012-12-20