LREtools
MultiplyOperators
multiply linear difference operators
GCRD
Greatest Common Right Divisor of linear difference operators
LCLM
Least Common Left Multiple of linear difference operators
RightDivision
divide two linear difference operators
RecurrenceToOperator
convert a recurrence relation to a difference operator
OperatorToRecurrence
convert a difference operator to a recurrence relation
Calling Sequence
Parameters
Description
Examples
Compatibility
MultiplyOperators(L1, L2, ...)
GCRD(L1, L2, ...)
LCLM(L1, L2, ...)
RightDivision(L1, L2)
RecurrenceToOperator(R, dvar)
OperatorToRecurrence(L, dvar)
L1,L2, ...
-
linear difference operators
R
recurrence
dvar
dependent variable
The shift operator (often denoted as E, S, or τ) acts on functions by adding +1 to the independent variable (often denoted as n or x). If for example the shift operator is denoted with E, and the independent variable by x, then E is the operator that sends an expression u⁡x to u⁡x+1.
One can choose the name of the shift operator by assigning it to _Env_LRE_tau, and the name of the independent variable by assigning it to _Env_LRE_x. If these environment variables are assigned then they will be used to denote the shift operator and independent variable.
An operator L in C⁡x[E] can be written as L = an⁡x⁢En + ... + a0⁡x for rational functions ai⁡x in C⁡x. If the dependent variable dvar is for example u⁡x, then the equation L⁡u⁡x=0 is the recurrence relation an⁡x⁢u⁡x+n + ... + a0⁡x⁢u⁡x = 0. So a difference operator represents a linear homogeneous recurrence relation. Converting representations can be done with the RecurrenceToOperator and OperatorToRecurrence commands.
The product L := MultiplyOperators⁡L1,L2 corresponds to composition of linear difference operators. For example, if E is the shift operator and x is the independent variable, then E will send any expression u⁡x to u⁡x+1, while the operator x sends u⁡x to x⁢u⁡x. The product x⁢E sends u⁡x to x⁡E⁡u⁡x = x⁡u⁡x+1 = x⁢u⁡x+1 while the product E x sends u⁡x to E⁡x⁡u⁡x = E⁡x⁢u⁡x = x+1⁢u⁡x+1. So E x acts the same as x+1⁢E, which means that the operator E x equals the operator x+1⁢E.
If L := MultiplyOperators⁡L1,L2 and if u⁡x is a solution of L2, in other words L2⁡u⁡x=0, then L⁡u⁡x = L1⁡L2⁡u⁡x = L1⁡0 = 0. So right-factors of L are important for solving L because solutions of right-factors are also a solutions of L (this is not true for left-factors, which is why GCLD/LCRM/LeftDivision are omitted here).
The assignment L := LCLM⁡L1,L2 computes the Least Common Left Multiple of operators L1 and L2, which means that L1 and L2 are right-factors of L, and L is minimal with this property. Then the solution space of L is the sum of the solution spaces of L1 and L2. The same functionality is provided by gfun[`rec+rec`]. Difference operators are also a special case of Ore operators.
The assignment L := GCRD⁡L1,L2 computes the Greatest Common Right Divisor of L1 and L2, which means that L is a right-factor of both L1 and L2, and is maximal with this property. Then the solution space of L is the intersection of the solution spaces of L1 and L2.
One may specify more than two operators in MultiplyOperators, GCRD, or LCLM. For instance, L := LCLM⁡L1,L2,L3 is the Least Common Left Multiple of L1, L2, L3, so solutions of L are sums of solutions of L1, L2, and L3.
The assignment Q,R := RightDivision⁡L1,L2 right-divides L1 by L2. This means that L1=Q⁢L2+R where the order of R is less than that of L2. R will be 0 if and only if L2 is a right-factor of L1.
with⁡LREtools:
_Env_LRE_tau≔E;_Env_LRE_x≔x
_Env_LRE_tau≔E
_Env_LRE_x≔x
MultiplyOperators⁡E,x
x+1⁢E
L1≔E2−x
L2≔E2−E−x
L≔LCLM⁡L1,L2
L≔E4−E3+−2⁢x−3⁢E2+x+1⁢E+x2+x
L3≔MultiplyOperators⁡E−x,L1
L3≔E3−x⁢E2+−x−1⁢E+x2
GCRD⁡L,L3
E2−x
Q,R≔RightDivision⁡L,L3
Q,R≔E+x,x2−x−1⁢E2−x3+x2+x
R is not zero so L3 is not a right-factor of L
Lnew≔MultiplyOperators⁡Q,L3+R
Lnew≔E4−E3+−x2−x−2⁢E2+x+1⁢E+x2−x−1⁢E2+x2+x
expand⁡L−Lnew
0
Op≔RecurrenceToOperator⁡u⁡n+3+2⁢u⁡n+1+5⁢n⁢u⁡n=0,u⁡n
Op≔E3+2⁢E+5⁢x
rec≔OperatorToRecurrence⁡Op,u⁡n
rec≔u⁡n+3+2⁢u⁡n+1+5⁢n⁢u⁡n=0
The LREtools[MultiplyOperators], LREtools[GCRD], LREtools[LCLM], LREtools[RightDivision], LREtools[RecurrenceToOperator] and LREtools[OperatorToRecurrence] commands were introduced in Maple 2021.
For more information on Maple 2021 changes, see Updates in Maple 2021.
See Also
DEtools[mult]
gfun[`rec+rec`]
LREtools[RightFactors]
OreTools
Download Help Document