Ore_algebra - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Algebra : Skew Polynomials : Ore Algebra : Ore_algebra/skew_gcdex

Ore_algebra

  

annihilators

  

skew lcm of a pair of operators

  

skew_gcdex

  

extended skew gcd computation

  

skew_pdiv

  

skew pseudo-division

  

skew_prem

  

skew pseudo-remainder

  

skew_elim

  

skew elimination of an indeterminate

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

annihilators(p, q, A)

skew_gcdex(p, q, x, A, opt)

skew_pdiv(p, q, x, A)

skew_prem(p, q, x, A)

skew_elim(p, q, x, A)

Parameters

p, q

-

skew polynomials

A

-

Ore algebra table

x

-

indeterminate of the algebra

opt

-

(optional) literal string; one of monic, left, and left_monic

Description

• 

The annihilators, skew_gcdex, skew_pdiv, skew_prem, and skew_elim commands perform simple algebraic operations in Ore algebras, all based on skew pseudo-division and skew Euclidean algorithms.

• 

The skew_pdiv(p, q, x, A) function performs a skew pseudo-division of the skew polynomial p by the skew polynomial q.  Both polynomials are viewed as polynomials in x in the Ore algebra A.  The function returns a list u,v,r such that upvq=r is of degree lower than q.  The resulting v is a polynomial in x, whereas u is a coefficient.  The skew_prem(p, q, x, A) function simply returns the remainder r.

• 

The skew_gcdex(p, q, x, A) function performs an extended skew gcd algorithm on the skew polynomials p and q viewed as polynomials in x with coefficients in their other indeterminates.  With no option or the option monic, it returns a list g,a,b,u,v such that up+vq=0 and ap+bq=g.  Hence, g is a right gcd of p and q (in an algebra where all coefficient indeterminates are invertible), while up and vq are left lcms of p and q.  Without the option, g, a, and b are fraction-free polynomials with no common content, and u and v are fraction-free polynomials with no common (left) content; when the option monic is used, the polynomial g is made monic and a and b are changed accordingly.  With the option "left" or "left_monic", skew_gcdex returns a list g,a,b,u,v such that pu+qv=0 and pa+qb=g.  In this case, g is a left gcd.  The option "left" returns fraction-free polynomial while the option "left_monic" ensures that g is made monic (by multiplication by a fraction on the right).  (See also Ore_algebra[dual_algebra].)

• 

The annihilators(p, q, A) function performs a specialized algorithm to return a list u,v of skew polynomials of the algebra A such that up+vq=0.

• 

The skew_elim(p, q, x, A) function tries to eliminate the indeterminate x between the skew polynomials p and q.  It returns a nonzero polynomial ap+bq free from x, is such a polynomial exists.  Otherwise, a nonzero polynomial ap+bq of least possible degree in x is returned.

• 

The skew_gcdex, skew_pdiv, skew_prem, and skew_elim commands are specific to the case of skew polynomials viewed as polynomials in a single indeterminate.  A general (multivariate) treatment is provided via Groebner bases computations (see Groebner, and in particular Groebner[Basis], and Groebner[Reduce]).  However, skew_elim is appropriate to eliminate a single indeterminate between two skew polynomials without computing unneeded information.

• 

These functions are part of the Ore_algebra package, and so can be used in the form annihilators(..), skew_gcdex(..), skew_pdiv(..), skew_prem(..), or skew_elim(..) only after performing the command with(Ore_algebra) or with(Ore_algebra,<function>).  The functions can always be accessed in the long form Ore_algebra[annihilators](..), Ore_algebra[skew_gcdex](..), Ore_algebra[skew_pdiv], Ore_algebra[skew_prem], and Ore_algebra[skew_elim](..).

Examples

withOre_algebra&colon;

Differential case.

Adiff_algebraDx&comma;x&colon;

Pskew_productxDx2&plus;Dx1&comma;xx1DxDx&plus;1&comma;A&colon;

Qskew_productx1Dx2Dx&plus;1&comma;xx1DxDx&plus;1&comma;A&colon;

The skew polynomials can be viewed as polynomials in Dx

skew_pdivP&comma;Q&comma;Dx&comma;A

x1&comma;x&comma;2Dx3x42Dx3x32Dx2x42Dx3x2+6Dx2x3+2Dxx4+2Dx3x2Dx2x22Dxx32x42Dx2x2Dxx2+6x3+2Dxx2x22x

(1)

Gskew_gcdexP&comma;Q&comma;Dx&comma;A

G2Dx2x64Dx2x5+2x6+4Dx2x34x52Dx2x2+4x32x2&comma;1x32x2+xDx+x22x&comma;2x33x2x3+x2Dx&comma;Dx2x53Dx2x4Dxx5+3Dx2x3+Dxx4+x5Dx2x2+3Dxx32x45Dxx2+2x3+2Dxx4x2+5x2&comma;Dx2x5+2Dx2x4Dxx5Dx2x3+4Dxx4+x53Dxx3x42x3

(2)

skew_productG2&comma;P&comma;A&plus;skew_productG3&comma;Q&comma;AG1

2Dx2x6+x6+4x512x4+8x3x2Dx4+x64x5+12x48x3+x2Dx4+x6+2x52x3+x2Dx5+4x52x48x3+6x2Dx3+x66x5+2x4+10x37x2Dx+x62x5+6x42x3x2Dx2+3x62x56x4+6x3x2Dx2+x6+6x52x410x3+7x2Dx+x62x5+2x3x2Dx5+4x5+2x4+8x36x2Dx3+4Dx2x54Dx2x3+2Dx2x2

(3)

