| polyn.eval | R Documentation |
Evaluate one or several univariate polynomials at several locations,
i.e. compute coef[1] + coef[2]*x + ... + coef[p+1]* x^p
(in the simplest case where x is scalar and coef a vector).
polyn.eval(coef, x)
coef |
“numeric” vector or matrix. If a vector, Note that |
x |
“numeric” vector or array. Either |
The stable “Horner rule” is used for evaluation in any case.
When length(coef) == 1L, polyn.eval(coef, x) now returns a
vector of length(x) whereas previously, it just gave the number
coef independent of x.
numeric vector or array, depending on input dimensionalities, see above.
Martin Maechler, ages ago.
For much more sophisticated handling of polynomials, use the
polynom package, see, e.g., predict.polynomial.
For multivariate polynomials (and also for nice interface to the
orthopolynom package), consider the mpoly package.
polyn.eval(c(1,-2,1), x = 0:3)# (x - 1)^2
polyn.eval(c(0, 24, -50, 35, -10, 1), x = matrix(0:5, 2,3))# 5 zeros!
(cf <- rbind(diag(3), c(1,-2,1)))
polyn.eval(cf, 0:5)
x <- seq(-3,7, by=1/4)
cf <- 4:1
(px <- polyn.eval(cf, x)) # is exact
if((gmpT <-"package:gmp" %in% search()) || require("gmp")) withAutoprint({
pxq <- polyn.eval(coef = as.bigq(cf, 1), x=x)
pxq
stopifnot(pxq == px)
if(!gmpT) detach("package:gmp")
})
if((RmpfrT <-"package:Rmpfr" %in% search()) || require("Rmpfr")) withAutoprint({
pxM <- polyn.eval(coef = mpfr(cf, 80), x=x) # 80 bits accuracy
pxM
stopifnot(pxM == px)
if(!RmpfrT) detach("package:Rmpfr")
})
stopifnot(identical(polyn.eval(12, x), rep(12, length(x))),
identical(polyn.eval(7, diag(3)), matrix(7, 3,3)))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.