14
Computer Aided Geometric Design 26 (2009) 217–230 Contents lists available at ScienceDirect Computer Aided Geometric Design www.elsevier.com/locate/cagd μ-bases for polynomial systems in one variable Ning Song , Ron Goldman Rice University, Computer Science, Houston, TX, United States article info abstract Article history: Received 11 December 2006 Received in revised form 20 March 2008 Accepted 18 April 2008 Available online 24 April 2008 The notion of a μ-basis for an arbitrary number of polynomials in one variable is defined. The basic properties of these μ-bases are derived, and an algorithm is presented based on Gaussian Elimination to calculate a μ-basis for any collection of univariate polynomials. These μ-bases are then applied to solve implicitization, inversion and intersection problems for rational space curves. Systems where base points are present are also discussed. Published by Elsevier B.V. 1. Introduction μ-bases for three polynomials in one variable turn out to be quite handy in the study of rational planar curves. Here we shall extend the method of μ-bases to an arbitrary number of polynomials in one variable, and we will apply μ-bases to study rational non-planar curves. The concept of μ-bases originated from a series of papers by Sederberg, Cox, Chen and their collaborators (Chen and Sederberg, 2002; Cox et al., 2000; Sederberg and Chen, 1995; Sederberg et al., 1997, 1994). μ-bases can be used to implic- itize as well as to find singularities for rational planar curves (Song et al., 2007). Normally we represent a rational planar curve in homogeneous form by three polynomials in one variable. The definition and properties of a μ-basis for three polynomials in one variable are discussed in Chen and Wang (2003) and algorithms for calculating a μ-basis for three uni- variate polynomials are presented in Cox et al. (1998). Chen and Wang (2003) provide an improved algorithm for computing μ-bases, where the main calculation is based on Gaussian Elimination. Here we extend the definition of a μ-basis to systems that contain an arbitrary number of polynomials in one variable, and we provide a generalized algorithm based on Gaussian Elimination to calculate a μ-basis for an arbitrary number of univariate polynomials. We shall show that μ-bases for four polynomials in one variable can be used to solve implicitization, inversion and intersection problems for rational space curves. Special situations such as when common factors are present will also be discussed. 2. μ-bases for multi-polynomial systems In this section we shall present the definition and properties of μ-bases for k-polynomials in R [t ], the ring of polynomials in one variable with real coefficients. For simplicity, we will assume here that the polynomial systems have no common factor. Systems where common factors are present will be discussed in Section 4. Given k polynomials f (t ) = ( f 1 (t ),..., f k (t )) in one variable, the syzygy module syz( f 1 ,..., f k ) consists of all vectors of polynomials p(t ) = ( p 1 (t ),..., p k (t )) such that p · f = p 1 f 1 +···+ p k f k 0. * Corresponding author. E-mail address: [email protected] (N. Song). 0167-8396/$ – see front matter Published by Elsevier B.V. doi:10.1016/j.cagd.2008.04.001

μ-bases for polynomial systems in one variable

Embed Size (px)

Citation preview

Page 1: μ-bases for polynomial systems in one variable

Computer Aided Geometric Design 26 (2009) 217–230

Contents lists available at ScienceDirect

Computer Aided Geometric Design

www.elsevier.com/locate/cagd

μ-bases for polynomial systems in one variable

Ning Song ∗, Ron Goldman

Rice University, Computer Science, Houston, TX, United States

a r t i c l e i n f o a b s t r a c t

Article history:Received 11 December 2006Received in revised form 20 March 2008Accepted 18 April 2008Available online 24 April 2008

The notion of a μ-basis for an arbitrary number of polynomials in one variable isdefined. The basic properties of these μ-bases are derived, and an algorithm is presentedbased on Gaussian Elimination to calculate a μ-basis for any collection of univariatepolynomials. These μ-bases are then applied to solve implicitization, inversion andintersection problems for rational space curves. Systems where base points are presentare also discussed.

Published by Elsevier B.V.

1. Introduction

μ-bases for three polynomials in one variable turn out to be quite handy in the study of rational planar curves. Here weshall extend the method of μ-bases to an arbitrary number of polynomials in one variable, and we will apply μ-bases tostudy rational non-planar curves.

The concept of μ-bases originated from a series of papers by Sederberg, Cox, Chen and their collaborators (Chen andSederberg, 2002; Cox et al., 2000; Sederberg and Chen, 1995; Sederberg et al., 1997, 1994). μ-bases can be used to implic-itize as well as to find singularities for rational planar curves (Song et al., 2007). Normally we represent a rational planarcurve in homogeneous form by three polynomials in one variable. The definition and properties of a μ-basis for threepolynomials in one variable are discussed in Chen and Wang (2003) and algorithms for calculating a μ-basis for three uni-variate polynomials are presented in Cox et al. (1998). Chen and Wang (2003) provide an improved algorithm for computingμ-bases, where the main calculation is based on Gaussian Elimination.

Here we extend the definition of a μ-basis to systems that contain an arbitrary number of polynomials in one variable,and we provide a generalized algorithm based on Gaussian Elimination to calculate a μ-basis for an arbitrary number ofunivariate polynomials. We shall show that μ-bases for four polynomials in one variable can be used to solve implicitization,inversion and intersection problems for rational space curves. Special situations such as when common factors are presentwill also be discussed.

2. μ-bases for multi-polynomial systems

In this section we shall present the definition and properties of μ-bases for k-polynomials in R[t], the ring of polynomialsin one variable with real coefficients. For simplicity, we will assume here that the polynomial systems have no commonfactor. Systems where common factors are present will be discussed in Section 4.

Given k polynomials f (t) = ( f1(t), . . . , fk(t)) in one variable, the syzygy module syz( f1, . . . , fk) consists of all vectors ofpolynomials p(t) = (p1(t), . . . , pk(t)) such that

p · f = p1 f1 + · · · + pk fk ≡ 0.

* Corresponding author.E-mail address: [email protected] (N. Song).

0167-8396/$ – see front matter Published by Elsevier B.V.doi:10.1016/j.cagd.2008.04.001

Page 2: μ-bases for polynomial systems in one variable

218 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

It is known that for any fixed set of polynomials f1, . . . , fk , the module syz( f1, . . . , fk) is a free module with k−1 generators(Cox et al., 1998).

We can write a vector of polynomials p(t) = (p1(t), . . . , pk(t)) as

p(t) = (p1(t), . . . , pk(t)

) =n∑

i=0

(pi1, . . . , pik)ti,

with the leading coefficient vector (pn1, . . . , pnk) �= 0. We denote the leading coefficient (pn1, . . . , pnk) by LV(p) and we setdeg(p) = n. For example, if

p(t) = (2t2 + 3t + 1, t + 4, t2 − 2t − 3,5t

),

then LV(p) = (2,0,1,0) and deg(p) = 2. Notice that by definition deg(p1(t), . . . , pk(t)) = Max(deg(p1(t)), . . . ,deg(pk(t))).

Definition 1. A set of k − 1 vector polynomials u1, . . . , uk−1 is called a μ-basis of the polynomials f1, . . . , fk , or equivalently,a μ-basis of the syzygy module syz( f1, . . . , fk), if

1. u1, . . . , uk−1 are a basis of syz( f1, . . . , fk). That is, u1, . . . , uk−1 ∈ syz( f1, . . . , fk), and any l ∈ syz( f1, . . . , fk) can beexpressed uniquely by