skew_productG4&comma;P&comma;A&plus;skew_productG5&comma;Q&comma;A

x83x7+2x6+2x53x4+x3Dx6+8x724x6+24x58x4Dx5+12x636x5+36x412x3Dx4+2x82x78x6+16x510x4+2x3Dx3+2x8+10x76x622x5+32x412x3Dx2+2x810x7+16x68x52x4+2x3Dx+x8+3x72x62x5+3x4x3Dx6+8x7+24x624x5+8x4Dx5+12x6+36x536x4+12x3Dx4+2x8+2x7+8x616x5+10x42x3Dx3+2x810x7+6x6+22x532x4+12x3Dx2+2x8+10x716x6+8x5+2x42x3Dx

(4)

annihilatorsP&comma;Q&comma;A

Dx2x53Dx2x4Dxx5+3Dx2x3+Dxx4+x5Dx2x2+3Dxx32x45Dxx2+2x3+2Dxx4x2+5x2&comma;Dx2x5+2Dx2x4Dxx5Dx2x3+4Dxx4+x53Dxx3x42x3

(5)

or in x.  In this case, the algebra must be redefined accordingly.

Adiff_algebraDx&comma;x&comma;polynom&equals;x&colon;

Gskew_gcdexP&comma;Q&comma;x&comma;A

GDx6x2Dx6+8Dx5x+2Dx4x22Dx3x2+10Dx4+12Dx3x+2Dx34Dx2x2Dxx2+14Dx2+4Dxxx2+2Dx4x+3&comma;Dx2Dx+1&comma;Dx2Dx+1&comma;Dx8x+Dx8+2Dx7x10Dx74Dx6x+20Dx6+6Dx5x34Dx57Dx4x+35Dx4+6Dx3x34Dx32Dx2x+22Dx212Dx+x+3&comma;Dx8x+8Dx7+2Dx68Dx53Dx4x+14Dx4+4Dx3x20Dx34Dx2x+18Dx28Dx+x+4

(6)

skew_productG2&comma;P&comma;A&plus;skew_productG3&comma;Q&comma;AG1

0

(7)

skew_productG4&comma;P&comma;A&plus;skew_productG5&comma;Q&comma;A

0

(8)

Case of 'q'-calculus:

Askew_algebracomm&equals;q&comma;qdilat&equals;Sx&comma;x&comma;q&colon;

PSx2x

PSx2x

(9)

QxSx

QxSx

(10)

skew_pdivP&comma;Q&comma;Sx&comma;A

qx&comma;Sx&comma;qx2

(11)

skew_premP&comma;Q&comma;Sx&comma;A

qx2

(12)

skew_elim (or skew_gcdex) may help to find factorization.

Pq2x1Sx2&plus;q3x2&plus;1&plus;qq2xSxq

Pq2x1Sx2+q3x2q2x+q+1Sxq

(13)

Qq5x&plus;1q5x1q9x21Sx5&plus;q&plus;q12x2&plus;x5q23q4q2&plus;x2q10&plus;x2q11q3&plus;q22x51Sx4&plus;qx2q10&plus;q9x2&plus;q&plus;1&plus;q6&plus;q16x4&plus;2q4&plus;2q3&plus;q17x4&plus;q5&plus;q24x6&plus;q8x2&plus;2q2Sx3q31&plus;q5&plus;x2q10&plus;x2q11&plus;q14x4&plus;q&plus;q7x2&plus;q6&plus;q16x4&plus;2q4&plus;2q3&plus;2q2&plus;q15x4&plus;2q8x2&plus;2q9x2Sx2&plus;q6q7x2&plus;q&plus;q3&plus;q6x2&plus;1&plus;q4&plus;q2&plus;q8x2Sxq10

Qq5x+1q5x1q9x21Sx5+x5q23+q22x5+q12x2+x2q11+x2q10q4q3q2q1Sx4+qq24x6+q17x4+q16x4+x2q10+q9x2+q8x2+q6+q5+2q4+2q3+2q2+q+1Sx3q3q16x4+q15x4+q14x4+x2q11+x2q10+2q9x2+2q8x2+q7x2+q6+q5+2q4+2q3+2q2+q+1Sx2+q6q8x2+q7x2+q6x2+q4+q3+q2+q+1Sxq10

(14)

skew_elimP&comma;Q&comma;Sx&comma;A

Sxq3x2+Sx2q2xSxq2xSx2+qSx+Sxq

(15)

This is P. P therefore divides Q in A. Left gcds:

Adiff_algebraDx&comma;x&colon;

LDx2&plus;1&colon;

R1xDx&plus;1&colon;

R2Dx2&plus;1&colon;

P1skew_productL&comma;R1&comma;A

P1Dx3x+3Dx2+Dxx+1

(16)

P2skew_productL&comma;R2&comma;A

P2Dx4+2Dx2+1

(17)

skew_gcdexP1&comma;P2&comma;Dx&comma;A&comma;left

Dx2x2+4Dxx+x2+2&comma;Dxx2&comma;x2&comma;Dx2x2+6Dxx+x2+6&comma;Dxx33x2

(18)

1

Dx2x2+4Dxx+x2+2

(19)

skew_gcdexP1&comma;P2&comma;Dx&comma;A&comma;left_monic

Dx2+1&comma;Dxx&comma;1&comma;Dx2x2+6Dxx+x2+6&comma;Dxx33x2

(20)

1

Dx2+1

(21)

See Also

Groebner[Basis]

Ore_algebra

Ore_algebra/dual_algebra

Ore_algebra/poly_algebra

Ore_algebra/Weyl_algebra