Polynomials form one of the oldest classes of mathematical functions
in mathematics with an important history in science, engineering, and other
quantitative fields [Pan, 1997], [Pan, 1998], [Traub, 1998], [Derbyshire, 2006], [Sitton, 2003]. Part of the
polynomial's appeal comes from the fact that it may be numerically evaluated
using a finite number of multiplications and additions. Another advantage
it presents is its use in modeling physical processes or complicated mathematical
functions. Polynomials are used to build expansion systems or basis sets in
various vector spaces. Segments of polynomials are used to create splines.
It is worth studying the basic ideas and the variety of applications.
Polynomials are introduced early in the teaching of algebra as a means of
demonstrating basic principles and methods, e.g. substitution, simplification,
and factoring. Most people are aware that there exist formulas for factoring
quadratic (2nd degree), cubic (3rd degree), and quartic (4th degree) polynomials.
In 1824 the mathematician Niels Abel proved that there is no possible "closed form" solution in terms of basic operations for the general pentic or quintic (5th degree) polynomial or those of
higher degrees. This fact requires the development of effective numerical methods
for iteratively factoring polynomials above degree 4.
The results reported in these modules are from a group at Rice University called the "Polynomial Club" (Jim Fox, Sidney Burrus, Gary Sitton, and Sven Treitel). The program was designed and written by Jim Fox.
The definition of an NNth degree polynomial is
f
(
z
)
=
a
0
+
a
1
z
+
a
2
z
2
+
⋯
+
a
N
z
N
=
∑
k
=
0
N
a
k
z
k
f
(
z
)
=
a
0
+
a
1
z
+
a
2
z
2
+
⋯
+
a
N
z
N
=
∑
k
=
0
N
a
k
z
k
(1)
where both f(z)f(z) and zz are complex valued
and the coefficients akak can be complex but are often real valued. NN,
which is the highest power of zz in the polynomial, is called the
degree (or sometimes the order) of the polynomial. The number of
coefficients is N+1N+1.
From the various forms of the Fundamental Theorem of Algebra, one
can show that all polynomials can also be expressed in a “factored" form
by
f
(
z
)
=
a
N
∏
r
=
1
N
(
z
-
z
r
)
f
(
z
)
=
a
N
∏
r
=
1
N
(
z
-
z
r
)
(2)
where the possibly complex valued zrzr are called the “zeros" of the
polynomial since f(zk)=0f(zk)=0. Because the zeros are not necessarily
distinct, a unique form of (Equation 2) is given by
f
(
z
)
=
a
N
∏
k
=
1
L
(
z
-
z
k
)
M
k
f
(
z
)
=
a
N
∏
k
=
1
L
(
z
-
z
k
)
M
k
(3)
where MkMk is the multiplicity of the kthkth zero, LL is the number
of distinct zeros, and ∑kMk=N∑kMk=N. The first degree polynomials
(z-zk)(z-zk) in (Equation 2) and (Equation 3) are called the factors of f(z)f(z). Note the analogy between polynomials and integers.
Indeed, multiplying two polynomials is the same operation as multiplying
two integers (except for carrying) or convolving two number sequences.
Creating (Equation 1) from (Equation 2) or (Equation 3) is fairly straight
forward and requires only a finite number of arithmetic operations, but
finding (Equation 2) or (Equation 3) from (Equation 1) is difficult. That
process is called “factoring" the polynomial and is the topic of these
notes. Actually, the effects of finite precision arithmetic sometimes make
the "unfactoring" process of calculating (Equation 1) from (Equation 2) or
(Equation 3) poorly defined because it depends on the sequence order of
combining the zeros.
One can look at the zeros of a polynomial as being a second
parameterization of the polynomial with the coefficient form of
(Equation 1) being the first. A combination would be expressing an even
degree polynomial as the product of two N/2N/2 degree polynomials.
Factoring and “unfactoring" can create a variety of parameterizations for
both discrete-time signals and systems.
- Evaluating the polynomial and its derivatives.
“polyval" in Matlab or Horner's method
- Factoring the polynomial. “roots" in Matlab
- Composing the factors. “poly" in Matlab or convolution perhaps using the FFT.
- Deflating the
polynomial by a root. Horner's method or FFT division.
If the polynomial is represented in factored form (Equation 2), then
the coefficient sum form (Equation 1) may be easily found by computing the
product of the MM linear polynomial factors. This is done by multiplying
the linear factors one at a time and collecting all coefficients of like
powers in the product. As will be shown later, this is equivalent to a
cascaded discrete convolution of all of the polynomial coefficients
where the rthrth linear polynomial is represented as a doublet set of
two coefficients {-zr,1}{-zr,1} where the leading coefficient -zr-zr is
usually complex. This computation allows the reconstruction of the
coefficients of the polynomial corresponding to this root set. We call
this process unfactoring but it can lead to large numerical
inaccuracies for a surprisingly small number of terms. The main concern here is with the inverse or factoring problem:
given the coefficient form (Equation 1), find the factored form
(Equation 2).
The common case of purely real polynomial coefficients leads to a
simplification: All of the complex roots of a real polynomial occur
in complex conjugate pairs. Given the rthrth complex root
zr=xr+iyrzr=xr+iyr, its complex conjugate is given by zr*=xr-iyrzr*=xr-iyr.
Thus for yr≠0yr≠0, a complex root zrzr will always be associated
with its conjugate zr*zr* to form a conjugate root pair. This pair of
roots represents the product of two linear factors forming a real
quadratic or second degree factor:
(
z
-
z
r
)
(
z
-
z
r
*
)
=
(
x
2
+
y
2
)
-
2
x
r
z
+
z
2
(
z
-
z
r
)
(
z
-
z
r
*
)
=
(
x
2
+
y
2
)
-
2
x
r
z
+
z
2
(4)
From (Equation 2) a polynomial may be defined as the product of all of its
factors. If the factors have only real coefficients, then the product of
all the factors will have only real coefficients anan. Thus only half
of the complex roots need be found, say in the upper complex half-plane
with positive imaginary parts, i.e. yr≥0yr≥0. The associated
conjugate roots in the lower half-plane may be trivially derived by simple
negation of their imaginary parts.
Most of the results in these modules are based on extensive numerical
experimentation. We have built on existing theory and techniques with
empirically derived rules and algorithms that perform well on well-conditioned
polynomials and, in many cases, specifically applied to signal processing
applications with random coefficients.
Below are three approaches to factoring polynomials:
- Find and Deflate: The usual algorithms for factoring
polynomials starts by guessing or estimating the value of a zero, then
using some descent method on |f(z)|, find a single zero. This zero is
then removed from f(z) by "deflation" and the process repeated on the
reduced degree quotient polynomial. The descent method is often Newton's
method which is implemented with Horner's method . There may be problems
with error accumulation which, after several deflations, results in
failure. Also, if the zeros are not found and removed in a carefully
chosen order, the quotient polynomial becomes poorly conditioned. This set of procedures is
often simply called Newton's method. Methods presented in these notes
include "Random Argument", "Chosen Argument", and "Pre-Whitening", all of
which try to maintain or improve the conditioning of the quotient
polynomial produced by deflation. The deflation itself must be done in a
"stable" way to prevent error accumulation. In some cases, this involves
using Horner's method and in others, the DFT.
- Eigenvalue Method: If the companion matrix for the polynomial
is created, its eigenvalues are the zeros of the polynomial. Because very
sophisticated algorithms have been developed for finding eigenvalues, this
is a powerful and robust approach. However, it requires considerable
computer memory for the matrices and is computationally inefficient and,
therefore, slow. Matlab uses this approach.
- Grid Search: If one has knowledge from the structure of the
polynomial what regions in the complex plane contain the zeros, a direct
search can be used. Because a large class of polynomials, including those
with random coefficients, have their zeros clusters around the unit
circle, a very efficient polar coordinate grid search can be conducted to
find good estimates for the zeros which are then found accurately by a
Newton's or Leguerre's algorithm. The Lindsey-Fox algorithm uses this
approach. A description of the
Lindsey-Fox program
-
J. Derbyshire,
Unknown Quantity: A Real and Imaginary History of Algebra.
Joseph Henry Press, an imprint of the National Academies Press,
Washington,
2006.
-
V. Y. Pan,
"Solving a polynomial equation: some history and recent progress".
SIAM Review.
No. 2,
Vol. 39,
June
1997.
pp. 187–220.
-
V. Y. Pan,
"Solving Polynomials with Computers".
American Scientist.
No. 1,
Vol. 86,
January-February
1998.
pp. 62–69.
-
G. Sitton, C. S. Burrus, J. W. Fox, and S. Treitel,
"Factoring Very High Degree Polynomials in Signal Processing".
Signal Processing Magazine.
No. 6,
Vol. 20,
November
2003.
pp. 27–42.
-
J. F. Traub,
"Another Algorithm".
American Scientist.
No. 2,
Vol. 86,
March-April
1998.
pp. 108–109.
-
J. M. McNamee
"A Bibliography on Roots of Polynomials",
J. Comput. Appl. Math.,
47 (1993) pp. 391-394.
78 (1997).
110 (1999) pp. 305-306.