RegularChains[ChainTools] - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Factorization and Solving Equations : RegularChains : ChainTools Subpackage : RegularChains/ChainTools/SubresultantChain

RegularChains[ChainTools]

  

SubresultantChain

  

subresultant chain of two multivariate polynomials

  

LastSubresultant

  

last subresultant of two multivariate polynomials

  

SubresultantOfIndex

  

subresultant of given index for two multivariate polynomials

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

SubresultantChain(f1, f2, v, R)

SubresultantChain(f1, f2, v, R, 'representation'=value)

LastSubresultant(src, R)

SubresultantOfIndex(ind, src, R)

Parameters

f1

-

polynomial of R

f2

-

polynomial of R

v

-

variable of R

R

-

polynomial ring

'representation'='value'

-

(optional) specify representation; value can be 'MonomialBasis', 'ByValues', or 'BezoutMatrix'

src

-

subresultant chain data structure

ind

-

non-negative integer

Description

• 

The command SubresultantChain(f1, f2, v, R) returns a data structure which encodes the subresultant chain of f1 and f2 regarded as univariate polynomials in v.

• 

f1 and f2 must have main variable v and degreef2,vdegreef1,v must hold.

• 

If the option 'representation'='MonomialBasis' is specified then this subresultant chain is encoded as the subresultants of f1 and f2 expressed over the monomial basis of R. That is, in simpler words, the subresultants of f1 and f2 are given in the standard way, by monomials and coefficients. This method is well-suited if the coefficients of f1 and f2 are in a prime field or if the coefficients of f1 and f2 w.r.t. v are neither very sparse nor very dense.

• 

If the option 'representation'='BezoutMatrix' is specified then the Bezout Matrix of f1 and f2 is constructed. When SubresultantOfIndex is invoked the corresponding subresultant is obtained from appropriate minors of the Bezout Matrix of f1 and f2. This method is well-suited if the coefficients of f1 and f2 w.r.t. v are very sparse.

• 

If the option 'representation'='ByValues' is specified then all the variables of f1 and f2 except v are specialized at sufficiently many good values in order to interpolate the subresultants of f1 and f2, when needed. Here, good specialization value means a point at which the initials of f1 and f2 do not vanish. This option uses FFT-based polynomial arithmetic, which implies that the ring R should satisfy the hypotheses of the commands from the FastArithmeticTools subpackage. This method is well-suited if the coefficients of f1 and f2 w.r.t. v are very dense.

• 

By default, the option 'representation'='MonomialBasis' is used.

• 

The data structure returned by SubresultantChain(f1, f2, v, R) can be used to compute the last subresultant of f1 and f2 with respect to v, that is, the non-zero subresultant of smallest index. More precisely, the command LastSubresultant(src, R) returns the non-zero subresultant of smallest index from the subresultant chain data structure encoded by src.

• 

This data structure can be used to compute a subresultant of f1 and f2 (with respect to v) of a given index ind by means of the call SubresultantOfIndex(ind, src, R). Note that ind must be non-negative and less than degreef2,v

• 

This data structure can also be used to compute a regular GCD of f1 and f2 modulo the saturated ideal of a regular chain, by means of the command RegularGcd. In this case, the resultant of f1 and f2 must be zero modulo the saturated ideal of this regular chain.

Examples

withRegularChains:

withChainTools:

Define a ring of polynomials.

RPolynomialRingy,x

Rpolynomial_ring

(1)

Define two polynomials of R.

f1y2+6x1yx2+1

f1y2+6x1yx2+1

(2)

f2x2+6y1xy2+1

f2x2+6y1xy2+1

(3)

Compute their subresultant chain

srcSubresultantChainf1,f2,y,R

srcsubresultant_chain

(4)

We can choose different encodings to the computed subresultant chain

srcBezoutSubresultantChainf1,f2,y,R,representation=BezoutMatrix;opsrcBezout

srcBezoutsubresultant_chain

tableSRC_POLYP=x2y+xy2y2+6xy6,type=subresultant_chain,representation=BezoutMatrix,SRC_MVAR=y,SRC_POLYQ=x2yxy2x2x+6y6,SRC_MDEG=1,SRC_MATRIX=x2+5x6x3+6x211x+6x3+6x211x+6x45x3+13x235x+42

(5)

srcMonoSubresultantChainf1,f2,y,R,representation=MonomialBasis;opsrcMono

srcMonosubresultant_chain

tableSRC_POLYP=x2y+xy2y2+6xy6,type=subresultant_chain,representation=MonomialBasis,SRC_MVAR=y,SRC_POLYQ=x2yxy2x2x+6y6,subresultant_chain_vector=2x622x5+102x4274x3+488x2552x+288,x3x2y+6x2+5xy11x6y+6,x2yxy2x2x+6y6,x2y+xy2y2+6xy6,SRC_MDEG=1

(6)

Note that ByValues representation is used only for modpn ring.

p962592769:

modpnRPolynomialRingy,x,p:

srcValuesSubresultantChainf1,f2,y,modpnR,representation=ByValues;opsrcValues

srcValuessubresultant_chain

tableSRC_POLYP=962592768x2y+xy2+962592768y2+6x+962592768y+962592763,type=subresultant_chain,representation=ByValues,subresultant_chain_scube=subresultant_chain_specialization_cube,SRC_MVAR=y,SRC_POLYQ=962592768x2y+xy2+x2+x+962592763y+6,SRC_MDEG=1

(7)

Extract the last non-zero subresultant

lsrLastSubresultantsrc,R

lsr2x622x5+102x4274x3+488x2552x+288

(8)

which is also the subresultant of index 0 in this example

resSubresultantOfIndex0,src,R

res2x622x5+102x4274x3+488x2552x+288

(9)

expandlsrres

0

(10)

Define a regular chain with res. Note that res is not required to be irreducible or even square free.

rcChainres,EmptyR,R

rcregular_chain

(11)

factorres

2x2x+4x22x32

(12)

Compute a regular GCD of f1 and f2 modulo rc

RegularGcdsrc,rc,R

x3x2y+6x2+5xy11x6y+6,regular_chain,x2yxy2x2x+6y6,regular_chain,x2yxy2x2x+6y6,regular_chain,x2yxy2x2x+6y6,regular_chain,x2yxy2x2x+6y6,regular_chain

(13)

See Also

FastArithmeticTools

RegularChains

RegularGcd

RegularGcdBySpecializationCube

ResultantBySpecializationCube