    Next: Possible parameters values for Up: Parametric polynomials and eigenvalues Previous: Parametric polynomials and eigenvalues   Contents

Minimal and maximal real roots of a parametric polynomial

The purpose here is to determine the minimal and maximal values of the set of real roots of the the set of polynomials, when the parameters are bounded. There may be eventually also constraints on the parameters. The algorithm is implemented as:

int ALIAS_Min_Max_EigenValues(int Degree,
int Nb_Parameter,
INTERVAL_VECTOR (* TheCoeff)(INTERVAL_VECTOR &),
int Nb_Constraints,
INTEGER_VECTOR &Type_Eq,
int (* TheMatrix)(INTERVAL_VECTOR &, INTERVAL_MATRIX &),
int Has_Matrix,
INTERVAL_VECTOR (* IntervalFunction)(int,int,INTERVAL_VECTOR &),
INTERVAL & TheDomain,
INTERVAL_VECTOR & TheDomain_Parameter,
int Type,int Nb_Points,int Use_Solve,int rand,
int M,
double Accuracy_Variable,double Accuracy,double AccuracyM,
INTERVAL &Lowest_Root,INTERVAL &Highest_Root,
INTERVAL_MATRIX &Place,int  Stop,double *Seuil,
int (* Solve_Poly)(double *, int *,double *),
int (* Simp_Proc)(INTERVAL_VECTOR &))
where the arguments are:
• Degree: degree of the polynomial
• Nb_Parameter: number of parameters appearing in the coefficients
• TheCoeff: a procedure that take as input an interval vector and returns the interval value of the coefficients of the polynomial. The elements of the input interval vector are first a range for the unknown in the polynomial, then the ranges for the Nb_Parameter parameters
• Nb_Constraints: the number of constraints expression that constraints the parameters
• Type_Eq: type of the constraints expressions (0 for equality, -1 for inequality of type 0, 1 for inequality of type 0)
• TheMatrix: the polynomial may be the characteristic polynomial of a matrix . This argument is a procedure that takes as first argument the same interval vector as TheCoeff and returns in the second argument the interval component of . This procedure must return 1 if the components have been successfully calculated, -1 otherwise
• Has_Matrix: this flag must be set to 0 except if the polynomial is the the characteristic polynomial of a matrix in which case it must be set to 1 (2 if the matrix is symmetrical)
• IntervalFunction: a function which return the interval vector evaluation of the constraints and of the polynomial, the last component of the vector being the interval evaluation of the polynomial. This procedure must be written in ALIAS standard form, see note 2.3.4.3
• Has_Gradient: an array of integer that indicates if the derivatives of the expression are available. Only the first element is used for now with the following value:
• 0: no derivative available
• 1: only the derivatives of the constraints are available, not the one of the polynomial
• 2: all derivatives are available
• Gradient:a procedure which returns the Jacobian matrix of the expression for given values of the unknowns written in standard ALIAS form (see note 2.4.2.2)
• TheDomain: range for the polynomial unknown. This range must be large and is automatically adjusted during the calculation
• TheDomain_Parameter: the ranges for the parameters
• Type: 0 for finding only the minimum of the real root, 1 to find only the maximal root and 2 to find both
• Nb_Points: to estimate the minimal and maximal real root the algorithm compute the root of the polynomial at some given points for which the parameters have a fixed value. This value give the number of points where this procedure is used, it must be at least 1.
• Use_Solve: if this parameter is 1 or 3, then for each box we try to determine bounds for the real roots using algebraic geometry. If it is 2 or 3 then for each box we solve numerically the polynomial for some specific values of the parameters to update the minimum and maximum. If the value is 0 or 1 we will assume that a root of a polynomial is obtained when the width of the box is lower than Accuracy_Variable and the width of the evaluation of the polynomial is lower than Accuracy. If the confidence in the routine that solve numerically a polynomial is low the best choice is 1 otherwise the best choice is 3
• rand: every rand iteration the algorithm will consider that the current box is the one in the list that has the largest width. Such random permutation may allow to determine the minimal and maximal real root more quickly. This number must be neither too low (otherwise the maximal memory available may be exceeded) nor too large (otherwise the algorithm may focus on some part of the search space while the optimum is located in another part). A good compromise is 100.
• M: the maximum number of boxes which may be stored. See the note 2.3.4.5
• accuracy_Variable: the maximal width of the range of the polynomial unknown to be a solution, see the note 2.3.4.6
• Accuracy: the maximal width of the polynomial evaluation for a solution, see the note 2.3.4.6
• AccuracyM: the accuracy with which the optimum is determined. The absolute value of the difference between the real optimum and the calculated one should not exceed this value
• Lowest_Root, Highest_Root: point interval giving the minimal and maximal real root
• Place: the value of the parameters for which the optimum is obtained: the first line is for the minimum and the second line for the maximum
• Stop, Seuil: if Stop is set to 1
• when looking for a minimum only the procedure exit as soon as a minimum lower than Seuil has been found
• when looking for a maximum only the procedure exit as soon as a maximum greater than Seuil has been found
• when looking both for a minimum and a maximum the procedure exit as a minimum lower than Seuil OR a maximum greater than Seuil has been found
If Stop is set to 2 when looking both for a minimum and a maximum the procedure exit as a minimum lower than Seuil AND a maximum greater than Seuil has been found (otherwise as the same behavior than 1)
• Solve_Poly: a procedure that compute the real roots of a polynomial. It takes as argument the coefficients of the polynomial, a pointer to an integer that is initially the degree of the polynomial and the real roots are stored in the last argument. This procedure returns the number of real roots or -1 if the computation has failed. ALIAS provides as possible procedure ALIAS_Solve_Poly.
• Simp_Proc: a user-supplied procedure that take as input the current box and may proceed to some 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.
The confidence in this procedure is at the same level than the confidence in the numerical algorithm that solve a polynomial.

