OreTools

 construct the adjoint of a given Ore polynomial ring
 compute the adjoint Ore polynomial in a given Ore ring

Parameters

 Poly - Ore polynomial; to define an Ore polynomial, use the OrePoly structure. A - Ore ring; to define an Ore ring, use the SetOreRing function.

Description

 • The AdjointOrePoly(Poly, A) calling sequence computes the adjoint Ore polynomial of the polynomial Poly in A.
 • An Ore polynomial ring is defined vi SetOreRing. For a description of the adjoint of an Ore polynomial ring, see OreAlgebra.

Examples

 > $\mathrm{with}\left(\mathrm{OreTools}\right):$
 > $\mathrm{with}\left(\mathrm{OreTools}\left[\mathrm{Properties}\right]\right):$

Define the shift polynomial ring.

 > $A≔\mathrm{SetOreRing}\left(n,'\mathrm{shift}'\right)$
 ${A}{≔}{\mathrm{UnivariateOreRing}}{}\left({n}{,}{\mathrm{shift}}\right)$ (1)

Construct the adjoint Ore polynomial ring B of A.

 > $B≔\mathrm{AdjointRing}\left(A\right)$
 ${B}{≔}{\mathrm{Adj}}{}\left({\mathrm{UnivariateOreRing}}{}\left({n}{,}{\mathrm{shift}}\right)\right)$ (2)

Construct the adjoint Ore polynomial ring C of B. The ring C must be the same as A.

 > $C≔\mathrm{AdjointRing}\left(B\right)$
 ${C}{≔}{\mathrm{UnivariateOreRing}}{}\left({n}{,}{\mathrm{shift}}\right)$ (3)
 > $\mathrm{GetSigma}\left(A\right)\left(s\left(n\right),n\right)=\mathrm{GetSigma}\left(C\right)\left(s\left(n\right),n\right)$
 ${s}{}\left({n}{+}{1}\right){=}{s}{}\left({n}{+}{1}\right)$ (4)
 > $\mathrm{GetSigmaInverse}\left(A\right)\left(s\left(n\right),n\right)=\mathrm{GetSigmaInverse}\left(C\right)\left(s\left(n\right),n\right)$
 ${s}{}\left({n}{-}{1}\right){=}{s}{}\left({n}{-}{1}\right)$ (5)
 > $\mathrm{Getdelta}\left(A\right)\left(s\left(n\right),n\right)=\mathrm{Getdelta}\left(C\right)\left(s\left(n\right),n\right)$
 ${0}{=}{0}$ (6)

Define two Ore polynomials P1 and P2 in A.

 > $\mathrm{P1}≔\mathrm{OrePoly}\left(n+1,n\right);$$\mathrm{P2}≔\mathrm{OrePoly}\left(1,n+1\right)$
 ${\mathrm{P1}}{≔}{\mathrm{OrePoly}}{}\left({n}{+}{1}{,}{n}\right)$
 ${\mathrm{P2}}{≔}{\mathrm{OrePoly}}{}\left({1}{,}{n}{+}{1}\right)$ (7)

Compute the adjoint operators of P1 and P2 in A.

 > $\mathrm{adjP1}≔\mathrm{AdjointOrePoly}\left(\mathrm{P1},A\right)$
 ${\mathrm{adjP1}}{≔}{\mathrm{OrePoly}}{}\left({n}{+}{1}{,}{n}{-}{1}\right)$ (8)
 > $\mathrm{adjP2}≔\mathrm{AdjointOrePoly}\left(\mathrm{P2},A\right)$
 ${\mathrm{adjP2}}{≔}{\mathrm{OrePoly}}{}\left({1}{,}{n}\right)$ (9)

 > $\mathrm{Multiply}\left(\mathrm{adjP1},\mathrm{adjP2},B\right)$
 ${\mathrm{OrePoly}}{}\left({n}{+}{1}{,}{{n}}^{{2}}{+}{2}{}{n}{-}{1}{,}{\left({n}{-}{1}\right)}^{{2}}\right)$ (10)