Computation of the solutions of
nonlinear polynomial systems
By: E. C. Sherbrooke and N. M. Patrikalakis
1993
Presented by: Mahmod Mahameed
1
Agenda
• Introduction
• Notation and Definitions
• Formulation
• The Projected-Polyhedron Intersection Algorithm
• The Linear Programming Root Isolation Algorithm
• Main Algorithm
• Example and Conclusion
2
Introduction
• A fundamental problem in computer aided design and manufacturing is the
efficient computation of all solutions to a system of nonlinear polynomial
equations within some finite domain.
• This problem arises in many different applications, as varied as they are
numerous. For example, in computer aided design it is often necessary to
identify all characteristic points of an intersection curve between two
surfaces, in order to trace out all of the branches of the curve, if the
surfaces are piecewise rational polynomial, we must solve a system of
nonlinear polynomial equations in order to identify these points
• In these thesis, we describe two techniques for eliciting all real solutions to
a system of n nonlinear polynomial equations in n variables over an ndimensional rectangular domain.
3
Notation and Definitions
• The Euclidean norm |x| of a vector x is defined to be the quantity:
𝑥12 + 𝑥22 + ⋯ + 𝑥𝑛2
• A multi-index I is an ordered n-tuple of nonnegative integers (𝑖1 , 𝑖2 , …, 𝑖𝑛 ), We
say that I is bounded by the multi-index M = (, 𝑚2 , …, 𝑚𝑛 ) if:
0 <= 𝑖1 <= 𝑚1 , 0 <= 𝑖2 <= 𝑚2 , …, 0 <= 𝑖𝑛 <= 𝑚𝑛 .
We will use multi-indices as a shorthand for subscripting multi-dimensional
arrays, for example, if I =(2,3),then 𝑤𝐼 is equivalent to 𝑤23 .
We will use the notation 𝑀
where M is a bounding multi-index, to indicate
𝐼
that a sum is to be taken over all possible multi-indices I which are bounded by
M. For example if M = (1, 1), then 𝑀
𝐼 𝑤𝐼 ≡ 𝑤00 + 𝑤01 + 𝑤10 + 𝑤11 .
4
Notation and Definitions
• The i-th Bernstein polynomial of degree m is defined by:
𝑏𝑖,𝑚 (u) = 𝑚𝑖 𝑢𝑖 (1 − 𝑢)𝑚−𝑖
• The Bernstein multinomial determined by the multi-index I = (𝑖1 , 𝑖2 , ..,
𝑖𝑛 ) and the bounding multi-index M = (𝑚1 , 𝑚2 , .., 𝑚𝑛 ) is defined by:
𝐵𝐼,𝑀 (u) = 𝑏𝑖1 ,𝑚1 (𝑢1 ) 𝑏𝑖2 ,𝑚2 (𝑢2 ) … 𝑏𝑖𝑛 ,𝑚𝑛 (𝑢𝑛 ),
where u = (𝑢1 , 𝑢2 , .., 𝑢𝑛 ) ∈ 𝑅𝑛
• Let x = (𝑥1 , 𝑥2 , .., 𝑥𝑛 ) be an element of Rn and let f : 𝑅𝑛 -> R be a
function of x. The graph of f is the function 𝐺𝑓 : 𝑅𝑛 -> 𝑅𝑛+1 defined
by: 𝐺𝑓 (x) = (x, f(x))
5
Notation and Definitions
• Let x = (𝑥1 , 𝑥2 , .., 𝑥𝑛 ) be an element of 𝑅𝑛 . Then the i-th projection
map 𝜋𝑖 : 𝑅𝑛 -> R is defined by 𝜋𝑖 (x) = 𝑥𝑖
• Suppose P a set of m points of 𝑅𝑛 . Let C(P) denote the set of all x such
𝑚
that x = 𝑚
𝑐
𝑝
,where
for
each
i,
𝑝
∈
𝑃
and
𝑐
>=0,
and
𝑖
𝑖
𝑖=1 𝑖 𝑖
𝑖=1 𝑐𝑖 = 1
Then C(P) is called the convex hull of P.
• Suppose 𝑓1 , 𝑓2 ,.., 𝑓𝑛 are functions of the parameters 𝑥1 , 𝑥2 , .., 𝑥𝑛 .
𝜕{𝑓1 , 𝑓2 ,.., 𝑓𝑛 }
then the Jacobian matrix of the 𝑓𝑖 ,
, is a square, n x n
𝜕{𝑥1 , 𝑥2 ,.., 𝑥𝑛 }
𝜕𝑓𝑖
matrix whose element at row i, column j, is equal to
𝜕𝑥𝑗
6
Supplemental Algorithms
• Converting from Power to the Bernstein basis:
• Input:
• n – the number of the dimensions.
• m – array indexed from 1 to n of the degrees.
• a – n-dimensional array of the Power basis coefficients.
• Output:
• b – array of the
Bernstein coefficients.
7
Supplemental Algorithms
• Subdivision of a Multivariate Bernstein Polynomial (De Casteljau):
• Input:
• 𝑓0 - The input Polynomial.
• n – The number of the dimensions.
• m – Array indexed from
1 to n of the degrees.
• a, b – Two arrays which define
the domain S ∁ [0, 1]𝑛 of 𝑓0 ().
• Output:
• f – The output Polynomial.
• f(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 𝑓0 (a[1] + (b[1] – a[1])𝑥1 , … , a[n] + (b[n] – a[n])𝑥𝑛 )
• 𝑓0 , f are n-dimensional arrays indexed in i-th dimension from 0 to m[i].
8
Formulation
• Suppose we have a set of n functions of n variables 𝑓1 , 𝑓2 ,.., 𝑓𝑛 , each is
polynomial in the independent parameters 𝑢1 , 𝑢2 ,.., 𝑢𝑛 .
• 𝑀(𝑘) = (𝑚1 (𝑘) , 𝑚2 (𝑘) , …, 𝑚𝑛 (𝑘) ) Multi-index of the degrees
• S = [𝑎1 , 𝑏1 ] x [𝑎2 , 𝑏2 ] x … x [𝑎𝑛 , 𝑏𝑛 ], Search domain
• We want to find all u = (𝑢1 , 𝑢2 , …, 𝑢𝑛 ) ∈ S such that:
𝑓1 (u) = 𝑓2 (u) = … = 𝑓𝑛 (u) = 0
9
Formulation
• Bernstein basis & C-H requires to transform from S to [0, 1] 𝑛 using:
𝑢𝑖 = 𝑎𝑖 + 𝑥𝑖 (𝑏𝑖 - 𝑎𝑖 ) , and gives x ∈ [0, 1] 𝑛 such that: 𝑓1 (x) = 𝑓2 (x) = … = 𝑓𝑛 (x) = 0
• Bernstein basis gives an n-dimensional array of real coefficients
(𝑘)
(𝑘)
(𝑘)
M
𝑤𝑖1𝑖2 …𝑖𝑛 such that for each k ∈ {1, 2, …, n}: 𝑓𝑘 (x)= 𝐼
𝑤𝐼 𝐵𝐼,M(𝑘) (x)
• By building the graph of 𝑓𝑘 , 𝐹𝑘 (x) = (𝑥1 , 𝑥2 … , 𝑥𝑛 , 𝑓𝑘 (x)) = (x, 𝑓𝑘 (x))
• The target is: 𝐹1 (x) = 𝐹2 (x) = … = 𝐹𝑛 (x) = (x, 0)
10
Formulation
• Can be shown that: u =
𝑚 𝑖
𝑖=0 𝑚 𝑏𝑖,𝑚 (u) .
• u can be expressed as the weighted sum of Bernstein polynomials with coefficients
spaced
in the interval [0, 1] Using the summation unity property of the Bernstein basis
𝑀(𝐾)
( 𝐼
𝐵𝐼,𝑀 (u) = 1):
•
𝑥𝑗 =
𝑀(𝐾) 𝑖𝑗
𝐼
(𝑘) 𝐵𝐼,𝑀(𝐾) (x)
𝑚𝑗
• Substituting gives the following representation:
• 𝐹𝑘 (x) =
𝑀(𝐾) (𝑘)
𝑉𝐼 𝐵𝐼,𝑀(𝐾) (x)
𝐼
, 𝑉𝐼
(𝑘)
𝑖1
𝑖2
𝑖𝑛
𝑚1
𝑚2
𝑚𝑛
=(
(𝑘) ,
(𝑘) , …,
(𝑘)
)
(𝑘) , 𝑤𝐼
11
Motivation for the Algorithm
• We will use properties of Bernstein basis in order to eliminate parts of
the domain [0, 1]𝑛 which do not contain any roots.
• Positivity: 𝐵𝐼,𝑀 (u) ≥ 0 for u ∈ [0, 1]𝑛
𝑀(𝐾)
• Partition of unity: 𝐼
𝐵𝐼,𝑀 (u) = 1
(𝑘)
• Theorem: Let 𝑉 be the set of control points of 𝐹𝑘 , and C(𝑉
(𝑘)
the convex hull. Then for each k ∈ [1, 𝑛] : 𝐹𝑘 (x) ∈ C(𝑉 ) .
(𝑘)
) be
• Because every point on the hypersurface 𝐹𝑘 lies within the convex
hull of its control points, then we get the following theorem:
12
Motivation for the Algorithm
• Let x ∈ [0, 1]𝑛 be a point satisfying:
Let 𝑋𝑛+1 be the set of points of 𝑅𝑛+1 which lie on the hyperplane
𝑥𝑛+1 , then:
(x, 0) ∈
(𝑘)
𝑛
(C(𝑉
)
𝑘=1
𝑋𝑛+1 )
• Proof: Given that x satisfies
𝐹𝑘 (x) = (x, 0) for each k, then the point (x, 0) ∈ C(𝑉
so x satisfies
(𝑘)
) , also any
point of the form (x, 0) is automatically an element of 𝑋𝑛+1 .
13
Motivation for the Algorithm
• First attempt to write the algorithm of solving the main problem is:
• Form the convex hulls of all the 𝐹𝑘 and intersect them one another and with
the hyperplane 𝑥𝑛+1 = 0 . Call the intersection set A.
• Because A is the result of an intersection with the hyperplane 𝑥𝑛+1 = 0, it can
be expressed in the form A = 𝐴′ x {0} for some set 𝐴′ ∈ [0, 1]𝑛 .
so any root in [0, 1]𝑛 must lie inside 𝐴′ .
• We will call an element of 𝐴′ a feasible point.
14
Motivation for the Algorithm
• But this attempt requires us to solve two problems
• Forming the convex hull of a set of m points in n dimensions is O(𝑚
𝑛
2
+1
)
• Even when this convex hulls are generated, the time-consuming process of
intersecting them remains along with a large space requirement in which to
store the result.
• These challenges are the motivation of our algorithms of finding the
bounding boxes which will be presented.
15
Box generation
Projected Polyhedron
• This method generates a bounding box by considering n twodimensional problems on each iteration instead of one n+1
dimensional problem.
• Suppose we want to find [𝑎𝑗 , 𝑏𝑗 ], the j-th side of the bounding box B.
• 𝐷𝑒𝑓𝑖𝑛𝑒: 𝜋𝑗 : 𝑅𝑛+1 -> 𝑅2 by: 𝜋𝑗 (x) = (𝜋𝑗 (x) , 𝜋𝑛+1 (x))
• We will generate the two-dimensional convex hulls of these projected
points and intersect them with one another and with the x-axis.
• Let us call the set resulting from this intersection 𝐵𝑗
• 𝐵𝑗 is a subset of the x-axis, so we can say 𝐵𝑗 = 𝐵𝑗′ x {0}
16
Box generation
Projected Polyhedron
• Let 𝐴′ be the set of feasible points as before.
• We want to show that 𝐴′ ∁ B = 𝐵1′ x 𝐵2′ x … x 𝐵𝑛′
• Theorem:
• Let
• Let
(𝑘)
(𝑘)
𝑉𝑗,𝐼 = 𝜋𝑗 (𝑉𝐼 ) for specific j and k and for each I bounded
(𝑘)
(𝑘)
𝑉𝑗 be the set of these two dimension points 𝑉𝑗,𝐼 .
(𝑘)
(𝑘)
C(𝑉𝑗 ) be the convex hull of 𝑉𝑗 .
by 𝑀(𝑘) .
• Let
• Let 𝑋2 be the x-axis (x, y=0)
(𝑘)
• Let 𝐵𝑗 = 𝑛𝑘=0(C(𝑉𝑗 ) 𝑋2 ) , express 𝐵𝑗 in the form 𝐵𝑗′ x {0}.
Then if B = 𝐵1′ x 𝐵2′ x … x 𝐵𝑛′ , so 𝐴′ ∁ B.
17
Box generation
Projected Polyhedron
• Proof:
• Let x
and
(𝑘)
∈ 𝐴 , then for some choice of coefficients {𝐶𝐼 } such
𝑀(𝑘) (𝑘)
𝑀(𝑘) (𝑘) (𝑘)
𝐶𝐼 = 1 , we must have (x, 0) = 𝐼 𝐶𝐼 𝑉𝐼
𝐼
′
• For all k, taking 𝜋𝑗 of both sides, we obtain: (𝑥𝑗 , 0) =
that each
(𝑘)
𝐶𝐼
≥0
𝑀(𝑘) (𝑘) (𝑘)
𝐶𝐼 𝑉𝑗,𝐼
𝐼
(𝑘)
• Therefore (𝑥𝑗 , 0) ∈ C(𝑉𝑗 ) for all k, and automatically (𝑥𝑗 , 0) ∈ 𝑋2 , So (𝑥𝑗 , 0) ∈ 𝐵𝑗
which means that 𝑥𝑗 ∈ 𝐵𝑗′ , also this fact is true for all j So we can conclude: x∈ B
which leads to the desired fact that 𝐴′ ∁ B.
18
Projected Polyhedron
Analysis
• Let assume: n - number of variables, m – is the degree of each variable.
• The total execution time to perform the projection in one direction is:
• O(𝑚𝑛+1 )
• There are a total of n convex hulls which need to be intersected in a given
projection plane, So the total execution time is:
• O(n 𝑚𝑛+1 )
• There are n different projection planes for each side of the box, So the total
execution time is:
• O(𝑛2 𝑚𝑛+1 )
19
Box generation
Linear Programming
• The approach now for finding every single side [𝑎𝑖 , 𝑏𝑖 ], is by finding the
following statements:
𝑚𝑎𝑥
• 𝑎𝑖 = 𝑚𝑎𝑥
𝑥∈𝐴 {𝑥𝑖 } , 𝑏𝑖 = 𝑥∈𝐴 {𝑥𝑖 }
• The proof that 𝐴′ lies within the box determined by the 𝑎𝑖 and the 𝑏𝑖 is trivial.
• To use LP we need to rewrite the constraint equations by the fact x ∈
• Theorem:
(𝑘)
Point x ∈ 𝑅𝑛+1 is in A if and only if there exist nonnegative coefficients 𝑐𝐼
(𝑘)
• (*) For each j between 1 and n and for k between 1 and n such that 𝑚𝑗
•
𝑀 (𝑘)
𝐼
(𝑘)
𝑐𝐼
𝑖𝑗
(𝑘)
𝑚𝑗
C(𝑉 (𝑘) )
if : x=
𝑀(𝑘) (𝑘) (𝑘)
𝐶𝐼 𝑉𝐼
𝐼
such that:
≠ 0:
= 𝑥𝑗
• (**) For each k between 1 and n:
•
𝑀 (𝑘) (𝑘) (𝑘)
𝑐𝐼 𝑤𝐼
𝐼
=0
• (***) For each k between 1 and n:
•
𝑀 (𝑘) (𝑘)
𝑐𝐼
𝐼
=1
20
Box generation
Linear Programming
• Suppose that we want to solve the min problem, finding the minimum
value of 𝑥𝑖 over all x ∈ A .
• Since (*) must hold for i = j and for all k, minimizing 𝑥𝑖 is equivalent to
𝑀(1) (1) 𝑖𝑖
minimizing. 𝑥𝑖 = 𝐼 𝑐𝐼
(1)
𝑚𝑖
• Linear programming are posed as follows:
• Given a p x q matrix C of constraint function coefficients, a q-vector u of
nonnegative unknowns, a p-vector r of right-hand sides, and a q-vector c
of objective function coefficients, minimize 𝑐 𝑇 𝑢 over all possible u which
satisfy Cu = r.
21
Box generation
Linear Programming
• With a small amount of algebra we can rewrite our minimization
problem in the form of matrix problems.
• For finding the maximum of 𝑐 𝑇 𝑢 , we can simply negate all of the
elements of c and obtain a minimization problem.
• The vector u of unknowns is all of the
of elements of u, is given by:
• q=
𝑛
𝑘=1
𝑘
(𝑘)
(𝑘)
𝑐𝐼
,as a result, q , the number
(𝑘)
(𝑚1 + 1)(𝑚2 + 1) … (𝑚𝑛 + 1) = (𝑚 + 1)𝑛
• The 2n obtained by writing (**) and (***) are directly inserted into C
22
Box generation
Linear Programming
• In order to put (*) into C we must eliminate the 𝑥𝑗 from the equations
by the following way:
• For all 1 ≤ j ≤ n and all 1 ≤ k ≤ n-1:
if x is in A and if there exists a 𝑘 ′ which is the smallest integer such that
k≤
𝑘′
≤ n and
𝑀(𝑘)
𝐼
(𝑘) 𝑖𝑗
𝑐𝐼
(𝑘)
𝑚
𝑗
-
′)
(𝑘
𝑀
𝐼
(𝑘 ′ )
𝑐𝐼
𝑖𝑗
(𝑘′ )
𝑚𝑗
= 0
• Note that there is no more than 𝑛2 - n equations of such 𝑘 ′ .
• So we get that: p ≤ 2n + 𝑛2 - n = 𝑛2 + n .
23
Linear Programming
Analysis
• Let assume: n - number of variables, m – is the degree of each variable.
• The simplex method which solves the p x q C matrix to generate a
solution is: O(𝑝2 q).
• As we saw the largest possible value of p is (𝑛2 + n) , also saw that
q = (𝑚 + 1)𝑛 , then the complexity of one execution of the linear
programming solver is O(𝑛4 𝑚𝑛 )
24
Linear Programming
Analysis
• Note that we need to execute the above method 2n times, n
maximums and n minimums, so the final complexity is: O(𝑛5 𝑚𝑛 ).
• As we saw from Projected Polyhedron, that the cost of subdivision on
the current box is: O(𝑛2 𝑚𝑛+1 )
• So the total execution cost is: O(𝑛5 𝑚𝑛 + 𝑛2 𝑚𝑛+1 )
25
Main Algorithm
1- Start with an initial box of search.
2- Use the multivariate De Casteljau subdivision to transform the
n-functions from the initial 𝑅𝑛 box to [0, 1]𝑛 .
3- Find a sub-box of [0, 1]𝑛 which contains all the roots.
• Projected Polyhedron method
• Linear Programming method
26
Main Algorithm
4- Using the reverse of the transformation we used in step 2, determine
what this sub-box corresponds to in 𝑅𝑛 :
• If the actual box in 𝑅𝑛 is sufficiently small, conclude that there is a root
inside and return the midpoint of the box as an approximation to it
5- If any dimensions of the sub-box in step 3 are not much smaller than
1 unit in length, split the box at the midpoint of each dimension which is
causing trouble. (will get 2^k boxes, k is number of trouble dimensions)
6- Go back to step 2, once for each new box.
27
Notes
• Step 2 is needed in order to use the convex hull property.
• Step 5 is typically invoked when the box contains more than one root.
• On a typical iteration Step 5 will not be invoked and step 6 will only send one box back to
step 2 for processing.
• The algorithm is finite – we have a finite tree calls from step 5-6
Which leads to the roots on the leafs of the tree.
• We don’t know how many children will result from a step of the algorithm, so the time
will vary from step to step.
• But instead we can get a useful estimate by assessing the cost of each iteration of step 3.
28
Choosing an Algorithm
• Let assume that: n - number of variables, m – is the degree of each variable.
• The difference between both Algorithms is the third step which generates the
bounding box.
• There are two cases to consider which way of generating the bounding box is preferred:
• If 𝑛3 ≤ m, the second term of the LP complexity estimate is more important, and thus
both the LP and PP algorithms have the same asymptotic time of O(𝑛2 𝑚𝑛+1 ) .
• Otherwise, the PP algorithm is faster by a factor of
𝑛3
𝑚
.
29
Choosing an Algorithm
• When we have a large number of roots in the specified domain, both
algorithms are forced to perform a large number of subdivision steps.
In such case The PP algorithm tends to perform better.
• The LP algorithm performs better when n is small and the number of
iterations required is small.
• The LP algorithm performs better when n is small and there is multiple
roots.
30
Examples
Intersection two simple planar curves
• Suppose we want to intersect a circular arc with an elliptical arc:
𝑥2
+
𝑦2
- 1 = 0,
𝑥2
4
+ 4𝑦 2 - 1 = 0, 0 ≤ x ≤ 1, 0 ≤ y ≤ 1
• Simple algebra will show that the intersection point is:
(0.894427191, 0.447213595).
• We want to solve the intersection problem with the two methods.
31
Projected Polyhedron
Intersection two simple planar curves
• [𝑏0,2 (𝑥)
• [𝑏0,2 (𝑥)
𝑏1,2 (𝑥)
𝑏1,2 (𝑥)
𝑏2,2 (𝑥)]
−1
−1
0
𝑏2,2 (𝑥)]
−1
−1
3/4
−1 0
−1 0
0 1
−1
−1
3/4
𝑏0,2 (𝑦)
𝑏1,2 (𝑦) = 0
𝑏2,2 (𝑦)
3
3
13/4
𝑏0,2 (𝑦)
𝑏1,2 (𝑦) = 0
𝑏2,2 (𝑦)
32
Projected Polyhedron
Intersection two simple planar curves
33
Linear Programming
Intersection two simple planar curves
• The constraint matrix C as follows:
0 0 00.50.50.51 1 1 0 0 0 −0.5−0.5−0.5 −1 −1 −1
0 0.51 0 0.5 1 00.5 1 0−0.5−1 0 −0.5 −1 0 −0.5 −1
−1−10−1−1 0 0 0 1 1 1 −3 1
1 −3 3/4 3/4 −13/4
−1−10−1−1 0 0 0 1 0 0 0 0
0 0 0
0
0
1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0
0
0 0 0 0 0 0 0 0 01 1 1 1
1 1 1
1
1
• The vector of right-hand-sides r will be:
0 0 0 0 0 1 1
34
Linear Programming
Intersection two simple planar curves
35
Conclusion
• Today we presented two methods of finding the bounding box, which
helps us to solve the main problem - solutions of nonlinear polynomials –
which is a fundamental problem in computer aided design and
manufacturing .
• We also presented some comparison between the two methods and which
one is preferred in terms of complexity, also presented two examples which
clarifies the using of both methods.
• We should remember that when we are solving a problem with high
degree and high dimensional, both algorithms tends to be expensive.
36
Thank you
37
© Copyright 2026 Paperzz