l = h1u1 + · · · + hk−1uk−1, (1)

where hi are polynomials in t .2. LV(u1), . . . , LV(uk−1) are linearly independent.

Notice that the two conditions listed above are not redundant. Take an arbitrary basis u1, . . . , uk−1 of syz( f1, . . . , fk) withdeg(u j) > deg(u1) for some value of j. Then u1 + u j, u2, . . . , uk−1 also form a basis of syz( f1, . . . , fk). However LV(u1 + u j),

. . . , LV(uk−1) are not linearly independent.In Section 3 we will show that a μ-basis always exists, and we will provide an algorithm to calculate a μ-basis for any

set of polynomials f1, . . . , fk . Alternate equivalent definitions for a μ-basis will be provided in Section 2.2.

2.1. Properties of μ-bases

The properties of μ-bases for three polynomials in one variable are discussed in (Chen and Wang, 2003). Here we extendthese properties to μ-bases for an arbitrary number of polynomials in one variable.

Theorem 1. Let u1, . . . , uk−1 be a μ-basis for f = ( f1, . . . , fk) with deg(u1) � deg(u2) � · · · � deg(uk−1) and GCD( f1, . . . , fk) = 1.Then:

1. Every l ∈ syz( f1, . . . , fk) can be expressed by (1) with deg(hiui) � deg(l), i = 1, . . . ,k − 1.2. If v1, . . . , vk−1 is a set of vector polynomials in syz( f1, . . . , fk) that are linearly independent over the polynomial ring R[t] with

deg(v1) � deg(v2) � · · · � deg(vk), then deg(ui) � deg(vi) for i = 1,2, . . . ,k − 1.3. If v1, . . . , vk−1 is another μ-basis for f1, . . . , fk with deg(v1) � deg(v2) � · · · � deg(vk), then deg(ui) = deg(vi) for i =

1,2, . . . ,k − 1.4. ui(t0) �= 0 for every parameter value t0 .5. u1(t0), . . . , uk−1(t0) are linearly independent for every parameter value t0 .6. The outer product of u1, . . . , uk−1 is equal to c( f1, . . . , fk) for some non-zero constant c.7. f (t0) = cS for some constant c and for S = (s1, . . . , sk) if and only if u1(t0) · S = · · · = uk−1(t0) · S = 0.

8.∑k−1

i=1 deg(ui) = deg( f1, . . . , fk).

Proof. 1. Suppose that l = h1u1 + · · · + hk−1uk−1 and deg(hiui) > deg(l). Then LV(h1u1), . . . , LV(hk−1uk−1) are linearlydependent. Therefore LV(u1), . . . , LV(uk−1) are also linearly dependent, contradicting the definition of a μ-basis. Hencedeg(hiui) � deg(l).

2. If deg(vi) < deg(ui), then by property 1 we must have

vs = hs,1u1 + · · · + hs,i−1ui−1, s = 1,2, . . . , i.

Since u1, . . . , ui−1 are i−1 generators, it follows that the i vectors v1, . . . , vi are linearly dependent over the polynomial ringR[t], which contradicts the assumption that the vectors v1, . . . , vk−1 are linearly independent. Therefore, we conclude thatdeg(ui) � deg(vi). Specifically, this result shows that a μ-basis has the lowest degree among all the bases of syz( f1, . . . , fk).

3. This result is a direct consequence of property 2.4. Suppose that ui(t0) = 0 for some t0. Then (t − t0)|ui(t). Let ui(t) = ui(t)/(t − t0). Then u1, . . . , ui−1, ui, ui+1, . . . , uk−1

are also a μ-basis of f1, . . . , fk . But deg(ui) < deg(ui), which contradicts property 3.

Page 3: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 219

5. Suppose u1(t0), . . . , uk−1(t0) are linearly dependent for some t0. Then there exist constants a1, . . . ,ak−1, which are notall zero, such that a1u1(t0) + · · · + ak−1uk−1(t0) = 0. Let j = max{i | ai �= 0}, and let

L = a1u1 + a2u2 + · · · + a ju j .

Then L ∈ syz( f1, . . . , fk), and L is not identically zero, since LV(u1), . . . , LV(u j) are linearly independent. From L(t0) =a1u1(t0)+· · ·+ak−1uk−1(t0) = 0, we have (t − t0)|L. Let v = L/(t − t0). It is easy to verify that u1, . . . , u j−1, v, u j+1, . . . , uk−1still form a basis of syz( f1, . . . , fk), but deg(v) < deg(u j). This contradicts property 3. Hence, u1(t0), . . . , uk−1(t0) are linearlyindependent.

6. Let up denote the outer product of u1, . . . , uk−1. Then up is a vector perpendicular to each ui . Hence, up · ui ≡ 0 fori = 1,2, . . . ,k − 1. On the other hand, since ui ∈ syz( f1, . . . , fk), we have ( f1, . . . , fk) · ui ≡ 0 for i = 1,2, . . . ,k − 1. Thereforeup ‖ ( f1, . . . , fk), so up = h(t)( f1, . . . , fk) for some polynomial h(t). If h(t) is not a constant, let t0 be a root of h(t). Thenthe outer product up(t0) = 0, which means that u1(t0), . . . , uk−1(t0) are linearly dependent; this contradicts property 5.Therefore h(t) must be a non-zero constant. Hence, the outer product up = c( f1, . . . , fk) for some non-zero constant c.

7. If f (t0) = cS , then ui(t0) · S = cui(t0) · f (t0) = 0 for i = 1,2, . . . ,k − 1, since each ui is an element of syz( f1, . . . , fk).On the other hand, if u1(t0) · S = · · · = uk−1(t0) · S = 0, then S must be perpendicular to u1(t0), . . . , uk−1(t0). Hence S isparallel to the outer product of u1(t0), . . . , uk−1(t0). But by property 6, the outer product is also parallel to f (t0); thereforef (t0) = cS for some constant c.

8. We can calculate the components of up by taking the coefficients of the dummy variables ai from the determinant

det

⎛⎜⎜⎜⎝

a1 a2 · · · aku1,1 u1,2 · · · u1,k

.

.

.... · · · .

.

.

uk−1,1 uk−1,2 · · · uk−1,k

⎞⎟⎟⎟⎠ .

Here ui, j denotes the jth element of the vector ui .From property 6, we know that deg( f1, . . . , fk) = deg(up). Moreover, from the calculation of up , it follows that deg(up) �∑k−1

i=1 deg(ui). But from the definition of a μ-basis, we know that LV(ui) are linearly independent. Therefore one of the

maximal minors of the matrix consisting of LV (ui) is not zero, so∑k−1

i=1 deg(ui) = deg(up) = deg( f1, . . . , fk). �2.2. Equivalent definitions of μ-bases

Here we provide some equivalent definitions of a μ-basis for syz( f1, . . . , fk). We begin with the following observation:

Lemma 1. Let u1, . . . , uk−1 be k − 1 vector polynomials in syz( f1, . . . , fk). If every element l ∈ syz( f1, . . . , fk) can be expressed asin (1), then u1, . . . , uk−1 forms a basis for syz( f1, . . . , fk).

