    Next: Example Up: Second Cauchy theorem Previous: Mathematical background   Contents

Implementation

This procedure is implemented as:

int Cauchy_Second_Bound_Interval(int Degree,VECTOR &Coeff,double *Bound);
with:
• Degree: degree of the polynomial
• Coeff: the Degree+1 coefficients of the polynomial in increasing degree
• bound: the upper bound of the positive roots
This procedure returns 0 if the method cannot be applied because Degree=0 or Degree=1 and Coeff(2)=0. On success the return code is 1. It is also possible to determine the lower bound of the positive roots using:

int Cauchy_Second_Bound_Inverse_Interval(int Degree,VECTOR &Coeff,double *Bound);
This procedure fail and returns 0 if Degree=0, Degree=1 and Coeff(2)=0 or Coeff(1)=0. There is also an implementation for interval polynomial:

int Cauchy_Second_Bound_Interval(int Degree,INTERVAL_VECTOR &Coeff,INTERVAL Bound);
This procedure will return a failure code of 0 if Degree=0, Degree=1 and Coeff(2) contain 0, or if Coeff(Degree+1) contains 0. In that case if Bound=[a,b], then for all polynomials in the set the positive roots are all lower than b while for some polynomial in the set the roots are lower than a. Equivalently we have:

int Cauchy_Second_Bound_Inverse_Interval(int Degree,INTERVAL_VECTOR &Coeff,INTERVAL Bound);
In that case if Bound=[a,b], then for all polynomials in the set the positive roots are all lower than a while for some polynomial in the set the roots are lower than b.

A global procedure enable to get at the same time the upper and lower bound of the positive roots:

int Cauchy_Second_Bound_Interval(int Degree,VECTOR &Coeff,INTERVAL &Bound);
int Cauchy_Second_Bound_Interval(int Degree,INTERVAL_VECTOR &Coeff,
INTERVAL &Lower,INTERVAL &Upper);
In the latter case the interval lower bound is in Lower and the interval upper bound in Upper. It is also possible to determine the lower bound of the negative roots using the procedures:

int Cauchy_Second_Bound_Negative_Interval(int Degree,VECTOR &Coeff,double *Bound);
int Cauchy_Second_Bound_Negative_Interval(int Degree,INTERVAL_VECTOR &Coeff,INTERVAL &Bound);
while the upper bound of the negative roots can be determined using:

int Cauchy_Second_Bound_Negative_Inverse_Interval(int Degree,VECTOR &Coeff,double *Bound);
int Cauchy_Second_Bound_Negative_Inverse_Interval(int
Degree,INTERVAL_VECTOR &Coeff,
INTERVAL &Bound);
Both the upper and lower bound of the negative roots can be found using:

int Cauchy_Second_Bound_Negative_Interval(int Degree,VECTOR &Coeff,INTERVAL &Bound);
int Cauchy_Second_Bound_Negative_Interval(int Degree,INTERVAL_VECTOR &Coeff,
INTERVAL &Lower,INTERVAL &Upper);    Next: Example Up: Second Cauchy theorem Previous: Mathematical background   Contents
Jean-Pierre Merlet 2012-12-20