Multivariate Resultants


Let us consider a system of n+1 generic polynomials
ì
ï
ï
ï
ï
í
ï
ï
ï
ï
î
f0(x) =
k0
S
j=0
  c0,j  y0,j(x)
  ·
·
·
 
fn(x) =
kn
S
j=0
  cn,j  yn,j(x)
where The elimination problem consists, in this case, in finding some necessary and sufficient conditions on the parameters =(ci,j) such that the equations f0=0, ..., fn=0 have a common root in X.

In the classical case, Li(x) is the vector of all the monomials of degree di and X= Pn. The necessary and sufficient condition on the parameters =(ci,j) such that the homogeneous polynomials f0,...,fn have a common root in X= Pn is Res Pn(f0,...,fn)=0 where Res Pn is the classical projective resultant. From a geometric point of view, we are looking for the set of parameters =(ci,j) such that there exists x in X with Sj ci,j yi,j (x) =0 for i=0,...,n. This means that is the projection of the point (,x) of the incidence variety
WX ={(,x) in P
k0
 
× ··· × P
kn
 
× X ;
ki
S
j=0
ci,j yi,j(x)=0 ; i=0,...,n}.
We denote by
p1 : WX ->
P
k0
 
× ··· × P
kn
 
,
p2 : WX -> X.
the two natural projections. The image of WX by p 1 is the set of parameters for which the system has a root. The image by p 2 of a point of WX is a root in X of the associated system. Thus we have the following definition (see [ElMbzt98]):

Definition 0.1  We denote Z=p1(WX). If Z is a hypersurface, then its equation (unique up to a scalar) is called the resultant of f0,...,fn over X. It is denoted by ResX(f0,...,fn).
In order to be in this case, we impose the following conditions (see [ElMo96]):

Hypotheses 0.2  
  1. X is a projective irreducible variety.
  2. The regular functions Li, i=0, ...,n do not vanish identically at a point of X.
  3. For generic values of , the system f0,...,fn has no common root in X, and n of these equations (say f1,...,fn) have a finite number of common solutions.

Thus, the system f0= ··· = fn=0 has a solution in X if and only if ResX(f0,...,fn)=0. This generalizes, under the conditions X, the definition of the classical resultant over Pn to other projective varieties.

The approaches to compute effectively the resultant are based on matrix constructions whose determinant will give the resultant or a non-trivial multiple. These resultant matrices can be classified into two main families: the class of Sylvester matrices, which generalize the construction of Sylvester (1835, see [Sylvester]) to the multivariate case and the class of Bezoutian matrices generalizing the construction of E. Bézout (1779, see [Bez79]) to the multivariate case.



1  Sylvester-like matrices

We consider the construction due to Macaulay of a resultant matrix for n+1 polynomials f0...,fn, in n variables, which generalizes the Sylvester map for two polynomials in one variable. Let V0, ..., Vn, n+1 vector spaces generated by xEi={xa, a in Ei}, where Ei is the set of exponents specified hereafter,
Ei = {bi,1, bi,2,...}.
Let V be the vector space generated by all the monomials of the polynomials fixbi for bi in Ei. This set of monomials is denoted by xF = (xb)b in F. We define the following map :
S : V0 × ··· × Vn -> V     (1)
(q0, ..., qn) ->
n
S
i=0
  fi  qi.
The matrix S associated to S in the monomial basis of V0 × ··· × Vn and V is
 
   
V0
 
   
Vn
 
V ì
ï
ï
í
ï
ï
î
x
a1
 
·
·
·
x
aN
 
é
ê
ê
ê
ê
ê
ê
ê
ë
·     ·  
·     ·  
 x
b0,1
 
f0
··· ··· ··· ···
x
bn,1
 
fn
···
·     ·  
·     ·  
ù
ú
ú
ú
ú
ú
ú
ú
û
.

In this matrix of type Macaulay, if d0, ... ,dn are the degrees of the polynomials f0, ... ,fn, and n = d0+ ... + dn - n, the set xF is the set of all the monomials of degree £ n in the variables x1, ... ,xn and Ei is the subset of the monomials of degree n - di. We can check that the hypothesis X are well respected.



2  Projective resultant

