skew lcm of a pair of operators
extended skew gcd computation
skew elimination of an indeterminate
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)
Ore algebra table
indeterminate of the algebra
(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](..).
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
G ≔ skew_gcdex⁡P,Q,Dx,A
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
Case of 'q'-calculus:
A ≔ skew_algebra⁡comm=q,qdilat=Sx,x,q:
P ≔ Sx2−x
Q ≔ x⁢Sx
skew_elim (or skew_gcdex) may help to find factorization.
P ≔ q2⁢x−1⁢Sx2+q3⁢x2+1+q−q2⁢x⁢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
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
P2 ≔ skew_product⁡L,R2,A
Download Help Document