
A.5 Root Finding 871
nature of such functions. For 2 ≤ n ≤ 4, there are closed-form equations for the
roots of the polynomial. Direct application of the formulas is possible, but numer-
ical problems tend to occur, particularly when the polynomial has a root of mul-
tiplicity larger than 1. For example, the roots of a quadratic f(t)= at
2
+ b
t
+ c
are t = (−b ±
√
b
2
− 4ac)/(2a).Ifb
2
− 4ac = 0, the quadratic has a double root
t =−b/(2a). However, numerical round-off errors might cause b
2
− 4ac =−.<0
for very small .. Another condition that leads to numerical problems is if a is nearly
zero. If so, it is possible to solve g(t) = t
2
f(1/t) = ct
2
+ bt + a = 0 and get t =
(−b ±
√
b
2
− 4ac)/(2c). But the problem still exists if c is also nearly zero. Similar
problems occur with the formulas for cubic and quartic polynomials.
An approach based on iteration schemes is to attempt to bracket the roots in a
way that each bracketing interval contains exactly one root. For each such interval,
bisection can be applied to find the root. A hybrid scheme is also possible that mixes
bisection steps with Newton steps; the bisection step is used only when the Newton
step generates an iterate outside the current bracketing interval. The hope is that the
Newton iterates converge quickly to the root, but if they appear not to, bisection
attempts to generate better initial guesses for the Newton iteration.
Bounding Roots by Derivative Sequences
A simple approach to the bracketing problem is to partition R into intervals, the
polynomial f(t) being monotone on each interval. If it can be determined where
the derivative of the polynomial is zero, this set provides the partition. If d
i
and
d
i+1
are consecutive values for which f
(d
i
) =f
(d
i+1
) =0, then either f
(t) > 0on
(d
i
, d
i+1
) or f
(t) < 0on(d
i
, d
i+1
). In either case, f can have at most one root on the
interval. The existence of this root is guaranteed by the condition f(d
i
)f (d
i+1
)<0
or f(d
i
) = 0orf(d
i+1
) = 0.
Solving f
(t) =0 requires the same techniques as solving f(t)=0. The difference
is that degree(f
) =degree(f ) − 1. A recursive implementation is warranted for this
problem, the base case being the constant polynomial that is either never zero or
identically zero on the real line.
If f
(t) = 0 for t ∈ (−∞, d
0
), it is possible that f has a root on the semi-infinite
interval (−∞, d
0
]. Bisection does not help locate a root because the interval is un-
bounded. However, it is possible to determine the largest bounded interval that con-
tains the roots of a polynomial. The construction relies on the concepts of spectral
radius and norm of a matrix (see Horn and Johnson 1985). Given a square matrix
A, the spectral radius, denoted ρ(A), is the maximum of the absolute values of the
eigenvalues for the matrix. A matrix norm of A, denoted A, is a scalar-valued func-
tion that must satisfy the five conditions: A≥0, A=0 if and only if A = 0,
cA=|c|A for any scalar c, A + B≤A+B, and AB≤AB||.The
relationship between the spectral radius and any matrix norm is ρ(A) ≤A.Given
f(t)=
n
i=0
a
i
t
i
,wherea
n
= 1, the companion matrix is