We consider the construction due to Macaulay of a resultant matrix for n+1 polynomials f0...,fn, in n variables, which generalizes the Sylvester map for two polynomials in one variable. Let V0, ..., Vn, n+1 vector spaces generated by xEi={xa, a in Ei}, where Ei is the set of exponents specified hereafter,
Ei = {bi,1, bi,2,...}.
Let V be the vector space generated by all the monomials of the polynomials fixbi for bi in Ei. This set of monomials is denoted by xF = (xb )b in F. We define the map (X) :
S : V0 × ··· × Vn -> V     (2)
(q0, ..., qn) ->
n
S
i=0
  fi  qi.
The matrix S associated to S in the monomial basis of V0 × ··· × V n and V is
 
   
V0
 
   
Vn
 
V ì
ï
ï
í
ï
ï
î
x
a1
 
·
·
·
x
aN
 
é
ê
ê
ê
ê
ê
ê
ê
ë
·     ·  
·     ·  
 x
b0,1
 
f0
··· ··· ··· ···
x
bn,1
 
fn
···
·     ·  
·     ·  
ù
ú
ú
ú
ú
ú
ú
ú
û
.

In this Macaulay matrix, if d0, ... ,dn are the degrees of the polynomials f0, ... ,fn, and n = d0+ ... + dn - n, the set xF is the set of all the monomials of degree £ n in the variables x1, ... ,xn and Ei is the subset of the monomials of degree n - di. We can check that the hypothesis X are well respected. In this resultant construction, it may happen that for specific values of the coefficients of the input polynomials, the matrix D become singular. In this case another construction must be applied.

Here is an example of such a matrix of size 792× 792, coming from the autocalibration problem of a camera with Kruppa's equations:
file=../help/kruppa.ps, height=10cm,width=10cm

mpoly/resultant/Macaulay.H

unsigned int SizeOfS(unsigned int n, unsigned int k)
Compute the size of the Sylvester-like matrix.

template< class POL>  int Choose(int k, int n, POL & ML)
Return the polynomial, which is the sum of all monomials in n variables of degree k, with coefficient 1. The output is stored in the variable ML.

template< class R, class L>  VAL< R*>  Macaulay(const L & f, char z='N')
Construction of the Macaulay matrix, for the projective resultant of n+1 polynomials in n variables. It will be of minimal degree in the coefficients of f[0], that is the product of the degree of f[1], ..., f[n]. The order choosed to sort the monomials indexing the rows of the matrix is the reverse of the order associated to the polynomials of the sequence f. L is the type of a sequence of polynomials. R specifies the type of the output matrix. For instance, Macaulay< Mat> (f); will output a matrix of type VAL< Mat*> . It should have a constructor Mat(m,n) which allocates the necessary place to store a n× m matrix and the method Mat::operator()(size_type i, size_type j). If z is 'T', the transposed matrix is constructed.

template< class R, class L>  VAL< R*>  Macaulay(const L & f, unsigned int nu, unsigned int nv, char z='T')
Construction of the matrix of all multiples of degree nu of all the polynomials f[0], f[1], ..., f[n]. The argument nv is the number of variables. The order choosed to sort the monomials indexing the rows of the matrix is the reverse order associated to the polynomials of the sequence f. The second template argument specifies the type of the output matrix. For instance, Macaulay< Mat> (f); will output a VAL< Mat*> . The usual Macaulay matrix is a submatrix of this one, for n= Si=0n deg(fi) -n +1.



3  Toric resultant

I. Emiris
We define the Newton polytope of f in S as the convex hull of the set AÌ Zn of all monomial exponents corresponding to nonzero coefficients is the support of f.

The mixed volume of polytopes Q1,..., Qn is the coefficient of l1··· ln in the volume of Q=l1 Q1+l2 Q2 +··· + ln Qn.

An interesting fact is that the mixed volume MV(f1,...,fn) counts the (generic) number of roots of Z(f1,...,fn) in ( K*)n [Be]. This bound is known as the BKK bound to underline the contributions of Kushnirenko and Khovanskii in its development and proof [Ku76, Kh78].
Theorem 3.1   Let f1,...,fn in K[x1,x-1,..., xn,xn-1] with Newton polytopes Q1,...,Qn. The number of isolated common zeros in ( K*)n, multiplicities counted, is either infinite, or does not exceed MV(Q1, ...,Qn), where K is the algebraic closure of K.
For the construction of Toric Resultant matrices, we consider n+1 Laurent polynomials f0,...,fnin K[x,x-1], with support respectively in the polytopes A1,...,An+1. Here is a short description of the algorithm used (see [CaEm93] for more details):

