RationalFirstIntegrals

   A Maple package for computing rational first integrals of planar polynomial vector fields

   
Authors: A. Bostan, G. Chèze, T. Cluzeau, and J.-A. Weil
   

I - Content

We consider a planar polynomial vector field

    (S):  x' = A(x,y),
            y' = B(x,y),

attached to a derivation D:=A(x,y) * d/dx + B(x,y)*d/dy.
A rational first integral of (S) is a non-constant rational function F(x,y) such that D(F)=0. 
Moreover a polynomial M(x,y) is a Darboux polynomial for D if there exists a polynomial L(x,y) such that D(M)=L*M.

This web page is dedicated to a Maple package called RationalFirstIntegrals which contains implementations of the algorithms developped in the submitted paper
Efficient algorithms for computing rational first integrals and Darboux polynomials of planar polynomial vector fields
by A. Bostan, G. Chèze, T. Cluzeau, and J.-A. Weil.

This package mainly contains :
We illustrate how to use the different procedures in some examples in Section IV below.


II - Download and installation

Our package is available for download: RationalFirstIntegrals.m

To install it, you must proceed as follows:
  1. Copy the previous .m file in a directory called "RationalFirstIntegrals"
  2. Add this directory to your libname, for example by performing the two following steps:

  3. Type

    with(RationalFirstIntegrals);


    You must get the list of the functions contained in the package. If you do obtain an error message, then you have probably done something wrong in Step 2.
If you do not manage to install the package, then contact us.

Note that the procedure HeuristicRationalFirstIntegral requires the installation of the package gfun.

III - List of main procedures

Here are the main procedures of our package. See the next section for examples files illustrating how to use them.
  1. GenericRationalFirstIntegral

    Input:  the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  a number pt such that A(pt,y) <> 0,
    a bound N, and a list param of parameters if the cofficients of A and B contain parameters.
         
    Output: A rational first integral of (S) of degree <= N or "None".

  2. ProbabilisticRationalFirstIntegral

    Input: the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  a number pt such that A(pt,y) <> 0,
    a list CI containing two rational numbers c_1 and c_2, a bound N, and a list param of parameters if the cofficients of A and B contain parameters.
          
    Output: A rational first integral of (S) of degree <= N, "None" or "I don't know".

    Note that we get an error message if one of the rational numbers c_i (i=1,2) of CI satisfies A(pt,c_i) = 0 in which case we need to run the procedure with distinct c_i's.

  3. DeterministicRationalFirstIntegral

    Input: the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  a number pt such that A(pt,y) <> 0,
    a list S containing two rational numbers a and b such that a < b which encode the set of rational numbers r which satisfy a < r <b,
    a bound N, and a list param of parameters if the cofficients of A and B contain parameters.
          
    Output: A rational first integral of (S) of degree <= N or "None".

  4. HeuristicRationalFirstIntegral (requires the gfun package)

    Input: the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  a number pt such that A(pt,y) <> 0,
    a list CI containing two rational numbers c_1 and c_2, and a bound N >= 3.

    Output: A rational first integral of (S) of degree <= N or "Fails".

    Note that we get an error message if one of the rational numbers c_i (i=1,2) of CI satisfies A(pt,c_i) = 0 in which case we need to run the procedure with distinct c_i's.

  5. SimplifyRFI

    Input: the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  and a rational function F(x,y) which is a rational first integral
    of a planar polynomial vector field.

    Output:
    A rational function G(x,y) which is a rational first integral of the same planar polynomial vector field but written in a more "compact" form or F(x,y) if no more
    compact form is found.

  6. DarbouxPolynomials

    Input: the polynomials A and B (in the variables x and y) defining the planar polynomial vector field,  a number pt such that A(pt,y) <> 0,
    and a bound N >= 3.

    Output: a list containng the set of all irreducible Darboux polynomials for D of degree <= N, "Infinite number of Darboux polynomials" or "None" .


IV - Example files


V - Bug reports

You can now run your own examples.
If you have any problem with the package, find a bug or want to ask questions, then contact us.
In case of an error in RationalFirstIntegrals, please attach to your e-mail a Maple worksheet which documents the error on a particular example.