polyroot {base} | R Documentation |

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

### 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, M. A. and Traub, J. F. (1972).
Algorithm 419: zeros of a complex polynomial.
*Communications of the ACM*, **15**(2), 97–99.
doi:10.1145/361254.361262.

### See Also

`uniroot`

for numerical root finding of arbitrary
functions;
`complex`

and the `zero`

example in the demos
directory.

### Examples

```
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
```

*base*version 4.4.0 Index]