# polyroot

0th

Percentile

##### Find Zeros of a Real or Complex Polynomial

Find zeros of a real or complex polynomial.

Keywords
math
##### Usage
polyroot(z)
##### Arguments
z
the vector of polynomial coefficients in increasing order.
##### Details

A polynomial of degree $n - 1$, $$p(x) = z_1 + z_2 x + \cdots + z_n x^{n-1}$$ is given by its coefficient vector z[1:n]. polyroot returns the $n-1$ complex zeros of $p(x)$ using the Jenkins-Traub algorithm.

If the coefficient vector z has zeroes for the highest powers, these are discarded.

There is no maximum degree, but numerical stability may be an issue for all but low-degree polynomials.

##### Value

A complex vector of length $n - 1$, where $n$ is the position of the largest non-zero element of z.

##### Source

C translation by Ross Ihaka of Fortran code in the reference, with modifications by the R Core Team.

##### References

Jenkins and Traub (1972) TOMS Algorithm 419. Comm. ACM, 15, 97--99.

uniroot for numerical root finding of arbitrary functions; complex and the zero example in the demos directory.
library(base) polyroot(c(1, 2, 1)) round(polyroot(choose(8, 0:8)), 11) # guess what! for (n1 in 1:4) print(polyroot(1:n1), digits = 4) polyroot(c(1, 2, 1, 0, 0)) # same as the first