Find Zeros of a Real or Complex Polynomial (original) (raw)
polyroot {base} | R Documentation |
---|
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](../../stats/html/uniroot.html)
for numerical root finding of arbitrary functions;[complex](../../base/help/complex.html)
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
[Package _base_ version 4.6.0 Index]