Commutation Rules in Ore Algebra - Maple Programming Help

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

Commutation Rules in Ore Algebra

Description

 • Ore algebras can be defined by mixing predefined commutation types and user-defined commutation types.
 • Currently available predefined types are introduced by the following syntaxes.
 Differential operators: $\mathrm{diff}=\left[\mathrm{Dx},x\right]$, $\mathrm{euler}=\left[\mathrm{Tx},x\right]$, $\mathrm{loc_diff}=\left[\mathrm{Dx},x\right]$ (followed by $\mathrm{localization}=\left[u,p\right]$).
 Shift and difference operators: $\mathrm{\delta }=\left[\mathrm{Dx},x\right]$, $\mathrm{shift}=\left[\mathrm{Sx},x\right]$.
 _q_-Calculus operators: $\mathrm{qdelta}=\left[\mathrm{Dx},{q}^{x}\right]$, $\mathrm{qdiff}=\left[\mathrm{Dx},x,q\right]$, $\mathrm{qdilat}=\left[\mathrm{Hx},x,q\right]$, $\mathrm{qdilat}=\left[\mathrm{Dx},\mathrm{qx}={q}^{x}\right]$, $\mathrm{qshift}=\left[\mathrm{Sx},{q}^{x}\right]$, $\mathrm{shift+qshift}=\left[\mathrm{Sx},{q}^{x}\right]$.
 Dual types dual_delta, dual_diff, dual_euler, dual_qdelta, dual_qdiff, dual_qdilat, dual_qshift, dual_shift, and dual_shift+dual_qshift are also available.
 • The delta type introduces a finite difference operator Dx that commutes with the operator of multiplication by x as:

$\mathrm{Dx}x=\left(x+1\right)\mathrm{Dx}+1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x+1\right)-f\left(x\right)$

 Correspondingly, the dual_delta type is defined by the commutation:

$\mathrm{Dx}x=\left(x-1\right)\mathrm{Dx}-1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x-1\right)-f\left(x\right)$

 • The diff type introduces a differential operator Dx that commutes with the operator of multiplication by x as:

$\mathrm{Dx}x=\mathrm{Dx}x+1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=\frac{ⅆ}{ⅆx}f\left(x\right)$

 Correspondingly, the dual_diff type is defined by the commutation:

$\mathrm{Dx}x=\mathrm{Dx}x-1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=-\left(\frac{ⅆ}{ⅆx}f\left(x\right)\right)$

 • The euler type introduces an Eulerian operator, that is, x times the differential operator with respect to x, that commutes with the operator of multiplication by x as:

$\mathrm{Tx}x=\mathrm{Tx}x+x$

 This operator acts on Maple objects as:

$\mathrm{Tx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=x\left(\frac{ⅆ}{ⅆx}f\left(x\right)\right)$

 Correspondingly, the dual_euler type is defined by the commutation:

$\mathrm{Tx}x=\mathrm{Tx}x-x$

 This operator acts on Maple objects as:

$\mathrm{Tx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=-x\left(\frac{ⅆ}{ⅆx}f\left(x\right)\right)$

 • The loc_diff type introduces a differential operator Dx that commutes with the operators x and u of multiplication by x and 1/p, respectively, as:

$\mathrm{Dx}x=\mathrm{Dx}x+1$

$\mathrm{Dx}u=\mathrm{Dx}u-{u}^{2}\left(\frac{\partial }{\partial x}p\right)$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=\frac{ⅆ}{ⅆx}f\left(x\right)$

 Several loc_diff commutations can appear in the same algebra.  However, they must all be related to the same localization option and there can be at most one such option. Not all indeterminates involved in the inverted polynomial p can appear rationally in the algebra.  At least one of them must be declared polynomial by using the polynom option.
 • The qdelta type introduces a q-calculus operator Dx that commutes with the operator q^x of multiplication by q^x as:

$\mathrm{Dx}{q}^{x}=q{q}^{x}\mathrm{Dx}+q{q}^{x}-{q}^{x}$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x+1\right)-f\left(x\right)$

 Correspondingly, the dual_qdelta type is defined by the commutation:

$\mathrm{Dx}{q}^{x}=\frac{{q}^{x}\mathrm{Dx}}{q}-\frac{\left(q-1\right){q}^{x}}{q}$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x-1\right)-f\left(x\right)$

 • The qdiff type introduces a q-calculus operator Dx that commutes with the operator x of multiplication by x as:

$\mathrm{Dx}x=\mathrm{Dx}qx+1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=\frac{f\left(qx\right)-f\left(x\right)}{\left(q-1\right)x}$

 Correspondingly, the dual_qdiff type is defined by the commutation:

$\mathrm{Dx}x=\frac{x\mathrm{Dx}}{q}-1$

 This operator acts on Maple objects as:

