Ore_algebra - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Algebra : Skew Polynomials : Ore Algebra : Ore_algebra/dual_algebra

Ore_algebra

  

dual_algebra

  

return the dual algebra of an Ore algebra, that is, its opposite ring

  

dual_polynomial

  

map a skew polynomial of an Ore algebra to the dual algebra

  

reverse_algebra

  

return an Ore algebra with opposite normal forms

  

reverse_polynomial

  

change normal form of a skew polynomial in an Ore algebra

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

dual_algebra(A, x_set)

dual_polynomial(p, A, x_set)

reverse_algebra(A, x_set)

reverse_polynomial(p, A, x_set)

Parameters

A

-

Ore algebra

x_set

-

subset of the (polynomial) indeterminates of the algebra, or the string fully to denote all indeterminates

p

-

skew polynomial

Description

• 

The dual_algebra(A, x_set)  function returns an Ore algebra A`*` that is isomorphic to the opposite algebra Aop of A, that is, where the product pq is defined as the value of the product pq in A.

• 

The dual_polynomial(p, A, x_set) function maps the polynomial p from A to a polynomial p`*` in A`*` so as to make the operator `*` an anti-isomorphism.  In other words, this operator follows the rule pq`*`=q`*`p`*`.

  

Both commands are useful to compute left gcds and to perform other calculations based on left skew Euclidean division (see examples below and skew_gcdex).

• 

Skew polynomials of an Ore algebra A in the indeterminates x1,`...`,xr,d1,`...`,dr (see skew_algebra) are represented under the normal form where all the x[i]s stand on the left of the monomials and all the d[i]s on the right.

• 

The reverse_polynomial(p, A, x_set) function changes the representation of a skew polynomial p in A by moving all the d[i]s in x_set to the left of monomials, and the corresponding x[i]s to the right.

• 

