check for the existence of a primitive element, and perform accurate integration
IntegrateSols(L, x, case)
an Ore operator
the name of the independent variable
a parameter indicating the case of the equation ('differential' or 'shift')
The LinearOperators[IntegrateSols] function performs "accurate integration". That is, it solves the following problem. Let y satisfy L(y)=0 and g satisfy delta(g)=y, where delta means the usual derivative in the differential case and the first difference in the shift case. The routine builds an annihilator S 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 NULL.
An Ore operator is a structure that consists of the keyword OrePoly with a sequence of coefficients starting with the one of degree zero. The coefficients must be rational functions in x. For example, in the differential case with the differential operator D, OrePoly(2/x, x, x+1, 1) represents the operator 2x+x⁢D+x+1⁢D2+D3.
There are routines in the package that convert between Ore operators and the corresponding Maple expressions. See LinearOperators[converters].
expr := sqrt(x)*log(x)^2;
An annihilator for expr is
L := FactoredAnnihilator(expr,x,'differential');
which can be written in non-factored form as
L := FactoredOrePolyToOrePoly(L,x,'differential');
Abramov, S. A., and van Hoeij, M. "Integration of Solutions of Linear Functional Equations." Integral Transforms and Special Functions. (1999): 3-12.
Download Help Document
What kind of issue would you like to report? (Optional)