next up previous contents
Next: GradientSolve and HessianSolve Up: General purpose system solving Previous: General purpose system solving   Contents

GeneralSolve

This is the most basic procedure for solving systems. It uses only the the interval evaluation of the expressions and can deal with equations involving intervals as coefficients, while the other solving procedure cannot be used in that case.

This procedure will return as solution a set of boxes: a box is defined as a set of intervals, one for each unknowns. Such box will be obtained as soon as either the width of all the intervals is lower than `ALIAS/epsilon` or the width of the interval evaluation of the expressions for the box is lower than `ALIAS/fepsilon`. To avoid returning a large number of solutions it is assumed that all the solutions of the system are at a distance at least larger than `ALIAS/dist`.

Hence the results provided by this procedure exhibit the following features:

For example:

 
with(ALIAS):
u:=GeneralSolve([x^2+y^2-1,x+y],[x,y],[[-2,2],[-2,1]]);
will provide in u an approximation of the 2 solutions of the system. $x^2+y^2-1=0,x+y=0$ for $x,y$ included in the range [-2,2], [-2,1].

The efficiency of the calculation may be improved by using a simplification procedure, see chapter 4. Hence the following code will be faster:

 
with(ALIAS):
HullConsistency([x^2+y^2-1,x+y],[x,y],"Simp"):
u:=GeneralSolve([x^2+y^2-1,x+y],[x,y],[[-2,2],[-2,1]],"Simp");

Note that by default when an evaluation of all the equations is needed in the C++ program, the program will proceed by successive calls to the procedure created by MakeF. This behavior may be changed by setting `ALIAS/equation_alone` to 0: in that case all equations will be evaluated by a single call to the C++ evaluation procedure. This may be important in term of computation time if the evaluation of simplification terms is performed before doing the evaluation (e.g. if the procedure ALIAS_FSIMPLIFY has been defined, see the MakeF section 2.1.1).

Note that there is a specific bisection mode that can be used for this solving algorithm. The table `ALIAS/table_ordered_bisection`, with as many lines as equations, will contain variable number in a row such as for the first row [1,3,4]. This will indicate that only variables 1, 3, 4 will first be bisected until the first equation is satisfied. Then we will move to the second equation and the second row of the table. This bisection method is validated as soon as the flag `ALIAS/ordered_bisection` is set to 1.


next up previous contents
Next: GradientSolve and HessianSolve Up: General purpose system solving Previous: General purpose system solving   Contents
Jean-Pierre Merlet 2012-12-20