Proof. Since syz( f1, . . . , fk) has rank k − 1 over R[t], and since the k − 1 vector polynomials u1, . . . , uk−1 are a set ofgenerators for syz( f1, . . . , fk), it follow that u1, . . . , uk−1 are linearly independent over R[t]. Therefore u1, . . . , uk−1 form abasis for syz( f1, . . . , fk). �Theorem 2. Let u1, . . . , uk−1 be k−1 vector polynomials in syz( f1, . . . , fk) with deg(u1) � · · · � deg(uk−1) and GCD( f1, . . . , fk) = 1.Then u1, . . . , uk−1 form a μ-basis for syz( f1, . . . , fk) if and only if one of the following conditions holds:

1. Every element l ∈ syz( f1, . . . , fk) can be expressed as in (1), and u1, . . . , uk−1 are of the lowest degree. That is, there does notexist a set of generators v1, . . . , vk−1 of syz( f1, . . . , fk), with deg(v1) � · · · � deg(vk−1), such that deg(vi) < deg(ui) forsome i.

2. Every element l ∈ syz( f1, . . . , fk) can be expressed as in (1) with deg(hiui) � deg(l) for i = 1, . . . ,k − 1.3. Every element l ∈ syz( f1, . . . , fk) can be expressed as in (1) and deg(u1) + · · · + deg(uk−1) = deg( f1, . . . , fk).4. The outer product of u1, . . . , uk−1 is equal to c( f1, . . . , fk) where c is a constant not equal to zero, and deg(u1) + · · · +

deg(uk−1) = deg( f1, . . . , fk).

Proof. The necessity of all these conditions has already been proved in Theorem 1. Here we need only consider theirsufficiency.

1. From Lemma 1 we know u1, . . . , uk−1 form a basis for syz( f1, . . . , fk). By our definition of a μ-basis in Section 1, weneed only prove that LV(u1), . . . , LV(uk−1) are linearly independent.

Suppose LV(u1), . . . , LV(uk−1) are linearly dependent. Then there exist constants a1, . . . ,ak−1 such that

a1 LV(u1) + · · · + ak−1 LV(uk−1) = 0.

Let j = max{i | ai �= 0}, and let

v = a1ts1 u1 + a2ts2 u2 + · · · + a jts j u j,

Page 4: μ-bases for polynomial systems in one variable

220 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

where si = deg(u j) − deg(ui), i = 1,2, . . . , j. Then deg(v) < deg(u j), since the highest degree terms in the sum cancel. Nowit is easy to verify that u1, . . . , u j−1, v, u j+1, . . . , uk−1 form another basis for syz( f1, . . . , fk), but with deg(v) < deg(u j),contradicting the fact that u1, . . . , uk−1 have the lowest degree. Therefore LV(u1), . . . , LV(uk−1) are linearly independent, sou1, . . . , uk−1 form a μ-basis.

2. From Lemma 1 we know u1, . . . , uk−1 form a basis for syz( f1, . . . , fk). We will show that u1, . . . , uk−1 have the lowestpossible degree among all the bases of syz( f1, . . . , fk).

Suppose u1, . . . , uk−1 is not the lowest degree basis. Let v1, . . . , vk−1 be a basis of syz( f1, . . . , fk) with deg(v1) � · · · �deg(vk−1) and suppose that for some j, deg(v j) < deg(u j). Since vi ∈ syz( f1, . . . , fk), each vi can be expressed by

vi = hi1u1 + · · · + hik−1uk−1

for some hij , i, j = 1,2, . . . ,k − 1. Moreover, for i = 1, . . . , j, deg(vi) � deg(v j) < deg(u j); therefore

vi = hi1u1 + · · · + hij−1u j−1

for i = 1,2, . . . , j. Thus the j vector polynomials v1, . . . , v j are generated by j −1 vector polynomials u1, . . . , u j−1; thereforev1, . . . , v j are linearly dependent over R[t]. This contradicts the fact that v1, . . . , vk−1 is a basis. Therefore, we conclude thatu1, . . . , uk−1 is the lowest degree basis of syz( f1, . . . , fk). Thus by property 1, u1, . . . , uk−1 form a μ-basis for syz( f1, . . . , fk).

3. From Lemma 1 we know u1, . . . , uk−1 form a basis for syz( f1, . . . , fk). Suppose v1, . . . , vk−1 is a μ-basis forsyz( f1, . . . , fk). From Theorem 1 property 8 of μ-bases,

∑k−1i=1 deg(vi) = deg( f1, . . . , fk). Also by Theorem 1 property 1,

deg(vi) � deg(ui) for i = 1,2, . . . ,k − 1. If for any i, deg(vi) < deg(ui), it follows that∑k−1

i=1 deg(ui) > deg( f1, . . . , fk), con-trary to assumption. Therefore deg(ui) = deg(vi) for i = 1,2, . . . ,k − 1. Now since u1, . . . , uk−1 have the lowest degreeamong all bases, from property 1 we know that u1, . . . , uk−1 form a μ-basis for syz( f1, . . . , fk).

4. Let up denote the outer product of u1, . . . , uk−1, and suppose that up = c( f1, . . . , fk) for some constant c �= 0.Then u1, . . . , uk−1 are linearly independent over R[t], otherwise we would have up ≡ 0. Suppose v1, . . . , vk−1 is a μ-

basis for syz( f1, . . . , fk). From property 1 of Theorem 1 we know that deg(ui) � deg(vi) for all i. Since∑k−1

i deg(ui) =∑k−1i deg(vi) = deg( f1, . . . , fk), it follows that deg(ui) = deg(vi) for i = 1,2, . . . ,k − 1.Suppose that deg(vi) < deg(vi+1) = · · · = deg(vi+ j) < deg(vi+ j+1). Then it follows that deg(ui) < deg(ui+1) = · · · =

deg(ui+ j) < deg(ui+ j+1). Therefore since v1, . . . , vk−1 is a μ-basis, there are constants hab such that

ui+1 = h11 vi+1 + · · · + h1 j vi+ j

.

.

....

ui+ j = h j1 vi+1 + · · · + h jj vi+ j

Moreover, since u1, . . . , uk−1 are linearly independent, det(hab) is not equal to zero. Thus we can solve for vi+1, . . . , vi+ jin terms of ui+1, . . . , ui+ j . Proceeding in this fashion for all subsets of v1, . . . , vk−1 with the same degree, we find that wecan solve for the functions v1, . . . , vk−1 in terms of the functions u1, . . . , uk−1. Therefore u1, . . . , uk−1 is also a basis forsyz( f1, . . . , fk), so from property 3 u1, . . . , uk−1 is a μ-basis. �3. An algorithm to calculate μ-bases

A straightforward algorithm to calculate a μ-basis for three polynomials in one variable is given by Chen and Wang in(Chen and Wang, 2003), where the main calculation is based on Gaussian elimination. Here we generalize this algorithm tocalculate a μ-basis for k polynomials in one variable for all k � 3.

Algorithm: μ-basisInput: f (t) = ( f1(t), f2(t), . . . , fk(t)) with GCD( f1(t), . . . , fk(t)) = 1.Output: k − 1 vector polynomials that form a μ-basis for syz( f1(t), . . . , fk(t)).

Step 1. Create the set of vector polynomials {ua,b}:

ua,b = (0, . . . ,0,− fb(t), . . . , fa(t), . . . ,0

)

where − fb(t) is at the ath position, and fa(t) at the bth position of ua,b . Since we can choose two elements out of thek elements of f (t) in s = Ck

