numapprox
hornerform
convert a polynomial to Horner form
Calling Sequence
Parameters
Description
Examples
hornerform(r)
hornerform(r, x)
r
-
procedure or expression representing a polynomial or rational function
x
(optional) variable name appearing in r, if r is an expression
This procedure converts a given polynomial r into Horner form, also known as nested multiplication form. This is a form which minimizes the number of arithmetic operations required to evaluate the polynomial.
If r is a rational function (i.e. a quotient of polynomials) then the numerator and denominator are each converted into Horner form.
If the second argument x is present then the first argument must be a polynomial (or rational expression) in the variable x. If the second argument is omitted then either r is an operator such that ry yields a polynomial (or rational expression) in y, or else r is an expression with exactly one indeterminate (determined via indets).
Note that for the purpose of evaluating a polynomial efficiently, the Horner form minimizes the number of arithmetic operations for a general polynomial. Specifically, the cost of evaluating a polynomial of degree n in Horner form is: n multiplications and n additions.
The command with(numapprox,hornerform) allows the use of the abbreviated form of this command.
withnumapprox:
f≔t↦a⋅t4+b⋅t3+c⋅t2+d⋅t+e
hornerformf
t↦e+d+c+a⋅t+b⋅t⋅t⋅t
s≔taylorexpx,x
s≔1+x+12x2+16x3+124x4+1120x5+Ox6
hornerforms
1+1+12+16+124+x120xxxx
r≔padeexpax,x,3,3
r≔a3x3+12a2x2+60ax+120−a3x3+12a2x2−60ax+120
hornerformr,x
120+60a+a3x+12a2xx120+−60a+−a3x+12a2xx
See Also
convert[horner]
numapprox[confracform]
Download Help Document