Language Reference

POLYROOT Function

finds zeros of a real polynomial

POLYROOT( vector)

where vector is an n x 1 (or 1 x n) vector containing the coefficients of an (n-1) degree polynomial with the coefficients arranged in order of decreasing powers. The POLYROOT function returns the array r, which is an (n-1) x 2 matrix containing the roots of the polynomial. The first column of r contains the real part of the complex roots and the second column contains the imaginary part. If a root is real, the imaginary part is 0.

The POLYROOT function finds the real and complex roots of a polynomial with real coefficients.

The POLYROOT function uses an algorithm proposed by Jenkins and Traub (1970) to find the roots of the polynomial. The algorithm is not guaranteed to find all roots of the polynomial. An appropriate warning message is issued when one or more roots cannot be found. If r is given as a root of the polynomial p(x), then 1+p(r)=1 based on the rounding error of the computer that is employed.

For example, suppose you want to find the roots of the polynomial
p(x)= 0.2567x^4 + 0.1570x^3 + 0.0821x^2 - 0.3357x + 1
Use the following IML code to produce the result shown.
  
       p={0.2567 0.1570 0.0821 -0.3357 1}; 
       r=polyroot(p); 
  
  
                 R             4 rows      2 cols    (numeric) 
  
                              0.8383029 0.8514519 
                              0.8383029 -0.851452 
                              -1.144107 1.1914525 
                              -1.144107 -1.191452
 
The polynomial has two conjugate pairs of roots that, within machine precision, are given by r = 0.8383029 +- 0.8514519i and r = -1.144107 +- 1.1914525i.

Previous Page | Next Page | Top of Page