2 possible ways, the set {ua,b} contains Ck2 vectors. Sort {ua,b} by a,b and rename the set {ui},

i = 1,2, . . . , s.

Step 2. Set mi = LV(ui) and ni = deg(ui), i = 1,2, . . . , s.

Step 3. Sort ni so that n1 � n2 � · · · � ns and re-index ui , mi .

Page 5: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 221

Step 4. Find real numbers α1,α2, . . . ,αs such that

α1m1 + α2m2 + · · · + αsms = 0

and at least two of the terms αimi are not identically zero.

Step 5. Choose the lowest integer j such that α j �= 0, and update u j by setting

u j = α ju j + α j+1tn j−n j+1 u j+1 + · · · + αstn j−ns us.

If u j ≡ 0, discard u j and set s = s − 1; otherwise set m j = LV(u j) and n j = deg(u j).

Step 6. If s = k − 1, then output the k − 1 non-zero vector polynomials u1, . . . , uk−1 and stop; otherwise, go to Step 3.

To prove the correctness of our algorithm, we need to introduce two lemmas. Here we assume that f1, . . . , fk arerelatively prime—that is, f1, . . . , fk have no common factors of degree � 1. We will consider the case where the polynomialsf1, . . . , fk have a non-trivial common factor in Section 4.

Lemma 2. The module syz( f1(t), . . . , fk(t)) is generated by the vector polynomials {ua,b}, where

ua,b = (0, . . . ,0,− fb(t), . . . , fa(t), . . . ,0

)

are given in Step 1 of the algorithm.

Proof. First, it is easy to see that {ui} ∈ syz( f1(t), . . . , fk(t)). On the other hand, for an arbitrary p = (p1, . . . , pk) ∈syz( f1(t), . . . , fk(t)), we have

p1 f1 + p2 f2 + · · · + pk fk = 0.

Also, since the polynomials f i are relatively prime, there exist polynomials ai such that

a1 f1 + a2 f2 + · · · + ak fk = 1.

Therefore for each pi , we have

pi = (a1 f1 + a2 f2 + · · · + ak fk)pi

= a1 f1 pi + · · · + ai f i pi + · · · + ak fk pi

= a1 f1 pi + · · · + ai(− f1 p1 − f2 p2 − · · · − fk pk) + · · · + ak fk pi .

In the sum on the right hand side, notice that there are k − 1 terms with a negative sign and k − 1 terms with a positivesign. Pairing these terms and extracting the common factor f i , we get

pi = f1(a1 pi − ai p1) + · · · + fk(ak pi − ai pk).

If we denote ai p j − a j pi by [i, j], then

pi =k∑

t �=i,t=1

[t, i] ft .

Since [i, j] = −[ j, i], it follows that

p = (p1, . . . , pk) =∑

1�i< j�k

[i, j](0, . . . ,0,− f j(t), . . . , f i(t), . . . ,0).

But the set of vectors (0, . . . ,0, − f j(t), . . . , f i(t), . . . ,0) is exactly the set {ua,b}. Therefore, syz( f1(t), . . . , fk(t)) is generatedby the vector polynomials {ua,b}. �Lemma 3. Let {ui} be the set of s vector polynomials defined in our μ-bases algorithm. Then

(i) In Step 1, rank({ui}) = rank({LV(ui)}) = k − 1.(ii) rank({ui}) and rank({LV(ui)}) do not change in Steps 3–6 of the algorithm.

Thus rank({ui}) = rank({LV(ui)}) = k − 1 throughout the μ-basis algorithm.

Page 6: μ-bases for polynomial systems in one variable

222 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

Proof. (i) Write the vectors {ui} in a matrix

M =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

− f2 f1 0 0 · · · 0− f3 0 f1 0 · · · 0

.

.

....

. . ....

− fk 0 0 0 · · · f10 − f3 f2 0 · · · 00 − f4 0 f2 · · · 0...

.

.

.. . .

.

.

.

0 − fk 0 0 f2...

.

.

....

.

.

.

0 0 0 0 − fk fk−1

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

s×k

.

Then M is an s × k matrix, where s = Ck2, and rank({ui}) = rank(M). Consider the k columns v1, v2, . . . , vk of the matrix M .

We can easily verify that

f1 v1 + f2 v2 + · · · + fk vk = 0.

Therefore the k column vectors are dependent, so rank(M) < k.On the other hand, suppose that deg( fl) = Max(deg( f1), . . . ,deg( fk)). Consider the k − 1 rows that contain fl:

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

− fl 0 0 · · · 0 f1 0 · · · 00 − fl 0 · · · 0 f2 0 · · · 0...

.

.

....

.

.

....

0 0 · · · 0 − fl fl−1 0 · · · 00 0 · · · 0 0 − fl+1 fl · · · 0...

.

.

....

.

.

....

0 0 · · · 0 0 − fk 0 · · · fl

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

(k−1)×k

.

If we remove the lth column from this matrix, the remaining columns form a (k − 1) × (k − 1) diagonal matrix. Thereforethese k−1 rows from M are independent over R[t], so rank(M) � k−1. Thus, we conclude that rank({ui}) = rank(M) = k−1.

To prove that in Step 1 rank({LV(ui)}) = k − 1, we replace each row vector ui in the matrix M by LV(ui). Since each uihas two non-zero elements, we get a matrix of the form

M =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

−m12 m11 0 0 · · · 0−m23 0 m21 0 · · · 0

.

.

....

. . ....

−mk−1k 0 0 0 · · · mk−110 −mk3 mk2 0 · · · 0...

.

.

....

.

.

.

0 0 0 0 −msk msk−1

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

s×k

.

Here mij denotes the element in LV(ui) that corresponds to f j in ui .Let n = deg( f1, . . . , fk), and let c1, . . . , ck denote the coefficients of tn in f1, . . . , fk . Set ci = 0 if deg( f i) < n. Since

deg( f1, . . . , fk) = n, the constants c1, . . . , ck are not all zero. Let v1, . . . , vk denote the k columns of the matrix M . We claimthat

c1 v1 + c2 v2 + · · · + ck vk = 0.

Since

LV(ui) = (0, . . . ,0,−mi, j2 ,0, . . . ,0,mi, j1 , . . . ,0)

we have

(c1, . . . , ck) · LV(ui) = c j2mi, j1 − c j1mi, j2 .

Now there are four cases to consider based on the degree of f j1 and f j2 :

(a) Both deg( f j1 ) and deg( f j2 ) are less than n. In this case c j1 = c j2 = 0. Therefore (c1, . . . , ck) · LV(ui) = c j2mi, j1 −c j1mi, j2 = 0.

(b) deg( f j1 ) = n, deg( f j2 ) < n. In this case mi, j2 = c j2 = 0. Therefore (c1, . . . , ck) · LV(ui) = c j2mi, j1 − c j1mi, j2 = 0.

Page 7: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 223

(c) deg( f j1 ) < n, deg( f j2 ) = n. In this case mi, j1 = c j1 = 0. Again we have (c1, . . . , ck) · LV(ui) = 0.(d) deg( f j1 ) = deg( f j2 ) = n. In this case, mi, j1 = c j1 , mi, j2 = c j2 . Thus we still have (c1, . . . , ck) · LV(ui) = c j2mi, j1 −

c j1mi, j2 = 0.