$\mathrm{Dx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=\frac{q\left(f\left(\frac{x}{q}\right)-f\left(x\right)\right)}{\left(q-1\right)x}$

 • With the syntax $\mathrm{qdilat}=\left[\mathrm{Hx},x,q\right]$, the qdilat type introduces a q-calculus operator Hx that commutes with the operator x of multiplication by q^x as:

$\mathrm{Hx}x=qx\mathrm{Hx}$

 This operator acts on Maple objects as:

$\mathrm{Hx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(qx\right)$

 With the alternative syntax $\mathrm{qdilat}=\left[\mathrm{Sx},\mathrm{qx}={q}^{x}\right]$, the qdilat type introduces a q-calculus operator Sx that acts like the operator of the qshift section below, but with a notation for the operator of multiplication by ${q}^{x}$ that is the name qx instead of the power ${q}^{x}$.  This syntax is better suited to calculations with the Groebner package.  The operator Sx commutes with the operator qx as:

$\mathrm{Sx}\mathrm{qx}=q\mathrm{qx}\mathrm{Sx}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(qx\right)$

 while the operator qx does as:

$\mathrm{qx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)={q}^{x}f\left(x\right)$

 Correspondingly, the dual_qdilat type is defined by the commutation:

$\mathrm{Sx}\mathrm{qx}=\frac{\mathrm{qx}\mathrm{Sx}}{q}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(\frac{x}{q}\right)$

 while the operator qx does as:

$\mathrm{qx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)={q}^{x}f\left(x\right)$

 • The qshift type introduces a q-calculus operator Sx that commutes with the operator q^x of multiplication by q^x as:

$\mathrm{Sx}{q}^{x}=q{q}^{x}\mathrm{Sx}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x+1\right)$

 Correspondingly, the dual_qshift type is defined by the commutation:

$\mathrm{Sx}{q}^{x}=\frac{{q}^{x}\mathrm{Sx}}{q}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x-1\right)$

 • The shift type introduces a shift operator $\mathrm{Sx}=\mathrm{Dx}+1$ that commutes with the operator of multiplication by x as:

$\mathrm{Sx}x=\left(x+1\right)\mathrm{Sx}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x+1\right)$

 Correspondingly, the dual_shift type is defined by the commutation:

$\mathrm{Sx}x=\left(x-1\right)\mathrm{Sx}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x-1\right)$

 The related type shift+dual_shift introduces both operators above, namely the forward shift operator Sx and the backward shift operator Tx, which commute with the operator of multiplication by x as:

$\mathrm{Sx}x=\left(x+1\right)\mathrm{Sx},$

$\mathrm{Tx}x=\left(x-1\right)\mathrm{Tx}$

 These operators acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x+1\right),$

$\mathrm{Tx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x\right)=f\left(x-1\right)$

 Note: In the current implementation, the rules $\mathrm{Sx}\mathrm{Tx}=1$ and $\mathrm{Sx}\mathrm{Tx}=1$ are not recognized.
 • The shift+qshift type introduces a q-calculus operator Sx that commutes with the operators x and q^x of multiplication by x and q^x respectively as:

$\mathrm{Sx}x=\left(x+1\right)\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{and}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{Sx}{q}^{x}=q{q}^{x}\mathrm{Sx}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x,{q}^{x}\right)=f\left(x+1,q{q}^{x}\right)$

 Correspondingly, the dual_shift+dual_qshift type is defined by the commutations:

$\mathrm{Sx}x=\left(x-1\right)\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{and}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{Sx}{q}^{x}=\frac{{q}^{x}\mathrm{Sx}}{q}$

 This operator acts on Maple objects as:

$\mathrm{Sx}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}.\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}f\left(x,{q}^{x}\right)=f\left(x-1,\frac{{q}^{x}}{q}\right)$

 • User-defined types are introduced by the syntax.

$\mathrm{user}=\left[d,x,\mathrm{\sigma },\mathrm{\delta }\right]$

 where d is the pseudo-differentiation operator, x is the operator of multiplication by x, and sigma and delta are functions over polynomials in x.  See examples below.  No action on Maple objects is predefined.
 • Not all combinations of commutations are supported. More specifically, the indeterminates x_i and d_i must appear in a single list l_j only, except from the parameters q used for q-calculus.

Examples

Dual commutations

Here are possible declarations of a shift operator, next of a inverse shift operator.

 > $\mathrm{with}\left(\mathrm{Ore_algebra}\right):$
 > $A≔\mathrm{skew_algebra}\left(\mathrm{shift}=\left[\mathrm{Sn},n\right]\right):$
 > $\mathrm{skew_product}\left(\mathrm{Sn},n,A\right)$
 $\left({n}{+}{1}\right){}{\mathrm{Sn}}$ (1)
 > $\mathrm{applyopr}\left(\mathrm{Sn},u\left(n\right),A\right)$
 ${u}{}\left({n}{+}{1}\right)$ (2)
 > $A≔\mathrm{skew_algebra}\left(\mathrm{dual_shift}=\left[\mathrm{Sn},n\right]\right):$
 > $\mathrm{skew_product}\left(\mathrm{Sn},n,A\right)$
 $\left({n}{-}{1}\right){}{\mathrm{Sn}}$ (3)
 > $\mathrm{applyopr}\left(\mathrm{Sn},u\left(n\right),A\right)$
 ${u}{}\left({n}{-}{1}\right)$ (4)

