OreTools[MathOperations]
HilbertTwistReduction
return isomorphic images of Ore polynomials under the Hilbert twist reduction
InverseOfHilbertTwistReduction
return pre-images of Ore polynomials under the HilbertTwistReduction
AccurateIntegration
check for the existence of a primitive element, and perform accurate integration
Calling Sequence
Parameters
Description
Examples
References
HilbertTwistReduction(P, A, 'B')
InverseOfHilbertTwistReduction(P, A)
AccurateIntegration(L, A)
Note: An Ore polynomial ring B is of Hilbert's twist type if its (pseudo) derivation maps everything to zero. For an Ore polynomial ring A with nontrivial automorphism, there is a ring isomorphism from A onto the ring B of Hilbert's twist type whose automorphism is the same as the A's. The isomorphism is called the Hilbert twist reduction.
P
-
Ore polynomial or a list of Ore polynomials; to define an Ore polynomial, use the OrePoly structure.
L
Ore polynomial.
A
Ore ring with nontrivial automorphism; to define an Ore algebra, use the SetOreRing function.
B
(optional) unevaluated name.
The HilbertTwistReduction(P, A, B) calling sequence returns the image of P under the Hilbert twist reduction. If the (optional) third argument B is present, it is assigned to the Ore ring whose automorphism is the same as the A's and whose (pseudo) derivation sends everything to zero.
The InverseOfHilbertTwistReduction(P, A) calling sequence returns the pre-image of P under the Hilbert twist reduction. Note that A is the source ring of the Hilbert twist reduction.
Let A be the shift, q-shift, or differential algebra. The AccurateIntegration(L, A) calling sequence performs accurate integration, which solves the following problem: Let y satisfy L(y)=0 and g satisfy lambda(g)=y, where lambda means the usual derivative in the differential case, the difference operator in the shift case, and the q-difference operator in the q-shift case. The function builds an annihilator S (represented as an OrePoly structure) for g of the same degree as that of L, and an operator K such that g=K(y) if both exist. Otherwise, it returns Lλ.
withOreTools:
withOreToolsMathOperations:
withOreToolsProperties:
Define an Ore ring.
A := 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);
A≔UnivariateOreRingn,difference
P1≔OrePolyn,n−1
Q1≔HilbertTwistReductionP1,A,B
Q1≔OrePoly1,n−1
v≔GetVariableB
v≔n
GetSigmaBsv,v
sn+1
GetdeltaBsv
0
R1≔InverseOfHilbertTwistReductionQ1,A
R1≔OrePolyn,n−1
Examples of AccurateIntegration:
A≔SetOreRingx,differential
A≔UnivariateOreRingx,differential
L≔OrePoly23x+1x24+27x,−2x4+27x,1
AccurateIntegrationL,A
OrePoly1,−162x2−9x−2180x,3x−14+27x180,OrePoly162x2−9x−2180x,−3x−14+27x180
A≔SetOreRingn,shift
A≔UnivariateOreRingn,shift
L≔OrePoly1,−2,−2,1
OrePoly−12,1,1,−12,OrePoly−32,−12,12
Abramov, S.A., and van Hoeij, M. "Integration of Solutions of Linear Functional Equations." Integral Transformations and Special Functions. Vol. 8 No. 1-2. (1999): 3-12.
See Also
OreTools
OreTools/OreAlgebra
OreTools/OrePoly
OreTools[Properties]
OreTools[SetOreRing]
Download Help Document