Hence for every row LV(ui) in M , (c1, . . . , ck) · LV(ui) = 0. Therefore the columns of M are linearly dependent, sorank({LV(ui)}) = rank(M) < k.

Finally, among the leading vectors of the rows in M , there will be non-zero constants at the positions where − fl islocated, since fl has the highest degree among f1, . . . , fk . Therefore by the same argument we used to prove that rank(M) �k − 1, it follows that rank(M) � k − 1. Therefore we conclude rank({LV(ui)}) = k − 1.

(ii) Since Steps 3–6 of our μ-basis algorithm are basically Gauss elimination, the rank of {ui} will not change in thesesteps. Indeed, consider LV(ui) during Gauss elimination. Every time we reduce the degree of one generator by killing off itsleading vector, we replace the zero vector by another vector. Since deleting a dependent vector cannot decrease the rank ofa set of vectors, the new rank of the leading vectors is at least k − 1 throughout Steps 3–6. Moreover, since the rank of theleading vectors cannot decrease during Gauss Elimination, if rank(LV(ui)) ever becomes greater than k − 1, the algorithmwill terminate with more than k − 1 independent generators. But this is impossible because syz( f1, . . . , fk) is a free modulewith k − 1 generators.

Thus, we conclude that rank({ui}) = rank({LV(ui)}) = k − 1 throughout our μ-basis algorithm. �Now we can prove the main theorem concerning the correctness of our algorithm.

Theorem 3. Let u1, u2, . . . , uk−1 denote the output from the μ-basis algorithm. Then

(i) The μ-basis algorithm terminates in a finite number of steps;(ii) u1, u2, . . . , uk−1 are a μ-basis of syz( f1, . . . , fk).

Proof. After initialization, we know by Lemma 3 that rank({ui}) = k−1, and rank({LV(ui)}) = k−1. Since rank({LV(ui)}) < k,the real numbers ai can always be found in Step 4. Also, in Steps 4, 5, each iteration will lower by at least one the degree ofone of the ui . Hence some of the ui must become the zero vector in a finite number of steps, until the number of non-zerovectors is equal to the rank of {ui}. Therefore the algorithm will terminate in a finite number of steps.

By Lemma 2 the initial {ui} are a generating set of syz( f1, . . . , fk). When the algorithm terminates, we have k − 1 non-zero vector polynomials u1, . . . , uk−1. Since rank({ui}) = k − 1, the k − 1 output polynomials u1, . . . , uk−1 are independentover R[t], and therefore form a basis for syz( f1, . . . , fk). By Lemma 3 we also have rank({LV(ui)}) = k − 1. From the defi-nition of a μ-basis, we conclude that the k − 1 polynomials output by the algorithm are a μ-basis for syz( f1, . . . , fk). Thisproves (ii), and shows that a μ-basis always exists for any set of univariate polynomials. �4. μ-bases and common factors

Both in our definition and in our algorithm to calculate μ-bases, we assume that the initial polynomial system has nocommon factors. In this section we will consider the situation where common factors are present.

Theorem 4. Consider a set of polynomials f (t) = ( f1(t), f2(t), . . . , fk(t)), where

fi = g f i, 1 � i � k

and the polynomials f i have no common factors. Then the k − 1 vector polynomials generated by the μ-basis algorithm for f (t) are

ui = gui, 1 � i � k − 1

where {ui} form a μ-basis for syz( f1, . . . , fk).

Proof. By following the same steps as in the proof of Lemma 2, we find the common factor g appears on the right hand sideof each step in the proof. Eventually we find that for any p ∈ syz( f1(t), . . . , fk(t)), gp can be generated by {ui} = {gui}. Also,the proofs of Lemma 3 and Theorem 3 still hold, except that the common factor g appears in each step of the algorithm.Therefore when the algorithm terminates, the k − 1 output polynomials also carry the common factor g . �Theorem 5. Let u1, . . . , uk−1 be the output of the μ-basis algorithm for the polynomials ( f1(t), f2(t), . . . , fk(t)). If g(t) =GCD( f1(t), . . . , fk(t)), then

deg(g) =∑k−1

i=1 deg(ui) − deg( f1, . . . , fk)

k − 2.

Page 8: μ-bases for polynomial systems in one variable

224 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

Proof. Let f i(t) = g(t) f i(t), 1 � i � k. By Theorem 4, we have ui = gui for i = 1,2, . . . ,k −1, where u1, . . . , uk−1 is a μ-basisfor f1, . . . , fk . Therefore

deg(ui) = deg(ui) + deg(g), 1 � i � k − 1

sok−1∑i=1

deg(ui) =k−1∑i=1

deg(ui) + (k − 1)deg(g).

Moreover, by property 8 of Theorem 1,

k−1∑i=1

deg(ui) = deg( f1, . . . , fk).

Since

deg( f1, . . . , fk) = deg( f1, . . . , fk) + deg(g),

we havek−1∑i=1

deg(ui) = deg( f1, . . . , fk) + (k − 2)deg(g). �

Notice that when deg(g(t)) > 0,∑k−1

i=1 deg(ui) �= deg( f1, . . . , fk). Therefore, by calculating the output u1, . . . , uk−1 of the

μ-basis algorithm for a polynomial system f1, . . . , fk and comparing∑k−1

i=1 deg(ui) to deg( f1, . . . , fk), we can determinewhether the polynomial system has a common factor without finding the common factor. Moreover, if we want to find thecommon factor, we can use the following results.

Theorem 6. Let g(t) = GCD( f1(t), . . . , fk(t)), and let u1, . . . , uk−1 be the output of the μ-basis algorithm for the polynomials( f1(t), f2(t), . . . , fk(t)). Then up = g(t)k−2 · ( f1, . . . , fk), where up is the outer product of u1, . . . , uk−1 .

Proof. Again, let f i(t) = g(t) f i(t), 1 � i � k. By Theorem 4 we have ui = gui for i = 1,2, . . . ,k − 1, where u1, . . . , uk−1 is aμ-basis for f1, . . . , fk . Let up be the outer product of (u1, . . . , uk−1), then

det

⎛⎜⎜⎜⎝

a1 a2 · · · aku1,1 u1,2 · · · u1,k

.

.

.... · · · .

.

.

uk−1,1 uk−1,2 · · · uk−1,k

⎞⎟⎟⎟⎠ = det

⎛⎜⎜⎜⎝

a1 a2 · · · akgu1,1 gu1,2 · · · gu1,k

.

.

.... · · · .

.

.

guk−1,1 guk−1,2 · · · guk−1,k

⎞⎟⎟⎟⎠

so up = gk−1up . But by property 6 of Theorem 1, up = c( f1, . . . , fk) for some non-zero constant c. Thus

up = gk−1up = gk−1 · c( f1, . . . , fk) = gk−2 · c( f1, . . . , fk).

Now the result follows since we can absorb the constant c into the polynomial g . �Corollary 1. Let g(t) = GCD( f1(t), . . . , fk(t)), and let up be the outer product of the output from the μ-basis algorithm for thepolynomials ( f1(t), f2(t), . . . , fk(t)). Then

gk−2 = upj/ f j

for any j = 1, . . . ,k, where upj is the jth element of the vector up and f j �= 0.

Using this corollary, we can extract the common factor of f1(t), . . . , fk(t) by computing the output of the μ-basis al-gorithm and then doing one polynomial division. We illustrate this method for finding common factors by the followingexample.