The return code is:

• 1: algorithm has succeeded
• 0: result is not guaranteed
• -1: algorithm has failed, not enough memory
• -2: largest root of the polynomial lower than the given lower bound
• -3: smallest root of the polynomial larger than the given upper bound
• -4: error in the type of the equations
• -5: error, more than one function to optimize
• -100: in the mixed bisection mode the number of variables that will be bisected is larger than the number of unknowns
• -150: ALIAS_Delta3B or ALIAS_Max3B have not the right dimension Nb_Parameter+1
• -200: one of the value of ALIAS_Delta3B or ALIAS_Max3B is negative or 0
• -300: one of the value of ALIAS_SubEq3B is not 0 or 1
• -1000: Single_Bisection has an incorrect value
• -1500: Degree is lower than 0
• -2000: Nb_Parameter is lower or equal to 0
• -3000: we use the full bisection mode and the problem has more than 10 unknowns
• -3500: Nb_Constraints is lower than 0
• -4000: Type not between 0 and 2
• -4500: Stop_First_Sol not between 0 and 2
• -5000: Use_Solve not between 0 and 4
• -6000: Place has not 2 rows or Nb_Parameter+1 columns
• -6500: the initial estimate have incompatible lower and upper bound

The possible bisection mode are:

• 1: if the polynomial parameter has a value that is better than the current optimum, then this variable is bisected otherwise mode 1 of section 2.4.1.3
• 2: mode 1 of section 2.4.1.3 if the gradient is not available
• 3,4: mode 1 of section 2.4.1.3
• 5: mode 5 of section 2.4.1.3
For mode 2 if the gradient is available and if the polynomial parameter has a value that is better than the current optimum, then this variable is bisected otherwise we use the smear function to determine the bisected variable.    Next: Possible parameters values for Up: Parametric polynomials and eigenvalues Previous: Parametric polynomials and eigenvalues   Contents
Jean-Pierre Merlet 2012-12-20