numapprox[hornerform] - convert a polynomial to Horner form
|
Calling Sequence
|
|
hornerform(r)
hornerform(r, x)
|
|
Parameters
|
|
r
|
-
|
procedure or expression representing a polynomial or rational function
|
x
|
-
|
(optional) variable name appearing in r, if r is an expression
|
|
|
|
|
Description
|
|
•
|
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 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.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
|
|