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
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)
p, q
-
skew polynomials
A
Ore algebra table
x
indeterminate of the algebra
opt
(optional) literal string; one of monic, left, and left_monic
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](..).
with⁡Ore_algebra:
Differential case.
A≔diff_algebra⁡Dx,x:
P≔skew_product⁡x⁢Dx2+Dx−1,x⁢x−1⁢Dx⁢Dx+1,A:
Q≔skew_product⁡x−1⁢Dx2−Dx+1,x⁢x−1⁢Dx⁢Dx+1,A:
The skew polynomials can be viewed as polynomials in Dx
skew_pdiv⁡P,Q,Dx,A
x−1,x,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
G≔skew_gcdex⁡P,Q,Dx,A
G≔2⁢Dx2⁢x6−4⁢Dx2⁢x5+2⁢x6+4⁢Dx2⁢x3−4⁢x5−2⁢Dx2⁢x2+4⁢x3−2⁢x2,1−x3−2⁢x2+x⁢Dx+x2−2⁢x,2⁢x3−3⁢x2−−x3+x2⁢Dx,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,−Dx2⁢x5+2⁢Dx2⁢x4−Dx⁢x5−Dx2⁢x3+4⁢Dx⁢x4+x5−3⁢Dx⁢x3−x4−2⁢x3
skew_product⁡G2,P,A+skew_product⁡G3,Q,A−G1
−2⁢Dx2⁢x6−4⁢Dx2⁢x3+4⁢Dx2⁢x5+2⁢Dx2⁢x2+−x6−4⁢x5+12⁢x4−8⁢x3+x2⁢Dx4+x6−6⁢x5+2⁢x4+10⁢x3−7⁢x2⁢Dx+−x6+6⁢x5−2⁢x4−10⁢x3+7⁢x2⁢Dx+x6+4⁢x5−12⁢x4+8⁢x3−x2⁢Dx4+4⁢x5−2⁢x4−8⁢x3+6⁢x2⁢Dx3+3⁢x6−2⁢x5−6⁢x4+6⁢x3−x2⁢Dx2+−x6+2⁢x5−2⁢x3+x2⁢Dx5+x6−2⁢x5+2⁢x3−x2⁢Dx5+−4⁢x5+2⁢x4+8⁢x3−6⁢x2⁢Dx3+−x6−2⁢x5+6⁢x4−2⁢x3−x2⁢Dx2
skew_product⁡G4,P,A+skew_product⁡G5,Q,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
annihilators⁡P,Q,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,−Dx2⁢x5+2⁢Dx2⁢x4−Dx⁢x5−Dx2⁢x3+4⁢Dx⁢x4+x5−3⁢Dx⁢x3−x4−2⁢x3
or in x. In this case, the algebra must be redefined accordingly.
A≔diff_algebra⁡Dx,x,polynom=x:
G≔skew_gcdex⁡P,Q,x,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,Dx2−Dx+1,−Dx2−Dx+1,−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,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
0
Case of 'q'-calculus:
A≔skew_algebra⁡comm=q,qdilat=Sx,x,q:
P≔Sx2−x
Q≔x⁢Sx
skew_pdiv⁡P,Q,Sx,A
q⁢x,Sx,−q⁢x2
skew_prem⁡P,Q,Sx,A
−q⁢x2
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
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
skew_elim⁡P,Q,Sx,A
Sx⁢q3⁢x2+Sx2⁢q2⁢x−Sx⁢q2⁢x−Sx2+q⁢Sx+Sx−q
This is P. P therefore divides Q in A. Left gcds:
L≔Dx2+1:
R1≔x⁢Dx+1:
R2≔Dx2+1:
P1≔skew_product⁡L,R1,A
P1≔Dx3⁢x+3⁢Dx2+Dx⁢x+1
P2≔skew_product⁡L,R2,A
P2≔Dx4+2⁢Dx2+1
skew_gcdex⁡P1,P2,Dx,A,left
Dx2⁢x2+4⁢Dx⁢x+x2+2,−Dx⁢x−2,x2,Dx2⁢x2+6⁢Dx⁢x+x2+6,−Dx⁢x3−3⁢x2
1
Dx2⁢x2+4⁢Dx⁢x+x2+2
skew_gcdex⁡P1,P2,Dx,A,left_monic
Dx2+1,−Dxx,1,Dx2⁢x2+6⁢Dx⁢x+x2+6,−Dx⁢x3−3⁢x2
Dx2+1
See Also
Groebner[Basis]
Ore_algebra/dual_algebra
Ore_algebra/poly_algebra
Ore_algebra/Weyl_algebra
Download Help Document