==================================================================== Univariate Skew Polynomial ==================================================================== Skew or Ore polynomial rings provide a unified framework to compute with differential and difference equations. In the following, let A be an integral domain, equipped with two endomorphisms ``sigma`` and ``delta where``: :: \sigma: A -> A is an injective ring endomorphism \delta: A -> A, the pseudo-derivation with respect to \sigma, is an additive endomorphism with \delta(ab) = \sigma(a)\delta(b) + \delta(a)b for all a,b in A Note that in the domains and categories below, these properties are not checked. The skew polynomial ring [\Delta;\sigma,\delta] is the ring of polynomials in \Delta with coefficients in A, with the usual addition, while the product is given by :: \Delta a = \sigma(a)\Delta + \delta(a) for a in A The two most important examples of skew polynomial rings are: :: K(x)[D,1,\delta], where 1 is the identity on K and \delta is the usual derviative, is the ring of differential polynomials K [E,n,\mapsto n+1,0] is the ring of linear recurrence operators n with polynomial coefficients For **example**, The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified framework for polynomial rings in a non-central indeterminate over some coefficient ring R. The commutation relations between the indeterminate x and the coefficient t is given by :: x r = \sigma(r) x + \delta(r) where \sigma is a ring endomorphism of R and \delta is a \sigma-derivation of R which is an additive map from R to R such that :: \delta(rs) = \sigma(r) \delta(s) + \delta(r) s In case \sigma is the identity map on R, a \sigma-derivation of R is just called a derivation. Here are some examples We start with a linear ordinary differential operator. First, we define the coefficient ring to be expressions in one variable x with fractional coefficients: :: F:=EXPR(FRAC(INT)) Define Dx to be a derivative d/dx: :: Dx:F->F:=f+->D(f,['x]) Define a skew polynomial ring over F with identity endomorphism as \sigma and derivation d/dx as \delta: :: D0:=OREUP('d,F,1,Dx) u:D0:=(operator 'u)(x) d:D0:='d a:D0:=u^3*d^3+u^2*d^2+u*d+1 3 3 2 2 u(x) d + u(x) d + u(x)d + 1 b:D0:=(u+1)*d^2+2*d 2 (u(x) + 1)d + 2d r:=rightDivide(a,b) 3 , 3 2 3 - u(x) u (x) - u(x) + u(x) u(x) [quotient= -------- d + ----------------------------, u(x) + 1 2 u(x) + 2u(x) + 1 3 , 3 2u(x) u (x) + 3u(x) + u(x) remainder= --------------------------- d + 1] 2 u(x) + 2u(x) + 1 r.quotient 3 , 3 2 3 - u(x) u (x) - u(x) + u(x) u(x) -------- d + ---------------------------- u(x) + 1 2 u(x) + 2u(x) + 1 r.remainder 3 , 3 2u(x) u (x) + 3u(x) + u(x) --------------------------- d + 1 2 u(x) + 2u(x) + 1 )clear all As a second example, we consider the so-called Weyl algebra. Define the coefficient ring to be an ordinary polynomial over integers in one variable t :: R:=UP('t,INT) Define a skew polynomial ring over R with identity map as \sigma and derivation d/dt as \delta. The resulting algebra is then called a Weyl algebra. This is a simple ring over a division ring that is non-commutative, similar to the ring of matrices. :: W:=OREUP('x,R,1,D) t:W:='t x:W:='x Let :: a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3 4 3 2 3 (t - 1)x + (t + 3t + 1)x + 2t x + t b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2 4 2 3 2 2 (6t + 2t )x + 3t x Then :: a*b 5 4 3 2 7 4 3 2 6 (6t - 6t + 2t - 2t )x + (96t - 93t + 13t - 16t)x + 7 5 4 3 2 5 (6t + 20t + 6t + 438t - 406t - 24)x + 6 5 4 3 2 4 (48t + 15t + 152t + 61t + 603t - 532t - 36)x + 7 5 4 3 2 3 (6t + 74t + 60t + 226t + 116t + 168t - 140)x + 5 3 2 2 (3t + 6t + 12t + 18t + 6)x a^3 3 2 12 5 4 3 2 10 (t - 3t + 3t - 1)x + (3t - 6t + 12t - 15t + 3t + 3)x + 3 2 9 7 6 5 4 3 2 8 (6t - 12t + 6t)x + (3t - 3t + 21t - 18t + 24t - 9t - 15t - 3)x + 5 4 3 2 7 (12t - 12t + 36t - 24t - 12t)x + 9 7 6 5 4 3 2 6 (t + 15t - 3t + 45t + 6t + 36t + 15t + 9t + 1)x + 7 5 3 2 5 (6t + 48t + 54t + 36t + 6t)x + 9 7 6 5 4 3 2 4 (3t + 21t + 3t + 39t + 18t + 39t + 12t )x + 7 5 4 3 3 9 7 6 5 2 7 9 (12t + 36t + 12t + 8t )x + (3t + 9t + 3t + 12t )x + 6t x + t )clear all As a third example, we construct a difference operator algebra over the ring of EXPR(INT) by using an automorphism S defined by a "shift" operation S:EXPR(INT) -> EXPR(INT) :: s(e)(n) = e(n+1) and an S-derivation defined by DF:EXPR(INT) -> EXPR(INT) as :: DF(e)(n) = e(n+1)-e(n) Define S to be a "shift" operator, which acts on expressions with the discrete variable n: :: S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1]) Define DF to be a "difference" operator, which acts on expressions with a discrete variable n: :: DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e Then define the difference operator algebra D0: :: D0:=OREUP('D,EXPR(INT),morphism S,DF) u:=(operator 'u)[n] L:D0:='D+u D + u(n) L^2 2 2 D + 2u(n)D + u(n) )clear all As a fourth example, we construct a skew polynomial ring by using an inner derivation \delta induced by a fixed y in R: :: \delta(r) = yr - ry First we should expose the constructor SquareMatrix so it is visible in the interpreter: :: )set expose add constructor SquareMatrix Define R to be the square matrix with integer entries: :: R:=SQMATRIX(2,INT) y:R:=matrix [[1,1],[0,1]] +1 1+ | | +0 1+ Define the inner derivative \delta: :: delta:R->R:=r+->y*r-r*y Define S to be a skew polynomial determined by \sigma = 1 and \delta as an inner derivative: :: S:=OREUP('x,R,1,delta) x:S:='x a:S:=matrix [[2,3],[1,1]] +2 3+ | | +1 1+ x^2*a +2 3+ 2 +2 - 2+ +0 - 2+ | |x + | |x + | | +1 1+ +0 - 2+ +0 0 + See Also: * )show UnivariateSkewPolynomial * )show UnivariateSkewPolynomialCategory * )show SquareMatrix