Consider the collection of polynomials

f (t) = (2t2 + 2t3,1 + 2t + t2,1 + t + 4t3 + 4t4,1 + t + t2 + 2t3 + t4).

Applying the μ-basis algorithm for these polynomials, we get three vector polynomials:(16t + 16t2,6 + 6t,−6 − 4t + 2t2,−8t − 8t2),

(−40 − 51t − 11t2,−46 − 36t + 10t2,−24 − 36t − 12t2,70 + 118t + 48t2),(92 + 327t + 235t2,216 + 294t + 78t2,46 + 144t + 98t2,−262 − 654t − 392t2).

Page 9: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 225

The degree sum of these three elements is 6, which is greater than the maximum degree of the original polynomials whichis 4. Therefore we know a common factor exists. Since we started with four polynomials, we conclude from Theorem 5that the degree of the common factor is 6−4

4−2 = 1. In fact, the first element we get by taking the outer product of the three

vector polynomials is −24240(t2 + 3t3 + 3t4 + t5). Dividing this polynomial by the first element 2t2 + 2t3 of the originalpolynomials yields 1 + 2t + t2 = (1 + t)2. Hence the common factor is 1 + t .

Alternatively, we can apply the following corollary of Theorem 4:

Corollary 2. Let g(t) = GCD( f1(t), . . . , fk(t)), and let u1, . . . , uk−1 be the output of the μ-basis algorithm for the polynomials( f1(t), f2(t), . . . , fk(t)), where ui(t) = (ui,1(t), . . . , ui,k(t)), i = 1, . . . ,k − 1. Then

g(t) = GCD(ui,1(t), . . . , ui,k(t)

), i = 1, . . . ,k − 1.

We can now calculate GCD( f1(t), . . . , fk(t)) by running our μ-basis algorithm on the output of the μ-basis algorithmfor ( f1(t), . . . , fk(t)) . That is, we treat one element of the μ-basis as the collection of input polynomials, and calculate aμ-basis for these polynomials. The common factor will be preserved in all steps of the algorithm, and the degree of theoutput polynomials will be less than the degree of the input polynomials. By repeatedly applying the μ-basis algorithm onthe output, eventually the output polynomials have the same degree as the common factor, so we can read off the commonfactor from the output. At each step we can choose the lowest degree element from the μ-basis as the next input to speedup this algorithm.

For example, to find the common factor for

f (t) = (2t2 + 2t3,1 + 2t + t2,1 + t + 4t3 + 4t4,1 + t + t2 + 2t3 + t4),

we first calculate the output of the μ-basis algorithm for f (t):

(16t + 16t2,6 + 6t,−6 − 4t + 2t2,−8t − 8t2),

(−40 − 51t − 11t2,−46 − 36t + 10t2,−24 − 36t − 12t2,70 + 118t + 48t2),(92 + 327t + 235t2,216 + 294t + 78t2,46 + 144t + 98t2,−262 − 654t − 392t2).

Since all three elements here are degree 2, we choose the first element (16t + 16t2,6 + 6t,−6 − 4t + 2t2,−8t − 8t2) andrun the μ-basis algorithm again on these polynomials. Now we get:

(6 + 4t − 2t2,0,16t + 16t2,0

),

(−3 − 3t,24 + 24t,24 + 24t,0),

(t + 1,0,0,−t − 1).

From the third element of the output, we can easily read off the common factor t + 1.To determine the efficacy of the μ-basis algorithm for computing the GCD of an arbitrary collection of polynomials,

we ran tests to find the GCD of four polynomials with random integer coefficients. For polynomials of low degree (i.e.degree � 20), the speed of the μ-basis GCD algorithm is comparable to the speed of the standard Euclidean algorithm.However, for polynomials of high degree (i.e. degree � 100), the μ-basis GCD algorithm is considerably slower than thestandard Euclidean algorithm (see Fig. 1). We conclude that in CAGD, which typically deals with polynomials of low degree,the μ-basis GCD algorithm is roughly as efficient as the standard Euclidean algorithm. A more detailed comparison of thesetwo GCD algorithms is beyond the scope of this paper.

Fig. 1. Comparison of the speed of the μ-basis GCD algorithm to the speed of the standard Euclidean algorithm.

Page 10: μ-bases for polynomial systems in one variable

226 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

5. Applications to non-planar curves

μ-bases for three polynomials can be used to investigate the properties of rational planar curves (Chen and Wang,2003), since rational planar curves in homogeneous form can be represented as a set of three polynomials in one variable.Similarly, rational space curves can be represented as a set of four polynomials in one variable. In this section we will showhow to utilize μ-bases to solve some standard problems for rational space curves P(t) = (x(t), y(t), z(t), w(t)), includingdetermining if a point lies on a curve, inversion, implicitization and intersection.

5.1. Inversion and point-on-curve problems

We consider first the following two problems:

1. Point on curve: Given a point P0 = (x0, y0, z0, w0) in homogeneous coordinates, determine if the point P lies on thecurve P(t).

2. Inversion: Given a point P0 = (x0, y0, z0, w0) in homogeneous coordinates on the curve P(t), find the correspondingparameter value t0 such that P(t0) = c P0 for some constant c.

To solve these two problems, we shall apply the following result.

Theorem 7. Let p(t), q(t), r(t) be a μ-basis for a rational space curve P(t) = (x(t), y(t), z(t), w(t)). A point P0 = (x0, y0, z0, w0)

lies on the curve P(t) if and only if the three polynomials p(t) · P0 , q(t) · P0 , r(t) · P0 have common roots. Moreover, these commonroots correspond to the parameter values for the point P0 on the curve P(t).

Proof. This result is a direct consequence of property 7 of Theorem 1. �Now the point-on-curve and inversion problems can be solved using Theorem 7. First we calculate a μ-basis p(t), q(t),

r(t) for the curve P(t). Then:

1. Point on curve: To check whether a point P0 = (x0, y0, z0, w0) is on a curve P(t) = (x(t), y(t), z(t), w(t)), we calculatethe dot products p(t) · P0, q(t) · P0 and r(t) · P0, and then determine whether these three polynomials have a non-trivialcommon factor. From Theorem 7, such a common factor exists if and only if P0 lies on the curve P(t). Note that to solvethis problem, we do not need to find the common factor.The traditional method for determining if a point P0 = (x0, y0, z0, w0) lies on a curve P(t) = (x(t), y(t), z(t), w(t)) isto consider the three polynomials w0x(t) − x0 w(t), w0 y(t) − y0 w(t), w0z(t) − z0 w(t). If these polynomials have anon-trivial common factor, then the point P0 lies on the curve P(t). Our μ-basis method is more efficient, since theelements of the μ-basis have lower degree than the original polynomials x(t), y(t), z(t), w(t), and we can re-use thesame μ-basis for different points on or off the curve.

2. Inversion: To find the parameter t0 that corresponds to a point P0 = (x0, y0, z0, w0) on the curve P(t), again we calcu-late p · P0, q · P0, r · P0. Then we use Corollary 1 or Corollary 2 from Section 4 to find the common roots for these threepolynomials. If the point P0 happens to be a singular point of the curve P(t), we can expect to get multiple solutionsfor the parameter t0.As in problem 1, the traditional inversion method is to find common roots for w0x(t) − x0 w(t), w0 y(t) − y0 w(t),w0z(t)− z0 w(t). The degrees of these polynomials is higher than the degree of the elements of the μ-basis, so we shallnot use this approach here.

