OreTools[SetOreRing] - define an Ore polynomial ring
|
Calling Sequence
|
|
SetOreRing(var, 'shift')
SetOreRing(, 'qshift')
SetOreRing(var, 'differential')
SetOreRing(var, algebra_name, 'sigma' = proc1, 'sigma_inverse' = proc2, 'delta' = proc3, 'theta1' = expr)
|
|
Parameters
|
|
var
|
-
|
name; variable
|
q
|
-
|
name; qshift parameter
|
algebra_name
|
-
|
name; algebra to be defined
|
proc1, proc2, proc3
|
-
|
procedures; define algebra
|
expr
|
-
|
Maple expression
|
|
|
|
|
Description
|
|
•
|
The SetOreRing(var, 'shift') calling sequence defines a shift algebra.
|
•
|
The SetOreRing([var, q], 'qshift') calling sequence defines a qshift algebra.
|
•
|
The SetOreRing(var, 'differential') calling sequence defines a differential algebra.
|
•
|
The shift, qshift, and differential algebras are pre-defined. You can use the SetOreRing command to define other Ore polynomial rings. You must specify procedures to compute sigma, sigma_inverse, and delta, and an expression to define theta(1).
|
|
For a brief review of pseudo-linear algebra (also known as Ore algebra), see OreAlgebra.
|
|
|
Examples
|
|
>
|
|
Define the shift algebra.
>
|
|
| (1) |
Define the difference algebra.
>
|
B := SetOreRing(n, 'difference',
'sigma' = proc(p, x) eval(p, x=x+1) end,
'sigma_inverse' = proc(p, x) eval(p, x=x-1) end,
'delta' = proc(p, x) eval(p, x=x+1) - p end,
'theta1' = 0);
|
| (2) |
|
|