base (version 3.6.2)

# polyroot: Find Zeros of a Real or Complex Polynomial

## Description

Find zeros of a real or complex polynomial.

## Usage

`polyroot(z)`

## Arguments

z

the vector of polynomial coefficients in increasing order.

## Value

A complex vector of length \(n - 1\), where \(n\) is the position of the largest non-zero element of `z`.

## 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.

## References

Jenkins, M. A. and Traub, J. F. (1972). Algorithm 419: zeros of a complex polynomial. Communications of the ACM, 15(2), 97--99. 10.1145/361254.361262.

`uniroot` for numerical root finding of arbitrary functions; `complex` and the `zero` example in the demos directory.

## Examples

Run this code
``````# NOT RUN {
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
# }
``````

Run the code above in your browser using DataCamp Workspace