Ore_algebra
shift_algebra
create an algebra of linear difference operators
qshift_algebra
create an algebra of linear q-difference operators
Calling Sequence
Parameters
Description
Examples
shift_algebra(l_1, ..., l_n)
qshift_algebra(lq_1, ..., lq_n)
l_i
-
list Si,ni or list comm,ai
lq_i
list Si,ni,qi or list comm,ai
S_i
indeterminates (shift and q-shift operator names)
n_i
indeterminates (variable names)
a_i
indeterminates (parameter names)
The shift_algebra(l_1, ..., l_n) and qshift_algebra(lq_1, ..., lq_n) functions each declare an Ore algebra and return a table that is used by other functions of the Ore_algebra package.
A difference algebra is an algebra of noncommutative polynomials in the indeterminates n1,...,np,S1,...,Sp ruled by the following commutation relations:
Si⁢ni=ni+1⁢Si
for i=1,...,p. Any other pair of indeterminates commute.
A q-difference algebra is an algebra of noncommutative polynomials in the indeterminates q,n1,...,np,S1,...,Sp ruled by the following commutation relations:
Si⁢ni=q⁢ni+1⁢Si
for i=1,...,p. q is a constant and any other pair of indeterminates commute.
Note: Difference and q-difference algebras are special cases of Ore algebras. For more information, see Ore_algebra.
The name n_i can be unassigned.
The name S_i can be unassigned. It is used to denote the difference or q-difference indeterminate S_i associated to the base indeterminate n_i, that is, the operator of shift or q-shift with respect to n_i.
When the list l_i is of the form Si,ni (difference case) or Si,ni,qi (q-difference case), the names n_i and S_i can be unassigned. Both indeterminates commute with any other indeterminate of the algebra.
When the list l_i is of the form comm,ai, the name a_i can be unassigned. It denotes a parameter that commutes with any other indeterminate of the algebra.
Though difference and q-difference algebras are noncommutative algebras, their elements are represented with the standard commutative Maple product. Every Ore_algebra function dealing with elements of a difference of q-difference algebra uses its normal form where all S_i appear on the right of the corresponding n_i. A monomial na⁢Snb can therefore be printed either na⁢Snb or na⁢Snb.
The sum in difference or q-difference algebras is performed by simply using the Maple `+`, while the product is performed by the Ore_algebra function skew_product (see examples below).
It is also possible to declare a difference or a q-difference algebra by using Ore_algebra[skew_algebra]. Moreover, the algebras declared by Ore_algebra[shift_algebra] and Ore_algebra[qshift_algebra] are difference and q-difference algebras based on shift and q-shift operators S_i, but it is also possible to declare algebras based on finite difference and q-difference operators Di=Si+1 (see Ore_algebra[skew_algebra], predefined types delta and qdelta).
Options are available to control the ground ring of the algebra and the action of the operators on Maple objects. See Ore_algebra[declaration_options].
These function are part of the Ore_algebra package, and so can be used in the form shift_algebra(..) and qshift_algebra(..) 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[shift_algebra](..) and Ore_algebra[qshift_algebra](..).
with(Ore_algebra):
Difference algebras:
A:=shift_algebra([Sn,n],[Sm,m]);
A≔Ore_algebra
skew_product(Sn,n,A),skew_product(Sm,m,A);
n+1⁢Sn,m+1⁢Sm
skew_product(Sn*Sm,n*m,A);
n⁢m+m+n+1⁢Sn⁢Sm
skew_product(Sn,n^10,A);
n10+10⁢n9+45⁢n8+120⁢n7+210⁢n6+252⁢n5+210⁢n4+120⁢n3+45⁢n2+10⁢n+1⁢Sn
Both following calls are equivalent. The first syntax is more convenient to input numerous commutative parameters.
skew_algebra(comm={a,b,c,d,e,f,g,h},shift=[Sn,n]);
shift_algebra([comm,a],[comm,b],[comm,c],[comm,d],[comm,e],[comm,f], [comm,g],[comm,h],[Sn,n]);
evalb((5)=(6));
true
Both following algebras are different points of view for the same algebra of operators
shift_algebra([Sn,n]);
(or equivalently skew_algebra(shift=[Sn, n]);).
skew_algebra(delta=[Dn,n]);
q-difference algebras:
A:=qshift_algebra([Sn,q^n],[Sm,q^m]);
skew_product(Sn,q^n,A),skew_product(Sm,q^m,A);
q⁢qn⁢Sn,q⁢qm⁢Sm
skew_product(Sn*Sm,q^n*q^m,A);
q2⁢qn⁢qm⁢Sn⁢Sm
skew_product(Sn,(q^n)^10,A);
q10⁢qn10⁢Sn
There can also be distinct qs.
A:=qshift_algebra([Sn,q^n],[Sm,p^m]);
skew_product(Sn,q^n,A),skew_product(Sm,p^m,A);
q⁢qn⁢Sn,p⁢pm⁢Sm
skew_product(Sn*Sm,q^n*p^m,A);
q⁢qn⁢p⁢pm⁢Sn⁢Sm
See Also
Ore_algebra/skew_product
Download Help Document
What kind of issue would you like to report? (Optional)