Chapter Contents Previous Next
 Language Reference

## POLYROOT Function

finds zeros of a real polynomial

POLYROOT( vector)

where vector is an n ×1 (or 1 ×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) ×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 will be 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. The POLYROOT algorithm produces roots within the precision allowed by the hardware. If r is given as a root of the polynomial P(x), then 1+P(R)=1 based on the roundoff error of the computer that is employed.

For example, to find the roots of the polynomial
P(x)= 0.2567x4 + 0.1570x3 + 0.0821x2 - 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 and .

 Chapter Contents Previous Next Top