Construction of the Newton matrices.

  1. Subdivide the monomials of the Minkowski sum Q=A0 + ··· An into cells (mixed subdivision).
  2. Decompose each of these cells as a sum ai0 + Bi0 of a vertex of some Ai0 and faces of the other polytopes Ai, i ¹ i0. This gives a partition of xB as an union of sets xai0xB (to be compared with the partition of xB into the union of the sets xidi xBi in the previous section).
  3. For all these cells, replace the monomial xai0 by the polynomial fi0 and construct the corresponding coefficient matrix of all these polynomials.

This matrix is also the matrix of the following map:
Sá x
B0
 
× ···× á x
Bn
 
-> á xB
(g0, ..., gn) ->
g=
n
S
i=0
  gi fi,

Here are the functions connecting the C-implementation for mixed volume and toric resultant of I.Z. Emiris.

mpoly/resultant/Toric.H

template< class POL>  int MixedVolume (const list< POL>  & l, int numvars)
Input a list of polynomials, and the number of variables. Output the mixed volume of the polytopes for the variables 1..numvars.

template< class POL>  inline int MixedVolume (const list< POL>  & l)
Mixed Volume. The number of variables is supposed to be the size of the list.

template < class R,class POL>  VAL< R*>  ToricResultant(const list< POL>  & l)
Compute the Toric resultant by the incremental algorithm [].



4  Bezoutian resultant

Here we recall some definitions and properties of the Bezoutian theory (for more details, see [CaMo96, ElMo96]).

To the set of variables x we add a new set of variables y=(y1,...,yn) and we denote x(0)=x, x(1)=(y1,x2,...,xn), ..., x(n)=y.

For a polynomial q in R, we define qi(p)=p(x(i))-p(x(i-1))/ yi-xi.


Definition 4.1  For n+1 polynomials f=(f0, f1,...,fn) in R, we call Bezoutian of f0,f1,...,fn the polynomial in x et y def ined by:
Q(f0,f1, ..., fn) = Qf(f0) = det æ
ç
ç
ç
ç
è
f0(x) q1(f0) ··· qn(f0)
·
·
·
·
·
·
  ·
·
·
fn(x) q1(fn) ··· qn(fn)
ö
÷
÷
÷
÷
ø
=
 
S
i, j
  qi,jf  x
ui
 
  y
vj
 
,     (3)
It is a polynomial of degree at most Si=0ndeg(fi)-n.


In the monomial basis xa and yb, Qf can be written:
Qf(f0)=
 
S
a in E, b in F
t
 
a, b
x
a
 
y
b
 
.

Definition 4.2  the set of monomials xa (resp. yb) is called the x-support (resp. y-support) of Qf(f0).

Let the following map:
Ff(f0): R
#
 
-> R
L ->
 
S
a in E, b in F
t
 
a  b
x
a
 
L(y
b
 
).


Definition 4.3  We denote by Bf0(f), the matrix of Ff(f0) from the dual basis of R# into the monomial basis (xa) of R. This matrix is the Bezoutian matrix of the polynomials f0, f1,...,fn.


mpoly/resultant/MBezout.H

template < class POL>  inline POL MBezout(const list< POL>  & l, typename POL::monom_t::index_t c=0)
Compute the polynomial in the two set variables, which is the the determinant associated with the list of polynomials l. The c first variables are considered as parameters. The n next variables (where n is the length of l-1) are the variables x and the next n variables are the y.

template < class POL, class RM>  VAL< RM*>  DeltaOf(const POL & P, int l0, int l1, int l2, RM M)
Compute the matrix associated with the polynomial p, assuming the variables up to l0 are hidden, the first block of variables is of size l1 and the second one of size l2. The monomials in the first block of variables are indexing the rows, the monomials in the second block of variables are indexing the columns. The entries of this matrix are polynomials in the variables x0,..xl0. The type RM specifies the the type of the output matrix.