Correspondingly, the reverse_algebra(A, x_set) function returns an Ore algebra in which calculations with the new normal forms (returned by reverse_polynomial take place.

• 

These functions are part of the Ore_algebra package, and so can be used in the form dual_algebra(..), dual_polynomial(..), reverse_algebra(..) or reverse_polynomial(..) 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[dual_algebra](..), Ore_algebra[dual_polynomial](..), Ore_algebra[reverse_algebra](..) and Ore_algebra[reverse_polynomial](..).

Examples

withOre_algebra&colon;

Differential operators

Askew_algebradiff&equals;Dx&comma;x&colon;

Dual and reverse polynomials look similar, but the dual polynomial is a polynomial in Dx with coefficients in x while the reverse polynomial is a polynomial in x with coefficients in Dx.

dual_polynomialx&comma;A&comma;Dx&equals;reverse_polynomialx&comma;A&comma;Dx

x=x

(1)

dual_polynomialDx&comma;A&comma;Dx&equals;reverse_polynomialDx&comma;A&comma;Dx

Dx=Dx

(2)

prand_skew_polyx&comma;Dx&comma;A

p10Dx4+83x273Dx24x3Dx+97x262x

(3)

dual_polynomialp&comma;A&comma;Dx

109x262x166+83x273Dx210Dx4+4x3+332xDx

(4)

reverse_polynomialp&comma;A&comma;Dx

10Dx473Dx2166+83Dx2+109x24x3Dx+332Dx62x

(5)

Shift operators

Askew_algebrashift&equals;Sn&comma;n&colon;

Dual and reverse polynomials look similar, but the dual polynomial is a polynomial in Sn with coefficients in n while the reverse polynomial is a polynomial in n with coefficients in Sn.

dual_polynomialn&comma;A&comma;Sn&equals;reverse_polynomialn&comma;A&comma;Sn

n=n

(6)

dual_polynomialSn&comma;A&comma;Sn&equals;reverse_polynomialSn&comma;A&comma;Sn

Sn=Sn

(7)

prand_skew_polyn&comma;Sn&comma;A

p74nSn4+6n2+75nSn392n3Sn2+23n450n

(8)

dual_polynomialp&comma;A&comma;Sn

23n450n+74n296Sn4+6n2+39n171Sn3+92n3+552n21104n+736Sn2

(9)

reverse_polynomialp&comma;A&comma;Sn

296Sn4171Sn3+736Sn2+23n492n3Sn2+6Sn3+552Sn2n2+74Sn4+39Sn31104Sn250n

(10)

Eulerian operators

Askew_algebraeuler&equals;Tx&comma;x&colon;

Dual and reverse polynomials look similar, but the dual polynomial is a polynomial in Tx with coefficients in x while the reverse polynomial is a polynomial in x with coefficients in Tx.

dual_polynomialx&comma;A&comma;Tx&equals;reverse_polynomialx&comma;A&comma;Tx

x=x

(11)

dual_polynomialTx&comma;A&comma;Tx&equals;reverse_polynomialTx&comma;A&comma;Tx

Tx=Tx

(12)

prand_skew_polyx&comma;Tx&comma;A

p29x261x+10Tx28x3Tx+95x523

(13)

dual_polynomialp&comma;A&comma;Tx

95x5+24x3116x261x23+29x261x+10Tx2+8x3+116x2+122xTx

(14)

reverse_polynomialp&comma;A&comma;Tx

95x5+8Tx+24x3+29Tx2+116Tx116x2+61Tx2+122Tx61x+10Tx223

(15)

`q`-Shift operators

Askew_algebraqshift&equals;Sn&comma;qn&colon;

Only dual polynomials are available.

dual_polynomialqn&comma;A&comma;Sn

qn

(16)

reverse_polynomialqn&comma;A&comma;Sn

Error, (in `index/Ore_algebra/should_not_be_used`) reverse not available for q-calculus algebras

dual_polynomialSn&comma;A&comma;Sn

Sn

(17)

reverse_polynomialSn&comma;A&comma;Sn

Error, (in `index/Ore_algebra/should_not_be_used`) reverse not available for q-calculus algebras

prand_skew_polyqn&comma;Sn&comma;A

pSn5+77Sn4+qn95qn51Sn3+qn231qn10Sn

(18)

dual_polynomialp&comma;A&comma;Sn

Sn5+77Sn4+qn51q3+95qnSn3q6+qn231qn10qSnq3

(19)

Computation of left gcds and left lcms

The function Ore_algebra[skew_gcdex] inputs two polynomials p and q and computes a list g&comma;a&comma;b&comma;u&comma;v such that up+vq=0 and ap+bq=g.  The polynomial g is a right gcd of p and q.  Applying the dualization operator `*` yields a list g`*`&comma;a`*`&comma;b`*`&comma;u`*`&comma;v`*` such that p`*`u`*`+q`*`v`*`=0 and p`*`a`*`+q`*`b`*`=g`*`, where g`*` is a left gcd of p`*` and q`*`.  The following method to compute left gcds is based on this idea.

Adiff_algebraDx&comma;x&colon;

Define two polynomials P and Q that share a left common divisor.

prand_skew_polyx&comma;Dx&comma;degree&equals;2&comma;A

p27Dx2+30x28Dx+16x2+55x+1

(20)

qrand_skew_polyx&comma;Dx&comma;degree&equals;2&comma;A

q47Dx2+87x96Dx+72x259x15

(21)

rrand_skew_polyx&comma;Dx&comma;degree&equals;2&comma;A

r48Dx2+88x+92Dx91x2+43x90

(22)

Pskew_productr&comma;p&comma;A

P1296Dx4+936x1140Dx3+951x2+1423x3074Dx2+4138x3+470x24644x+92Dx1456x44317x31982x26803x+3434

(23)

Qskew_productr&comma;q&comma;A

Q2256Dx4+40x+8932Dx3+77x2+5297x3990Dx2+1581x3+16811x26574x+4920Dx6552x4+8465x320324x2+23105x10990

(24)

Introduce their dual polynomials and compute their right gcd in the dual algebra, corresponding the to left gcd of the original polynomials in the original algebra.

dPdual_polynomialP&comma;A&comma;fully

dP1456x44317x3+10432x27743x+6176+936x1140Dx3+951x2+1423x5882Dx2+1296Dx4+4138x3+470x2840x2754Dx

(25)

dQdual_polynomialQ&comma;A&comma;fully

dQ6552x4+8465x325067x210517x4570+40x+8932Dx3+77x2+5297x4110Dx22256Dx4+1581x3+16811x26266x5674Dx

(26)

dAdual_algebraA&comma;fully&colon;

dGCDskew_gcdexdP&comma;dQ&comma;Dx&comma;dA

dGCD8873046528Dx2x416267251968Dxx516821817376x6+24619089552Dx2x3+62141670024Dxx4+54622461457x5+32688986544Dx2x2+12743220356x3Dx+39548558994x4+92684791104Dx2x+107268226148Dxx2+147456828087x335565352704Dx2242848996240Dxx149094065426x2+68166926016Dx+35722494760x1481889696&comma;142752162074251x8632772Dx+2115893x218025252x&comma;2097234x23015708x+70718081191591x4959252Dx&comma;184855136Dx2x4+342178656Dxx5283182336x6+512897699Dx2x3571829931Dxx4+1017767816x5+681020553Dx2x23047653889x3Dx+800590201x4+1930933148Dx2x3426608115Dxx2+2633091576x3740944848Dx21210456350Dxx9729185864x2+3444352412Dx+3624982240x5687084608&comma;106193376Dx2x4+117992640Dxx5+62929408x6+294643359Dx2x3437507974Dxx4+41716368x5+391224573Dx2x2553911398x3Dx710110491x4+1109259468Dx2x+57133929Dxx22374836150x3425649168Dx2+2405735818Dxx3008916049x2+667845516Dx+3496133096x+973816096

(27)

The dual of a dual polynomial is the polynomial.

dual_polynomialdGCD1&comma;dA&comma;fully

16821817376x6+54622461457x541787700846x4+396023508183x3217340962694x2+397973484368x178952912848+8873046528x4+24619089552x3+32688986544x2+92684791104x35565352704Dx2+16267251968x5+62141670024x458241151868x3+254982763460x2112093050064x+253536508224Dx

(28)

This is the left gcd, up to renormalization (by multiplication by a rational function on the right).

lgcdskew_product&comma;1lcoeff&comma;Dx&comma;A

lgcd91x24843x48+158+Dx2+11x62312Dx

(29)

This is also the built-in left factor r, up to renormalization (by multiplication by a rational function on the right).

Anormalizerrlcoeffr&comma;Dx

91x24843x48+158+Dx2+11x62312Dx

(30)

This calculation is that performed by Ore_algebra[skew_gcdex] with the options left and left_monic.

skew_gcdexP&comma;Q&comma;Dx&comma;A&comma;left_monic1

91x24843x48+158+Dx2+11x62312Dx

(31)

See Also

Ore_algebra

Ore_algebra/skew_algebra

Ore_algebra/skew_gcdex