annihilators - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


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 u⁢p−v⁢q=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

> 

with⁡Ore_algebra&colon;

Differential case.

> 

A≔diff_algebra⁡Dx&comma;x&colon;

> 

P≔skew_product⁡x⁢Dx2+Dx−1&comma;x⁢x−1⁢Dx⁢Dx+1&comma;A&colon;

> 

Q≔skew_product⁡x−1⁢Dx2−Dx+1&comma;x⁢x−1⁢Dx⁢Dx+1&comma;A&colon;

The skew polynomials can be viewed as polynomials in Dx

> 

skew_pdiv⁡P&comma;Q&comma;Dx&comma;A

x−1&comma;x&comma;2⁢Dx3⁢x4−2⁢Dx3⁢x3−2⁢Dx2⁢x4−2⁢Dx3⁢x2+6⁢Dx2⁢x3+2⁢Dx⁢x4+2⁢Dx3⁢x−2⁢Dx2⁢x2−2⁢Dx⁢x3−2⁢x4−2⁢Dx2⁢x−2⁢Dx⁢x2+6⁢x3+2⁢Dx⁢x−2⁢x2−2⁢x

(1)
> 

G≔skew_gcdex⁡P&comma;Q&comma;Dx&comma;A

G≔2⁢Dx2⁢x6−4⁢Dx2⁢x5+2⁢x6+4⁢Dx2⁢x3−4⁢x5−2⁢Dx2⁢x2+4⁢x3−2⁢x2&comma;1−x3−2⁢x2+x⁢Dx+x2−2⁢x&comma;2⁢x3−3⁢x2−−x3+x2⁢Dx&comma;Dx2⁢x5−3⁢Dx2⁢x4−Dx⁢x5+3⁢Dx2⁢x3+Dx⁢x4+x5−Dx2⁢x2+3⁢Dx⁢x3−2⁢x4−5⁢Dx⁢x2+2⁢x3+2⁢Dx⁢x−4⁢x2+5⁢x−2&comma;−Dx2⁢x5+2⁢Dx2⁢x4−Dx⁢x5−Dx2⁢x3+4⁢Dx⁢x4+x5−3⁢Dx⁢x3−x4−2⁢x3

(2)
> 

skew_product⁡G2&comma;P&comma;A+skew_product⁡G3&comma;Q&comma;A−G1

−2⁢Dx2⁢x6+4⁢Dx2⁢x5−4⁢Dx2⁢x3+2⁢Dx2⁢x2+x6−6⁢x5+2⁢x4+10⁢x3−7⁢x2⁢Dx+4⁢x5−2⁢x4−8⁢x3+6⁢x2⁢Dx3+−4⁢x5+2⁢x4+8⁢x3−6⁢x2⁢Dx3+x6+4⁢x5−12⁢x4+8⁢x3−x2⁢Dx4+−x6−4⁢x5+12⁢x4−8⁢x3+x2⁢Dx4+−x6−2⁢x5+6⁢x4−2⁢x3−x2⁢Dx2+3⁢x6−2⁢x5−6⁢x4+6⁢x3−x2⁢Dx2+x6−2⁢x5+2⁢x3−x2⁢Dx5+−x6+2⁢x5−2⁢x3+x2⁢Dx5+−x6+6⁢x5−2⁢x4−10⁢x3+7⁢x2⁢Dx

(3)
> 

skew_product⁡G4&comma;P&comma;A+skew_product⁡G5&comma;Q&comma;A

x8−3⁢x7+2⁢x6+2⁢x5−3⁢x4+x3⁢Dx6+8⁢x7−24⁢x6+24⁢x5−8⁢x4⁢Dx5+12⁢x6−36⁢x5+36⁢x4−12⁢x3⁢Dx4+2⁢x8−2⁢x7−8⁢x6+16⁢x5−10⁢x4+2⁢x3⁢Dx3+−2⁢x8+10⁢x7−6⁢x6−22⁢x5+32⁢x4−12⁢x3⁢Dx2+2⁢x8−10⁢x7+16⁢x6−8⁢x5−2⁢x4+2⁢x3⁢Dx+−x8+3⁢x7−2⁢x6−2⁢x5+3⁢x4−x3⁢Dx6+−8⁢x7+24⁢x6−24⁢x5+8⁢x4⁢Dx5+−12⁢x6+36⁢x5−36⁢x4+12⁢x3⁢Dx4+−2⁢x8+2⁢x7+8⁢x6−16⁢x5+10⁢x4−2⁢x3⁢Dx3+2⁢x8−10⁢x7+6⁢x6+22⁢x5−32⁢x4+12⁢x3⁢Dx2+−2⁢x8+10⁢x7−16⁢x6+8⁢x5+2⁢x4−2⁢x3⁢Dx

(4)
> 

annihilators⁡P&comma;Q&comma;A

Dx2⁢x5−3⁢Dx2⁢x4−Dx⁢x5+3⁢Dx2⁢x3+Dx⁢x4+x5−Dx2⁢x2+3⁢Dx⁢x3−2⁢x4−5⁢Dx⁢x2+2⁢x3+2⁢Dx⁢x−4⁢x2+5⁢x−2&comma;−Dx2⁢x5+2⁢Dx2⁢x4−Dx⁢x5−Dx2⁢x3+4⁢Dx⁢x4+x5−3⁢Dx⁢x3−x4−2⁢x3

(5)

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

> 

A≔diff_algebra⁡Dx&comma;x&comma;polynom=x&colon;

> 

G≔skew_gcdex⁡P&comma;Q&comma;x&comma;A