Example 1 (Cubic curve). Consider the cubic space curve

P(t) = (3t2,3t − 3t3, t + 1,1

).

To check whether the point P0 = (3,0,2,1) lies on the curve P(t), first we calculate a μ-basis for the curve P(t):

(−1,0,3t,−3t), (t,1,0,−3t), (0,0,−1, t + 1).

Then we calculate the dot products

p · P0 = 3t − 3,

q · P0 = 0,

r · P0 = t − 1.

We can easily observe the common factor t − 1; therefore we know that P0 = (3,0,2,1) lies on the curve P(t), and theparameter that corresponds to the point P0 is t = 1.

Take another point P1 = (0,0,0,1). Now the three dot products are

Page 11: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 227

p · P1 = −3t,

q · P1 = −3t,

r · P1 = t + 1.

These three polynomials have no common factor; therefore this point P1 does not lie on the curve P(t).

Example 2 (Quartic curve). Consider a quartic space curve

P(t) = (6t2 − 4t4,4t − 4t3,−t2,1

).

To check whether the point P0 = (2,0,−1,1) lies on this curve, we first calculate a μ-basis for P(t):(−1,0,4t2,6t2), (0,−1,4t,4t), (1,−t,2,0).

Taking the dot product with P0, we get three polynomials

p · P0 = 2t2 − 2,

q · P0 = 0,

r · P0 = 0.

We can easily observe the common factor t2 − 1; therefore the point (2,0,−1,1) lies on the curve P(t). The two parametervalues that correspond to this point are t0 = 1 and t0 = −1, which means the point (2,0,−1,1) is a double point on thequartic curve.

For another point P1 = (0,1,1,1), by the same steps we get three polynomials from the dot products: 10t2, 8t − 1, 2 − t .Since these three polynomials have no common roots, the point P1 does not lie on the quartic curve.

5.2. Implicitization and intersection

We now consider the following two problems:

1. Implicitization: Given a rational space curve P(t), find a low degree implicit representation for this curve.2. Intersection: Given two rational space curves P(t), P(s), find the intersection points of P(t) and P(s).

We can solve implicitization and intersection problems as follows:1. Implicitization: Without loss of generality, we can assume that the curve P(t) has no base points. Otherwise, we can

detect and eliminate the corresponding common factors as in Section 4. A μ-basis for P(t) consists of three elements

p = (p1(t), p2(t), p3(t), p4(t)

),

q = (q1(t),q2(t),q3(t),q4(t)

),

r = (r1(t), r2(t), r3(t), r4(t)

).

Let p = p · (x, y, z, w), q = q · (x, y, z, w), r = r · (x, y, z, w). By choosing two of the μ-basis elements at a time and takingthe resultant with respect to t , we can generate three implicit surfaces:

S1(x, y, z, w) = Res(p,q; t),

S2(x, y, z, w) = Res(q, r; t),

S3(x, y, z, w) = Res(p, r; t).

For any point (x0, y0, z0, w0) = (x(t0), y(t0), z(t0), w(t0)) that lies on the original curve P(t), since p,q ∈ syz(x(t), y(t), z(t),w(t)), we have

p1(t0)x(t0) + p2(t0)y(t0) + p3(t0)z(t0) + p4(t0)w(t0) = 0,

q1(t0)x(t0) + q2(t0)y(t0) + q3(t0)z(t0) + q4(t0)w(t0) = 0.

Thus p,q have a common root t0 when (x, y, z, w) = (x0, y0, z0, w0). Therefore the point (x0, y0, z0, w0) lies on the implicitsurface S1(x, y, z, w). From here we conclude that the original curve P(t) lies in the surface S1(x, y, z, w). For the samereason, P(t) also lies on S2 and S3. Hence the intersection of these implicit surfaces contains the original curve P(t).

Since p, q and r have the lowest degree among all elements of syz(x(t), y(t), z(t), w(t)), the implicit surfaces we gen-erate from this μ-basis method will have lower degree than implicit representations constructed from other traditional

Page 12: μ-bases for polynomial systems in one variable

228 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

methods, such as calculating the pairwise resultants of xw(t) − wx(t), yw(t) − wy(t), zw(t) − wz(t). Nevertheless, theimplicit representation generated from a μ-basis is not always optimal.

Indeed, the three implicit surfaces we construct by the μ-basis method may not always be the lowest degree surfacesthat contain the original curve. For example, consider the rational quartic space curve

P(t) = (−√2(t − 1)3(t + 1),−(t − 1)4,

(t2 − 1

)2,−2

(t2 + 1

)2).

This curve is the intersection of the two quadric surfaces: z2 − 2zy − 2y + y2 = 0 and x2 + 2zy = 0. The μ-basis for thiscurve contains one quadratic and two linear vector polynomials:

(−53.64 + 49.92t + 14.66t2,−35.41 − 1.14t + 27.44t2,47.27 − 95.45t + 55.01t2,3.41 − 6.82t + 3.41t2),(−73.3 + 63.9t,−97.1 − 97.1t,6.6 − 6.6t,0),

(−124.9 + 18.2t,−101.2 − 101.2t,75.4 − 75.4t,0).

Hence if we implicitize this curve using our μ-basis method we will generate two cubic surfaces and one quadric surface.Moreover, the intersection of the three implicit surfaces may contain extraneous points. Consider the sextic space curve

P(t) = ((1 − t)(1 + t2), t3, (1 − t)(1 + t2)t3, t2(1 + t2)). A μ-basis for this curve is given by

(t2,1 + t2,0,−1

),

(−t2,0,0,1 − t),

(0,0,−1, t − t2)

and the implicit representation for this curve calculated from this μ-basis is:

S1(x, y, z, w) = −w3x − w3 y + w2xy + 2w2 y2 + 2wxy2 + x2 y2,

S2(x, y, z, w) = −w3 y + 2w2 y2 + w3z − w2 yz − 2wy2z + y2z2,

S3(x, y, z, w) = −w3x + w3z + 3w2xz + x2z2.

Note that the origin (0,0,0) lies in the intersection of S1, S2 and S3, but (0,0,0) does not lie on the curve P(t).2. Intersection: Even though implicitization from μ-bases is not always optimal, these implicit equations do have low

degree. Using the result of implicitization, we can calculate the intersection of the two rational space curves by the followingalgorithm:

Algorithm: IntersectionInput: Two rational space curves P(t), P(s).Output: The parameters that correspond to the intersection points of P(t) and P(s).

Step 1. Calculate the implicit representation for one curve P(t) using μ-bases to construct three low degree implicit surfacesthat contain P(t).

Step 2. Substitute the parametric representation of the other curve P(s) into the three implicit surfaces constructed in Step 1to generate three polynomials in the parameter s.

Step 3. Find the common roots {se} of these three polynomials using the μ-basis methods in Section 4.

Step 4. Substitute each common root se found in Step 3 into P(s) to find the x, y, z, w coordinates of potential intersectionpoints.

Step 5. Check whether the point P(se) lies on the curve P(t) using the point-on-curve algorithm in Section 5.1. Discard thosepoints that fail to lie on P(t).

