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 :
- 4 distinct procedures for computing rational first
integrals of planar polynomial vector fields,
- 1 procedure for simplifying the expression of a rational first integral,
- 1 procedure
for computing Darboux polynomials of planar polynomial vector fields
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:
- Copy the previous .m file in a directory called
"RationalFirstIntegrals"
- Add this directory to your libname,
for example by performing the two following steps:
- Open Maple and type
libname;
- Then, type
libname := " the global path of the directory
RationalFirstIntegrals", the result
of the previous step;
- 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.
- 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".
- 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.
- 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".
- 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.
- 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.
- 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.