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.
|
|
Shift and difference operators: , .
|
|
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:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_delta type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
The diff type introduces a differential operator Dx that commutes with the operator of multiplication by x as:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_diff type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
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:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_euler type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
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:
|
|
This operator acts on Maple objects as:
|
|
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:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_qdelta type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
The qdiff type introduces a q-calculus operator Dx that commutes with the operator x of multiplication by x as:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_qdiff type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
With the syntax , the qdilat type introduces a q-calculus operator Hx that commutes with the operator x of multiplication by q^x as:
|
|
This operator acts on Maple objects as:
|
|
This operator acts on Maple objects as:
|
|
while the operator qx does as:
|
|
Correspondingly, the dual_qdilat type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
|
while the operator qx does as:
|
•
|
The qshift type introduces a q-calculus operator Sx that commutes with the operator q^x of multiplication by q^x as:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_qshift type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
•
|
The shift type introduces a shift operator that commutes with the operator of multiplication by x as:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the dual_shift type is defined by the commutation:
|
|
This operator acts on Maple objects as:
|
|
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:
|
|
These operators acts on Maple objects as:
|
|
Note: In the current implementation, the rules and 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:
|
|
This operator acts on Maple objects as:
|
|
Correspondingly, the `dual_shift+dual_qshift` type is defined by the commutations:
|
|
This operator acts on Maple objects as:
|
•
|
User-defined types are introduced by the syntax.
|
|
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.
>
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
>
|
|
| (3) |
>
|
|
| (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 .
>
|
|
>
|
|
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
>
|
|
| (8) |
>
|
|
| (9) |
>
|
|
| (10) |
>
|
|
| (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 respectively. The commutation rule reads: .
>
|
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]):
|
>
|
|
| (12) |
>
|
|
| (13) |
>
|
|
| (14) |
Define the Mahlerian operator of order . The commutation rule reads: .
>
|
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]):
|
>
|
|
| (15) |
>
|
|
| (16) |
>
|
|
| (17) |
|
|