On Collins Modular Algorithm for Computing Resultant - PowerPoint PPT Presentation

About This Presentation
Title:

On Collins Modular Algorithm for Computing Resultant

Description:

Principles of modular computations in Euclidean domains ... degreeu(resv(f.g)) = degu(f)degv(g) degu(g)degv(f) 9. Implementation in Aldor (1) ... – PowerPoint PPT presentation

Number of Views:74
Avg rating:3.0/5.0
Slides: 14
Provided by: yxie7
Category:

less

Transcript and Presenter's Notes

Title: On Collins Modular Algorithm for Computing Resultant


1
On Collins Modular Algorithm for Computing
Resultant
  • CS874 Course Project
  • Yuzhen Xie
  • Instructed by Marc Mareno Maza
  • April 30, 2003

2
Overview
  • Goals of the project
  • Significance of the resultant
  • Principles of modular computations in Euclidean
    domains
  • Principles of modular resultant algorithm of
    Collins
  • Implementation in Aldor
  • Experimentation and results
  • Annex

3
Goals of the Project
  • To understand the modular resultant algorithm
  • To have an efficient implementation of the
    resultant of two bivariate polynomials
  • To experiment the advantage of modular techniques
    in computer algebra
  • To learn generic programming with Aldor

4
Significance of the resultant
  • Given two polynomials f(v) , g(v)
    , the resultant of f, g is defined
    as the determinant of the Sylvester matrix
  • det(S) 0 if and only if f and g have a common
    divisor of positive degree.
  • So, if f, g ?(Zu)v then res(f,g) Zu
    and give the values of u for which f, g have
    common roots

n
m
5
Principles of modular computations
  • To keep under control the size of the
    coefficients
  • fp Z ? Z/pZ is a ring homomorphism.
  • That is,
  • fp(ab) fp(a) fp(b) , and
  • fp(a b) fp(a) fp(b)
  • Let A be a square matrix over Z, since det(A) is
    made from additions and multiplications of Z,
    fp(det(A)) det(fp(A)).
  • if det(A) lt , then fp(det(A)) det(A).
  • Therefore, det(fp(A)) det(A)

6
Principles of modular computations (contd)
  • For this to work, we need a bound. We have the
    Hadamard bound
  • To use Small Primes and machine arithmetic, we
    can use several modular reductions, ?p1, , ?pn
    and recombine the results with the CRA (Chinese
    Remaindering Algorithm)

7
The Modular Resultant Algorithm of Collins (in a
case of two bivariate polynomials)
f(u)(v), g(u)(v) and prime p p1, , pn such
that p does not divide gcd(lc(f), lc(g)), and
p1pn gt Coefficient bound C
?p(f(u)(v)) and ?p(g(u)(v))
Degree bound k, and a a1, , ak1 (ai ?Z/p, and
lc(fp), lc(gp) ? 0 at u a)
?p(f(ua)(v)) and ?p(g(ua)(v))
Compute the resultant r of ?p(f(ua)(v)) and
?p(g(ua)(v))
r1, , rk1 (ri ?Z/p)
Compute the resultant of ?p(f(u)(v)) and
?p(g(u)(v)) by CRA
rp1(u), , rpn(u) (rp1(u) ?Z/p1u, ,
rpn(u)?Z/pnu )
Compute the resultant of f(u)(v) and g(u)(v) by
CRA
8
The Modular Resultant Algorithm of Collins
(contd)
  • Coefficient bound
  • 2(mn)!dnem, where d max norm (fi) and e max
    norm (gi)
  • Degree bound
  • degreeu(resv(f.g)) lt degu(f)degv(g)
    degu(g)degv(f)

9
Implementation in Aldor (1)
  • //This package computes bounds and helps
    choosing primes
  • // Z Integer, M MachineInteger
  • BivariateUtilitiesPackage(U UnivariatePolynomialC
    ategory(Z), _
  • V UnivariatePolynomialC
    ategory(U)) with
  • resultantCoefficientBound (V, V) -gt Z
  • resultantDegreeBound (V, V) -gt Z
  • primeBad? (V, V, M) -gt Boolean

10
Implementation in Aldor (2)
  • // We compute resultant of biv. poly. over a Z/pZ
  • ResultantOfBivariatePolynomialsOverSmallPrimeField
    (
  • Kp SmallPrimeFieldCategory,
  • Up UnivariatePolynomialCategory(Kp),
  • Vp UnivariatePolynomialCategory(Up)) with
  • evaluationResultant (Vp, Vp, Z) -gt Up
  • // the third argument is the degree bound
  • // After evaluation, we use the generic
    algorithm
  • // for resultants in Z/pZv
  • // Then we interpolate them with CRA
  • evaluationReduction (Vp, Kp) -gt Up

11
Implementation in Aldor (3)
  • ModularResultantOfBivariatePolynomials(
  • U UnivariatePolynomialCategory(Z),
  • V UnivariatePolynomialCategory(U)) with
  • modularResultant (V, V, algorithm Z 1) -gt
    U
  • // Top level function
  • combine (DUP(Z), Z, DUP(M), M) -gt DUP(Z)
  • // Use the CRA for recovering the coefficients
  • // the resultant
  • resultant (V, V, M, Z, algorithm Z
    1) -gt DUPM
  • // Performs the reduction and calls the previous
  • // package

12
Experimentation and results
  • CRA-CRA modular resultant algorithm of Collins
  • Generic essentially the computation of the
    determinate of the Sylvester matrix, without
    taking into account the properties of coefficient
    ring.
  • CRA-Generic we use modular computations for the
    coefficients, but the generic method in
    Z/pZuv.
  • Experimentation on a PC Pentium IV 2 Gig Hz
  • Results for polynomials with very large
    degrees
  • Degree of u, v Resultant degree CRA-CRA
    CRA-Generic Generic
  • (10,30) 600 87
    352 492
  • (20,25) 1000 136
    462 635
  • (20,50) 2000 1444
    ? gt 2h
  • (30,50) 3000 2780
    ? ?

13
Conclusion Remarks
  • Now we can compute resultants of polynomials with
    larger degrees in libalgebra (Aldor) than before.
  • Consequently we should be able to solve larger
    polynomial systems.
  • Our experimentation shows that a mixed method
    (CRA-Generic) is interesting for resultants of
    polynomials with medium degree.
Write a Comment
User Comments (0)
About PowerShow.com