In this section we introduce an iterative global root-finding
algorithm for an
-dimensional nonlinear polynomial equation
system, which belongs to the class of subdivision methods, called Projected Polyhedron (PP) algorithm developed by Sherbrooke and
Patrikalakis
[392].
It is easy to visualize and simple in that it only requires two
straightforward algorithms in order to implement it: one for
subdividing multivariate polynomials in Bernstein form, and one for
finding the convex hull of a two-dimensional set of points. This
algorithm is an extension and generalization of earlier adaptive
subdivision algorithms: for
used in finding the real roots and
extrema of a polynomial within an interval by Lane and Riesenfeld
[221], and for
used in shape interrogation by Geisow
[124] or in intersecting rays with trimmed
rational polynomial surface patches by Nishita et al. [286]
(a method known as Bézier clipping). The PP algorithm has found
many applications in shape interrogation problems (see also Grandine and Klein
[133]) as we will see in subsequent sections and its
convergence, rate of convergence and complexity properties are
developed in
[392].
For
illustration, we will enumerate the procedures required by the
PP algorithm to find roots of a degree
polynomial
equation
over the
interval
.
Make an affine parameter
transformation
such that
as follows:
(4.9)
The transition from the interval
to the interval
is an affine map, and the polynomials are invariant
under affine parameter transformation [92].
Convert the basis from monomial to Bernstein [106]:
(4.10)
where
(4.11)
and
is the
th Bernstein polynomial of degree
.
Create a graph
of function
using the linear precision property of
Bernstein polynomials (see (1.21)). Then
the graph will become a Bézier curve
(4.12)
where
are control points. Now the
problem of finding roots of the univariate polynomial has been
transformed into a geometric problem of finding the intersection of a
Bézier curve with the parameter axis, a transformation already
used in Geisow [124] for surface interrogation.
Construct the convex hull of the Bézier curve.
Intersect the convex hull with the parameter axis.
Discard the regions which do
not contain roots by applying the de Casteljau subdivision
algorithm and find a sub-region of [0,1] which may contain the root(s).
If the sub-region is sufficiently small, we conclude
that there is a root inside and return it. But when there are more
than one root in the sub-region, the sub-region will not be
reduced. In such case we split the region evenly by applying the de
Casteljau subdivision algorithm and we go back to 4.
Example 4.4.1.
PP algorithm in one dimension.
Find the roots of
where
. The roots are approximately, 0.164 and 1.108.
Make an affine parameter transformation by
plugging
into
yielding
where
.
Convert from monomial to Bernstein basis
using (4.11) as below
where
,
and
, thus
leading to
,
and
.
Create a graph
of function
using linear precision property of the
Bernstein polynomial
yielding a Bézier curve
with control points of
(0, -0.2), (0.5, 1.2) and (1, -1.8).
Construct a convex hull of the Bézier curve, which
is a triangle as shown in Fig. 4.3.
The convex hull intersects the t-axis with
and
.
Discard the regions
and
,
which do not contain roots, by applying the de Casteljau algorithm.
Now we have a smaller convex hull which contains the
roots (see shaded triangular in Fig. 4.3).
If the sub-region is sufficiently small, we conclude
that there is a root inside and return it. In this case there are two
roots in the convex hull and the sub-region does not reduce
much (even after several iteration steps), thus we split the region evenly
by applying the de
Casteljau subdivision algorithm and go back to 4.
Figure 4.3:
de
Casteljau algorithm applied to the quadratic Bézier curve
Example 4.4.2. PP algorithm in two dimensions.
Let us solve the system of polynomial equations (4.2) and
(4.3) over the region
.
Make an affine parameter transformation by substituting
and
into (4.2) and
(4.3) so that
, then:
Convert from monomial to Bernstein basis using
where in this case
leading to
and
Create graphs of functions
and
using
the linear precision property of Bernstein polynomials.
Then the graphs will become two Bézier surfaces as follows:
The two Bézier surfaces are shown in Fig. 4.4.
Now the root-finding problem of the bivariate polynomial system has
been transformed to find the intersections of three surfaces,
,
and the
-plane. Figure 4.5 shows the
intersection between the plane and both Bézier surfaces. We can
easily observe that the two intersection curves are the circles in
Fig. 4.1 but trimmed in the resulting
domain.
Figure 4.4:
Bézier surfaces and their control points
Figure 4.5:
Bézier surfaces intersecting with
-plane
Project the control points of
and
onto
and
planes. Here
,
. For each
and
plane, construct 2-D convex hulls. Figure 4.6 (a)
shows 2-D convex hulls on the
plane, while Fig.
4.6 (b) shows 2-D convex hulls on the
plane. The
solid line corresponds to convex hull of
and the
dashed line corresponds to that of
.
Figure 4.6:
Projections of control points
Intersect each 2-D convex hull on the
plane with
(
)
axis. The parameter interval
contains
solutions of (4.2), while the interval
contains solutions of (4.3).
The root is contained in the common interval
of
.
We will repeat the same procedures for the 2-D convex hulls
on the
plane to find the common interval
of
.
Discard the reigion
of
and regions
of
which do not contain the roots by applying the
de Casteljau subdivision algorithm to both Bézier surfaces.
If the sub-regions of both parameters are sufficiently small,
we conclude that there is a root. In this case, the sub-region of
the
parameter will not decrease much in size because there are two
roots, while the interval decreases more in
parameter, since the
two roots have the same
value. We split the sub-region of
evenly by applying the de Casteljau subdivision algorithm for both surfaces
and we go back to step 4.
Many applications in shape interrogation result in systems of
nonlinear
polynomial equations with
unknowns, referred to as balanced
systems. However, there
exist some problems such as tangential intersection or
implicit curve/surface rendering consisting of
nonlinear
polynomial equations with
unknowns, where
could be larger or
smaller than
. When
the system is called overconstrained and when
it is called underconstrained. Now we will introduce an
-dimensional Projected-Polyhedron algorithm such that it can
effectively handle overconstrained problems
[392,179]. This algorithm can also be used in
underconstrained problems but in such cases it tends to be slow
(especially in the presence of infinite roots); for such cases more
specialized algorithms are necessary (e.g. parametric surface
intersections where
, and
). In such cases the PP algorithm
is used to find characteristic points efficiently and marching methods
are used to trace the intersection curves (see Sect. 5.8.2).
Suppose we are given a set of
nonlinear
polynomials
, each of which is polynomial
in the independent variables
. Let
denote the degree in
of polynomial
, so
that the multi-index
describes all the degree information of
. Furthermore, suppose we are given an
-dimensional rectangular
subset of
(4.13)
A priori knowledge of
is one of the main features of geometric
modeling and shape interrogation problems.
We wish to find all points
such that
(4.14)
By making the affine parameter transformation [92]
for each
between
and
inclusive, we simplify the problem to one of determining all
such that
(4.15)
Since all of the
are polynomial in each of the
independent
variables, a simple change of basis [92] allows us to
express them in the multivariate Bernstein basis, which has better
numerical stability under perturbation of its coefficients than the
power basis [105] as we discussed in Sect.
1.3.3 and in addition permits transformation of an
algebraic problem to a geometric problem. In other words, for each
there exists an
-dimensional array of real coefficients
such that for each
(4.16)
The notation in
(4.16) may be simplified by letting
,
= (
,
,
,
)
and writing (4.16) in the equivalent form
(4.17)
Representation of algebraic and piecewise algebraic surfaces (i.e.,
for
) in terms of tensor products of Bernstein polynomials or
B-splines has been studied earlier by Patrikalakis and Kriezis [299]. Equation (4.17) is simply an extension
to
dimensions. Provided that conversion of the problem to the
Bernstein basis is exact or sufficiently accurate, the use of the
Bernstein basis in conjunction with subdivision is known to be
numerically stable [105]. The conversion process itself
may be numerically ill-conditioned [106]. Therefore, we
recommend that the problem be formulated in the Bernstein basis from
the very beginning or that the conversion is carried out in exact
arithmetic. If necessary, polynomials may be converted from the
multivariate power basis to the multivariate Bernstein basis using the
following formula:
(4.18)
We now restate the problem as the intersection of the graphs
of the
(each of which is a hypersurface in
and
the hyperplane
of
. This idea is designed
to impart geometrical significance to the coefficients of the
polynomials and to the solution process.
Let us build a graph
for each
:
(4.19)
Clearly, (4.15) is satisfied by the point
if and only if
(4.20)
Using the linear precision property of
the Bernstein basis (1.21), we obtain an
equivalent expression for each of the
in equation
(4.19):
(4.21)
Substituting (4.21) into (4.19) gives a more useful representation for the
:
(4.22)
where
(4.23)
The
are called the control points of
. Using the parametric hypersurfaces
instead of the real-valued
permits use of the powerful
convex-hull property of the multivariate Bernstein basis.
We assume we are given
nonlinear polynomial equations with
variables in the power basis, where
, and a box
, in
which we need to determine the roots of the given system. In this
case we first scale the box by performing an appropriate affine
parameter transformation described above to the functions
, so
that the box becomes
. Next we
express the transformed nonlinear polynomial equations in the
multivariate Bernstein basis using (4.18).
Now we summarize the PP algorithm.
Using the convex hull property, find a sub-box of
which contains all the roots.
The essential idea behind the box generation scheme in this algorithm
is to transform a complicated
-dimensional problem into a series
of
two-dimensional problems. Suppose
can be
coordinatized with the
axes; we can then
employ these steps:
Project the
of all of the
into
different coordinate planes; specifically, the
-plane,
the
-plane, and so on, up to the
plane.
In each one of these planes,
Construct
two-dimensional convex hulls. The first is the
convex hull of the projected control points of
, the second is
from
and so on.
Intersect each convex hull with the horizontal axis (that is,
). Because the polygon is convex, the intersection may be
either a closed interval (which may degenerate to a point) or empty.
If it is empty, then no root of the system exists within the given
search box.
Intersect the intervals with one another. Again, if the result
is empty, no root exists within the given search box.
Construct an
-dimensional box by taking the Cartesian product
of each one of these intervals in order. In other words, the
side of the box is the interval resulting from the intersection in the
-plane, and so forth.
Using the scaling relationship between our current box and the
initial box of search, see if the new sub-box represents a
sufficiently small box in
. If it does not, then go to step
3. If it does, then check the
convex hulls of the hypersurface in the new box. If the convex hulls cross
each variable axis, conclude that there
is a root or at least an approximate root in the new box, and put
the new box into a root list. Otherwise
the new box is discarded.
If any dimension of this sub-box is not much smaller than 1
unit in length (i.e., the box has not decreased much in size along one
or more sides), split the box evenly along each dimension which is
causing trouble (not reducing in size). Continue on to the next
iteration with several independent sub-problems.
If none of the boxes is left, then the root-finding process is
over. Otherwise, perform an appropriate affine parameter
transformation to the functions
, so that the box becomes
, and go back to step 1 for each new box. This transformation
can be performed with the multivariate de Casteljau subdivision
algorithm which is an extension of
similar algorithms for 1 and 2 dimensions given in [92].
However, keep track of the scaling relationship between this box and
the initial box of search.
If we assume that each equation in (4.14) is of degree
in each variable and the system is
-dimensional, then the total
asymptotic time per step is of
. The number of steps
depends primarily on the accuracy required [392]. The
Projected Polyhedron algorithm achieves quadratic convergence in one
dimension, while for higher dimensions, it exhibits at best linear
convergence [392]. Once roots have been isolated via
the PP algorithm, local quadratically convergent Newton-type
algorithms can be used to compute the roots to high precision more
efficiently. An extension of the algorithm described above for a set
of simultaneous piecewise polynomial nonlinear equations expressed in
terms of tensor product B-splines can be found in
[132]. A novel feature of this extension is the
normalization of the equations in the range [-1,1] and normalization
of the knot vector in each subdomain in range [0,1] at each iteration
step of the process to capitalize on the higher density of floating
point numbers in this range, thereby improving numerical robustness of
the algorithm.
Because the PP algorithm depends only on the convex hull property and
ability to perform subdivision and multiplication, in theory one could
implement the algorithm for rational B-spline entities without
subdividing them into their rational Bézier components.
Subdivision algorithms for B-splines are well-known, and Mørken
[270] has developed an algorithm for multiplying two
piecewise polynomials expressed in the B-spline basis. However, Zhou et al.
[461] indicate that this approach sometimes tends to be more
time-consuming than subdividing into rational polynomials and applying
direct algebraic operations of addition and multiplication of two
Bernstein forms (see Sect. 1.3.2). Piegl and
Tiller [315] provide detailed description of the procedures
that can handle algebraic operators of NURBS curves and surfaces such
as dot and cross products, sum/difference and derivative operators.
They start with decomposing the B-splines into their Bézier
components using knot insertion, and applying the algebraic operators
to the Bézier functions and finally recomposing the resulting
Bézier functions into B-spline form using knot removal.