Given a differential operator L, a basis of the nullspace of rational
solutions of L(y)=0 in F is returned as a sequence of basis elements.
This function only works for operators whose derivation
is defined by a differential.
The algorithm that is used is described in Section 4.1 of [vdPS03].
Given a differential operator L with coefficients in F and an element g of F,
return true if there is an element y∈F satisfying L(y)=g.
If such a solution exists a particular solution in F and the
basis of the nullspace of rational solutions in F are also returned.
If there is no solution, only false is returned.
This function only works for operators whose derivation
is defined by a differential.
> F<z> := RationalDifferentialField(Rationals());
> R<D> := DifferentialOperatorRing(F);
> H := (z^2-z)*D^2+(3*z-6)*D+1;
> RationalSolutions(H);
[ (z^4 - 4*z^3 + 6*z^2 - 4*z + 1)/z^5 ]
> L := D^2-6/z^2;
> RationalSolutions(L);
[ z^3, 1/z^2 ]
> Apply(L, z^3+1/z^2);
0
> HasRationalSolutions(L, 6/z);
true -z [ z^3, 1/z^2 ]
> L(-z);
6/z
V2.28, 13 July 2023