horner | R Documentation |
Horner's method for multivariate polynomials
horner(P,v)
P |
Multivariate polynomial |
v |
Numeric vector of coefficients |
Given a polynomial
p(x) = a_0 +a_1+a_2x^2+\cdots + a_nx^n
it is possible to express p(x)
in the algebraically equivalent
form
p(x) = a_0 + x\left(a_1+x\left(a_2+\cdots + x\left(a_{n-1} +xa_n
\right)\cdots\right)\right)
which is much more efficient for evaluation, as it requires only n
multiplications and n
additions, and this is optimal. But this is
not implemented here because it's efficient. It is implemented because
it works if x
is itself a (multivariate) polynomial, and that is
the second coolest thing ever. The coolest thing ever is the
Reduce()
function.
Robin K. S. Hankin
ooom
horner("x",1:5)
horner("x+y",1:3)
w <- as.mvp("x+y^2")
stopifnot(1 + 2*w + 3*w^2 == horner(w,1:3)) # note off-by-one issue
"x+y+x*y" %>% horner(1:3) %>% horner(1:2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.