G≔Dx6⁢x2−Dx6+8⁢Dx5⁢x+2⁢Dx4⁢x2−2⁢Dx3⁢x2+10⁢Dx4+12⁢Dx3⁢x+2⁢Dx3−4⁢Dx2⁢x−2⁢Dx⁢x2+14⁢Dx2+4⁢Dx⁢x−x2+2⁢Dx−4⁢x+3&comma;Dx2−Dx+1&comma;−Dx2−Dx+1&comma;−Dx8⁢x+Dx8+2⁢Dx7⁢x−10⁢Dx7−4⁢Dx6⁢x+20⁢Dx6+6⁢Dx5⁢x−34⁢Dx5−7⁢Dx4⁢x+35⁢Dx4+6⁢Dx3⁢x−34⁢Dx3−2⁢Dx2⁢x+22⁢Dx2−12⁢Dx+x+3&comma;Dx8⁢x+8⁢Dx7+2⁢Dx6−8⁢Dx5−3⁢Dx4⁢x+14⁢Dx4+4⁢Dx3⁢x−20⁢Dx3−4⁢Dx2⁢x+18⁢Dx2−8⁢Dx+x+4

(6)
> 

skew_product⁡G2&comma;P&comma;A+skew_product⁡G3&comma;Q&comma;A−G1

0

(7)
> 

skew_product⁡G4&comma;P&comma;A+skew_product⁡G5&comma;Q&comma;A

0

(8)

Case of 'q'-calculus:

> 

A≔skew_algebra⁡comm=q&comma;qdilat=Sx&comma;x&comma;q&colon;

> 

P≔Sx2−x

P≔Sx2−x

(9)
> 

Q≔x⁢Sx

Q≔x⁢Sx

(10)
> 

skew_pdiv⁡P&comma;Q&comma;Sx&comma;A

q⁢x&comma;Sx&comma;−q⁢x2

(11)
> 

skew_prem⁡P&comma;Q&comma;Sx&comma;A

−q⁢x2

(12)

skew_elim (or skew_gcdex) may help to find factorization.

> 

P≔q2⁢x−1⁢Sx2+q3⁢x2+1+q−q2⁢x⁢Sx−q

P≔q2⁢x−1⁢Sx2+q3⁢x2−q2⁢x+q+1⁢Sx−q

(13)
> 

Q≔q5⁢x+1⁢q5⁢x−1⁢q9⁢x2−1⁢Sx5+−q+q12⁢x2+x5⁢q23−q4−q2+x2⁢q10+x2⁢q11−q3+q22⁢x5−1⁢Sx4+q⁢x2⁢q10+q9⁢x2+q+1+q6+q16⁢x4+2⁢q4+2⁢q3+q17⁢x4+q5+q24⁢x6+q8⁢x2+2⁢q2⁢Sx3−q3⁢1+q5+x2⁢q10+x2⁢q11+q14⁢x4+q+q7⁢x2+q6+q16⁢x4+2⁢q4+2⁢q3+2⁢q2+q15⁢x4+2⁢q8⁢x2+2⁢q9⁢x2⁢Sx2+q6⁢q7⁢x2+q+q3+q6⁢x2+1+q4+q2+q8⁢x2⁢Sx−q10

Q≔q5⁢x+1⁢q5⁢x−1⁢q9⁢x2−1⁢Sx5+x5⁢q23+q22⁢x5+q12⁢x2+x2⁢q11+x2⁢q10−q4−q3−q2−q−1⁢Sx4+q⁢q24⁢x6+q17⁢x4+q16⁢x4+x2⁢q10+q9⁢x2+q8⁢x2+q6+q5+2⁢q4+2⁢q3+2⁢q2+q+1⁢Sx3−q3⁢q16⁢x4+q15⁢x4+q14⁢x4+x2⁢q11+x2⁢q10+2⁢q9⁢x2+2⁢q8⁢x2+q7⁢x2+q6+q5+2⁢q4+2⁢q3+2⁢q2+q+1⁢Sx2+q6⁢q8⁢x2+q7⁢x2+q6⁢x2+q4+q3+q2+q+1⁢Sx−q10

(14)
> 

skew_elim⁡P&comma;Q&comma;Sx&comma;A

Sx⁢q3⁢x2+Sx2⁢q2⁢x−Sx⁢q2⁢x−Sx2+q⁢Sx+Sx−q

(15)

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

> 

A≔diff_algebra⁡Dx&comma;x&colon;

> 

L≔Dx2+1&colon;

> 

R1≔x⁢Dx+1&colon;

> 

R2≔Dx2+1&colon;

> 

P1≔skew_product⁡L&comma;R1&comma;A

P1≔Dx3⁢x+3⁢Dx2+Dx⁢x+1

(16)
> 

P2≔skew_product⁡L&comma;R2&comma;A

P2≔Dx4+2⁢Dx2+1

(17)
> 

skew_gcdex⁡P1&comma;P2&comma;Dx&comma;A&comma;left

Dx2⁢x2+4⁢Dx⁢x+x2+2&comma;−Dx⁢x−2&comma;x2&comma;Dx2⁢x2+6⁢Dx⁢x+x2+6&comma;−Dx⁢x3−3⁢x2

(18)
> 

1

Dx2⁢x2+4⁢Dx⁢x+x2+2

(19)
> 

skew_gcdex⁡P1&comma;P2&comma;Dx&comma;A&comma;left_monic

Dx2+1&comma;−Dxx&comma;1&comma;Dx2⁢x2+6⁢Dx⁢x+x2+6&comma;−Dx⁢x3−3⁢x2

(20)
> 

1

Dx2+1

(21)

See Also

Groebner[Basis]

Ore_algebra

Ore_algebra/dual_algebra

Ore_algebra/poly_algebra

Ore_algebra/Weyl_algebra