Localization

The following call introduces the algebra of linear differential operators with polynomial coefficients in x and y and an inverse u for the polynomial $p=-{x}^{2}-{y}^{2}+1$.

 > $p≔1-{x}^{2}-{y}^{2}:$
 > $A≔\mathrm{skew_algebra}\left(\mathrm{loc_diff}=\left[\mathrm{Dx},x\right],\mathrm{loc_diff}=\left[\mathrm{Dy},y\right],\mathrm{polynom}=\left\{x,y\right\},\mathrm{localization}=\left[u,p\right]\right):$
 > $\mathrm{skew_product}\left(\mathrm{Dx},x,A\right)$
 ${\mathrm{Dx}}{}{x}{+}{1}$ (5)
 > $\mathrm{skew_product}\left(\mathrm{Dx},u,A\right)$
 ${2}{}{{u}}^{{2}}{}{x}{+}{\mathrm{Dx}}{}{u}$ (6)
 > $\mathrm{skew_product}\left(\mathrm{Dx},ux,A\right)$
 ${2}{}{{u}}^{{2}}{}{{x}}^{{2}}{+}{\mathrm{Dx}}{}{u}{}{x}{+}{u}$ (7)
 > $\mathrm{skew_product}\left(\mathrm{Dy},y,A\right)$
 ${\mathrm{Dy}}{}{y}{+}{1}$ (8)
 > $\mathrm{skew_product}\left(\mathrm{Dy},u,A\right)$
 ${2}{}{{u}}^{{2}}{}{y}{+}{\mathrm{Dy}}{}{u}$ (9)
 > $\mathrm{skew_product}\left(\mathrm{Dy},uy,A\right)$
 ${2}{}{{u}}^{{2}}{}{{y}}^{{2}}{+}{\mathrm{Dy}}{}{u}{}{y}{+}{u}$ (10)
 > $\mathrm{map}\left(\mathrm{applyopr},\left[x,y,u,\mathrm{Dx},\mathrm{Dy}\right],f\left(x,y\right),A\right)$
 $\left[{x}{}{f}{}\left({x}{,}{y}\right){,}{y}{}{f}{}\left({x}{,}{y}\right){,}\frac{{f}{}\left({x}{,}{y}\right)}{{-}{{x}}^{{2}}{-}{{y}}^{{2}}{+}{1}}{,}\frac{{\partial }}{{\partial }{x}}{}{f}{}\left({x}{,}{y}\right){,}\frac{{\partial }}{{\partial }{y}}{}{f}{}\left({x}{,}{y}\right)\right]$ (11)

User-defined commutations

Define an algebra of operators where Dx and y are interpreted as the differentiation operator with respect to x and as the multiplication operator by ${ⅇ}^{x}$ respectively.  The commutation rule reads: $\left({ⅇ}^{x}f\left(x\right)\right)'={ⅇ}^{x}f\left(x\right)+{ⅇ}^{x}f'\left(x\right)$.

 > A:=skew_algebra(user=[Dx,y,p->p,     proc(p,n) local q;         q:=p; to n do q:=y*diff(q,y) end do; q     end proc]):
 > $\mathrm{skew_product}\left(\mathrm{Dx},y,A\right)$
 ${\mathrm{Dx}}{}{y}{+}{y}$ (12)
 > $\mathrm{skew_product}\left({\mathrm{Dx}}^{3},y,A\right)$
 ${{\mathrm{Dx}}}^{{3}}{}{y}{+}{3}{}{{\mathrm{Dx}}}^{{2}}{}{y}{+}{3}{}{\mathrm{Dx}}{}{y}{+}{y}$ (13)
 > $\mathrm{skew_product}\left(\mathrm{Dx},{y}^{5},A\right)$
 ${\mathrm{Dx}}{}{{y}}^{{5}}{+}{5}{}{{y}}^{{5}}$ (14)

Define the Mahlerian operator of order $p=2$.  The commutation rule reads: $M\left(f\left(x\right)\right)=f\left({x}^{2}\right)$.

 > A:=skew_algebra(user=[M,x,proc(p,n) subs(x=x^(2^n),p) end proc,     proc(p,n) if(n=0,p,0) end proc]):
 > $\mathrm{skew_product}\left(M,x,A\right)$
 ${{x}}^{{2}}{}{M}$ (15)
 > $\mathrm{skew_product}\left({M}^{5},x,A\right)$
 ${{x}}^{{32}}{}{{M}}^{{5}}$ (16)
 > $\mathrm{skew_product}\left(M,5{x}^{3}+x,A\right)$
 $\left({5}{}{{x}}^{{6}}{+}{{x}}^{{2}}\right){}{M}$ (17)