Routh

The Routh algorithm allows to calculate the number of roots with positive real part of a polynomial being given the coefficients of the polynomial. It is implemented as:

int Routh(int Degree,double *Coeff)that returns the number of roots with positive real part or -1 if it has not been possible to compute the Routh table (because the first element of a row of the Routh table is close to 0).

A similar algorithm allows to deal with polynomial with interval coefficients:

INTERVAL Routh(int Degree,INTERVAL_VECTOR &Coeff)This algorithm returns in its interval:

- -1,-1
- : the Routh table cannot be computed
- a,a+1
- : there is at least a roots with positive real part but the exact number of roots with positive real part cannot be calculated
- a,a
- : there is exactly a roots with positive real part

INTERVAL Routh(int Degree,INTERVAL_VECTOR (* TheCoeff)(int,int,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input)where:

`TheCoeff`: a procedure that allow to calculate the coefficients being given the range for the parameters. It returns a`Degree`+1 interval vector. The two first integers l1, l2 of the procedure allows one to specify which coefficients are calculated. For example if`V=TheCoeff(1,5,Input)`, then`V(1..5)`will be the first 5 coefficients of the polynomial and if`V=TheCoeff(1,Degree+1,Input)`, then all the coefficients of the polynomial will be available in`V``Input`: the intervals for the parameter

INTERVAL Routh(int Degree,INTERVAL_VECTOR (*TheCoeff)(int,int,INTERVAL_VECTOR &), INTERVAL_MATRIX (* TheCoeffG)(int,int,INTERVAL_VECTOR &), INTERVAL_VECTOR &Input)where

Note also that the procedure `Routh` of ALIAS-Maple allows an even
better calculation of the Routh table when dealing with parametric
polynomials as the elements of the Routh table are calculated
symbolically.