- Usage:
`RatSols I, RatSols(I,f), RatSols(I,f,w), RatSols(I,ff), RatSols(I,ff,w)`

- Inputs:
`I`, an ideal, holonomic ideal in the Weyl algebra*D*`f`, a ring element, a polynomial`ff`, a list, a list of polynomials`w`, a list, a weight vector

- Outputs:
- a list, a basis of the rational solutions of
*I*with poles along*f*or along the polynomials in`ff`using*w*for Groebner deformations

- a list, a basis of the rational solutions of

The rational solutions of a holonomic system form a finite-dimensional vector space. The only possibilities for the poles of a rational solution are the codimension one components of the singular locus. An algorithm to compute rational solutions is based on Groebner deformations and works for ideals *I* of PDE's -- see the paper 'Polynomial and rational solutions of a holonomic system' by Oaku-Takayama-Tsai (2000).

i1 : W = QQ[x, D, WeylAlgebra=>{x=>D}] o1 = W o1 : PolynomialRing |

i2 : I = ideal((x+1)*D+5) o2 = ideal(x*D + D + 5) o2 : Ideal of W |

i3 : RatSols I -1 o3 = {-------------------------------} 5 4 3 2 x + 5x + 10x + 10x + 5x + 1 o3 : List |

The most efficient method to find rational solutions is to find the singular locus, then try to find its irreducible factors. With these, call RatSols(I, ff, w), where w should be generic enough so that the PolySols routine will not complain of a non-generic weight vector.

- RatSols(Ideal)
- RatSols(Ideal,List)
- RatSols(Ideal,List,List)
- RatSols(Ideal,RingElement)
- RatSols(Ideal,RingElement,List)