Notice that Step 5 is necessary because the intersection of the surfaces constructed in Step 1 may contain points not onthe curve P(t).

Example 3 (Cubic curve). Consider the cubic space curve

P(t) = (3t2,3t − 3t3, t + 1,1

).

To calculate implicit equations for this curve, we first compute a μ-basis for the four polynomials P(t) = (3t2,3t − 3t3,

t + 1,1):

Page 13: μ-bases for polynomial systems in one variable

N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230 229

p = (−1,0,3t,−3t), p = p · (x, y, z, w) = −x + 3tz − 3t w,

q = (t,1,0,−3t), q = q · (x, y, z, w) = tx + y − 3t w,

r = (0,0,−1,1 + t), r = r · (x, y, z, w) = −z + w + t w.

Taking resultants of each pair, we find three quadratic surfaces that contain the original curve

S1(x, y, z, w) = res(p,q; t) = x2 − 3wx − 3wy + 3yz,

S2(x, y, z, w) = res(q, r; t) = −3w2 + wx − wy + 3wz − xz,

S3(x, y, z, w) = res(p, r; t) = −3w2 + wx + 6wz − 3z2.

Now if we want to find where the curve P(s) = (s + 4, s3 + 1,−2s,1) intersects P(t), we can substitute the x, y, z, wcoordinates of P(s) into S1, S2 and S3:

S1 = x2 − 3wx − 3wy + 3yz = 1 − s + s2 − 3s3 − 6s4,

S2 = −3w2 + wx − wy + 3wz − xz = 3s + 2s2 − s3,

S3 = −3w2 + wx + 6wz − 3z2 = 1 − 11s − 12s2.

Calculating a μ-basis for these three polynomials, we get(0,1s2 + 11s − 1,−s3 + 2s2 + 3s

) (−1 − s,6s2 + 9s + 3, s2 + 2s + 1).

The degree sum of these two vector polynomials is 5, which is greater than the maximum degree of S1, S2, S3 in s.Therefore by Theorem 5 we know a non-trivial common factor exists. Using the μ-basis methods in Section 4, we canfind the common factor s + 1. The parameter value s = −1 corresponds to the point (3,0,2,1) on P(s). To check whether(3,0,2,1) lies on P(t), we need to check whether the polynomials

p · P0 = 3t − 3,

q · P0 = 0,

r · P0 = t − 1

have a non-trivial common factor. We observe the common factor t − 1, and therefore the point (3,0,2,1) lies on both P(t)and P(s) with parameter values t = 1 and s = −1 corresponding to this point.

Example 4 (Sextic curve). Consider a rational sextic space curve

P(t) = (t2 + t, t6 + t2 + 1, t6 − t3, t + 1

).

To calculate implicit equations for P(t), we first calculate a μ-basis for the curve:

p = (−4t3, t3 + 3t2,−1 − 3t2 − t3,−3t2 + t3),q = (−t2,1 + t,−1 − t,−1 − t2),r = (−1,0,0, t).

Using resultants, we choose two elements at a time from the μ-basis and generate three surfaces that contain the originalcurve:

S1(x, y, z, w) = res(p,q; t) = −10w5 − w4x − 16w3x2 + · · · + 26y2z3 + 3z5,

S2(x, y, z, w) = res(p, r; t) = 3w2x2 − wx3 + 4x4 − 3wx2 y − x3 y + w3z + 3wx2z + x3z,

S3(x, y, z, w) = res(q, r; t) = −w3 − wx2 − x3 + w2 y + wxy − w2z − wxz.

If we want to find where another curve P(s) = (−s3,−2,3s, s + 1) intersects P(t), we can substitute the parametricequations for the coordinates x, y, z, w into the implicit equations for P(t) and solve for s:

S1 = 9s11 − 1195s9 − 2511s8 − 659s7 + · · · − 3594s − 594,

S2 = 4s12 − 2s10 − s9 + 12s8 + 21s7 + 9s6 + 3s4 + 9s3 + 9s2 + 3s,

S3 = s9 − s7 − s6 + 3s5 + 5s4 − 2s3 − 11s2 − 10s − 3.

To check whether S1, S2, S3 have a non-trivial common factor, we calculate a μ-basis for these three polynomials and gettwo vector polynomials.

Page 14: μ-bases for polynomial systems in one variable

230 N. Song, R. Goldman / Computer Aided Geometric Design 26 (2009) 217–230

(s6 + 0.53s5 + · · · , s5 + 0.53s4 + · · · , s6 + 1.26s5 + · · ·),

(s6 − 11.7s5 . . . , s5 − 11.7s4 + · · · , s6 − 6.22s5 + · · ·).

Both vector polynomials are degree 6 in s; therefore the degree sum is equal to the maximum degree of S1, S2, S3. ByTheorem 5, S1, S2, S3 have no common root, so P(t) and P(s) do not intersect.

6. Conclusion and future work

We have generalized the definition of μ-bases to an arbitrary number of polynomials in one variable, and we haveshown that most of the properties of μ-bases for three univariate polynomials extend to multi-polynomial systems.

We have also extended the algorithm to calculate μ-bases to an arbitrary number of univariate polynomials. The algo-rithm is based on Gaussian Elimination. Systems where common factors are present are also discussed.

Based on the properties of μ-bases, we can solve a series of problems for rational space curves, including detecting ifa point lies on a curve, inversion, implicitization and intersection. These calculations all require a μ-basis for the originalcurve. By computing a μ-basis once, we can solve all of these problems simultaneously for a given rational space curve.Examples are provided to illustrate how to utilize μ-bases to solve these problems.

Our μ-basis method for implicitization and intersection of rational space curves raises some issues. The three implicitsurfaces we get using μ-bases may not be the lowest degree implicit representation. How to generate the lowest degreeimplicit representation using μ-bases is not yet known. Also, the intersection of the three implicit surfaces may containpoints not on the original curve. Is there a straightforward way to eliminate these extraneous points? In the future wewould like to investigate these questions.

Acknowledgement

We would like to thank Dr. Brendan Hassett for his help with the example showing the extraneous intersection point forthe implicit surfaces constructed in Section 5.2.

References

Chen, F., Sederberg, T., 2002. A new implicit representation of a planar rational curve with high order singularity. Computer Aided Geometric Design 19,151–167.

Chen, F., Wang, W., 2003. The μ-basis of a planar rational curve-properties and computation. Graphical Models 65, 368–381.Cox, D., Goldman, R., Zhang, M., 2000. On the validity of implicitization by moving quadrics for rational surfaces with no base points. Journal of Symbolic

Computation 29, 419–440.Cox, D., Sederberg, T., Chen, F., 1998. The moving line ideal basis of planar rational curves. Computer Aided Geometric Design 15, 803–827.Sederberg, T., Chen, F., 1995. Implicitization using moving curves and surfaces. In: SIGGRAPH’95, Annual Conference Series, pp. 301–308.Sederberg, T., Goldman, R., Du, H., 1997. Implicitizing rational curves by the method of moving algebraic curves. Journal of Symbolic Computation 23,

153–175.Sederberg, T., Saito, T., Qi, D., Klimaszewski, K., 1994. Curve implicitization using moving lines. Computer Aided Geometric Design 11, 687–706.Song, N., Chen, F., Goldman, R., 2007. Axial moving lines and singularities of rational planar curves. Computer Aided Geometric Design 24, 200–209.