You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
1.5 KiB
183 lines
1.5 KiB
2 years ago
|
|
||
|
Exercise 2.34: Evaluating a polynomial in
|
||
|
x
|
||
|
|
||
|
at a given value of
|
||
|
x
|
||
|
can be formulated as an accumulation. We evaluate
|
||
|
the polynomial
|
||
|
|
||
|
|
||
|
|
||
|
a
|
||
|
n
|
||
|
|
||
|
|
||
|
x
|
||
|
n
|
||
|
|
||
|
|
||
|
+
|
||
|
|
||
|
|
||
|
a
|
||
|
|
||
|
n
|
||
|
−
|
||
|
1
|
||
|
|
||
|
|
||
|
|
||
|
x
|
||
|
|
||
|
n
|
||
|
−
|
||
|
1
|
||
|
|
||
|
|
||
|
|
||
|
+
|
||
|
⋯
|
||
|
+
|
||
|
|
||
|
|
||
|
a
|
||
|
1
|
||
|
|
||
|
x
|
||
|
|
||
|
+
|
||
|
|
||
|
a
|
||
|
0
|
||
|
|
||
|
|
||
|
using a well-known algorithm called
|
||
|
Horner’s rule, which structures
|
||
|
the computation as
|
||
|
|
||
|
|
||
|
(
|
||
|
…
|
||
|
(
|
||
|
|
||
|
a
|
||
|
n
|
||
|
|
||
|
x
|
||
|
|
||
|
+
|
||
|
|
||
|
|
||
|
a
|
||
|
|
||
|
n
|
||
|
−
|
||
|
1
|
||
|
|
||
|
|
||
|
)
|
||
|
x
|
||
|
|
||
|
+
|
||
|
⋯
|
||
|
+
|
||
|
|
||
|
|
||
|
a
|
||
|
1
|
||
|
|
||
|
)
|
||
|
x
|
||
|
|
||
|
+
|
||
|
|
||
|
|
||
|
a
|
||
|
0
|
||
|
|
||
|
.
|
||
|
|
||
|
|
||
|
In other words, we start with
|
||
|
|
||
|
a
|
||
|
n
|
||
|
|
||
|
, multiply by
|
||
|
x
|
||
|
, add
|
||
|
|
||
|
|
||
|
a
|
||
|
|
||
|
n
|
||
|
−
|
||
|
1
|
||
|
|
||
|
|
||
|
, multiply by
|
||
|
x
|
||
|
, and so on, until we reach
|
||
|
|
||
|
|
||
|
a
|
||
|
0
|
||
|
|
||
|
.82
|
||
|
|
||
|
Fill in the following template to produce a procedure that evaluates a
|
||
|
polynomial using Horner’s rule. Assume that the coefficients of the polynomial
|
||
|
are arranged in a sequence, from
|
||
|
|
||
|
a
|
||
|
0
|
||
|
|
||
|
through
|
||
|
|
||
|
a
|
||
|
n
|
||
|
|
||
|
.
|
||
|
|
||
|
|
||
|
(define
|
||
|
(horner-eval x coefficient-sequence)
|
||
|
(accumulate
|
||
|
(lambda (this-coeff higher-terms)
|
||
|
⟨??⟩)
|
||
|
0
|
||
|
coefficient-sequence))
|
||
|
|
||
|
For example, to compute
|
||
|
|
||
|
1
|
||
|
+
|
||
|
3
|
||
|
x
|
||
|
|
||
|
+
|
||
|
|
||
|
5
|
||
|
|
||
|
x
|
||
|
3
|
||
|
|
||
|
+
|
||
|
|
||
|
x
|
||
|
5
|
||
|
|
||
|
|
||
|
at
|
||
|
|
||
|
x
|
||
|
=
|
||
|
2
|
||
|
|
||
|
you
|
||
|
would evaluate
|
||
|
|
||
|
|
||
|
(horner-eval 2 (list 1 3 0 5 0 1))
|