94 ROOTFINDING FOR NONLINEAR EQUATIONS
Table 2.15 Example 4 of
Brent's method
b
f(b)
c
0.0
-3.68E.,... 1
3.0
.5731754
-1.76E-
3
3.0
.5959331
-1.63E-
3
3.0
.6098443
-5.47E-
4
3.0
.6136354
-4.76E-
4
1.804922
.6389258
-1.68E-
4
1.804922
1.22192~
3.37E
-10
.6389258
1.221914
3.37E-
10
.6389258
1.216585
1.20E-
10
.6389258
.9277553
0.0
1.216585
Thus there are cases for which bisection
is
better,
as
our example shows. But for
sufficiently smooth functions with
f'(
a)
*
0,
Brent's algorithm
is
almost always
far faster.
Case (4)
f(x)
=
(x-
1) exp [
-1/(x-
1)
2
].
The root x = 1 has infinite mul-
tiplicity,
since
[<r>(1)
= 0 for all r
;;::
0.
The numerical results are given
in
Table
2.15. Note that the routine has found an exact root for the machine version of
f(x),
due to the inherent imprecision in the evaluation of the function;
see
the
preceding section on multiple roots. This root
is
of course very inaccurate, but
this
is
nothing that the program can treat.
Brent's original program, published in
1973, continues to be very popular and
well-used. Nonetheless, improvements and extensions of it continue
to
be made.
For
one of them, and for a
review
of others,
see
Le (1985).
2.9 Roots of Polynomials
We will now consider solving the polynomial equation
(2.9
.1)
This problem arises in many
ways,
and a large literature has been created to deal
with it. Sometimes a particular root
is
wanted and a good initial guess
is
known.
In
that case, the best approach
is
to
modify one of the earlier iterative methods to
take advantage of the special form of polynomials. In other cases, little may be
known about the location of the roots, and then other methods must be used, of
which there are many. In this section,
we
just
give
a brief excursion into the area
of polynomial rootfinding, without any pretense of completeness. Modifications
of the methods of earlier sections
will
be emphasized, and numerical stability
questions will
be
considered.
We
begin with a review of some results on bounding
or
roughly locating the roots of (2.9.1).