Janet

 

The Maple package Janet implements the involutive basis technique of V. P. Gerdt and Y. A. Blinkov for computing Janet bases and Janet-like Gröbner bases for linear systems of partial differential equations. It works with left modules over differential algebras defined over differential fields of characteristic zero which exist in Maple.

Janet also provides a number of tools for dealing with differential expressions and differential operators. A generic linearization for a non-linear system of partial differential equations can be computed. Some procedures translate differential expressions into jet notation and vice versa. For the Weyl algebra representing ordinary differential operators in characteristic zero whose coefficients are rational functions, an elementary divisor algorithm [Rehm 2001/2002], [Cohn 1985] is implemented to compute the Jacobson normal form of a matrix with entries in this Weyl algebra.

Among the orderings for differential monomials which are available in Janet are the degree reverse lexicographical one, the pure lexicographical one, block orderings and their extensions to the case of more than one dependent variable which correspond to "term over position" and "position over term" orderings in the polynomial case. Four involutive criteria are implemented to avoid unnecessary reductions during involutive basis computations.

For more details, cf. [Blinkov et al. 2003] and [Robertz 2007].

Following is a table of the main commands of Janet.

Main commands of Janet

Basic commands:
JanetBasis compute the minimal Janet basis for a linear system of partial differential equations
DiffGroebnerBasis compute the minimal Groebner basis for a linear system of partial differential equations
InvReduce reduce (linear) differential expressions w.r.t. a Janet basis
PrincDeriv return the list of principal derivatives of a linear system of PDEs
ParamDeriv return the list of parametric derivatives of a linear system of PDEs
HilbertSeries generating function for the number of parametric derivatives of given order
Denominators return the functions by which the involutive basis algorithm had to divide
ZeroSets return the functions by which the involutive basis algorithm had to divide, the leading coefficients of the Janet basis, and their zeros
SolSeries (truncated) formal power series solutions for a linear system of PDEs
PolySol polynomial solutions for a linear system of PDEs


Commands for special applications:
CompCond compatibility conditions for solvability of an affine system of PDEs
CompCondBasis compute the minimal Janet basis for the compatibility conditions of an affine system of PDEs
Resolution iterated computation of compatibility conditions
SyzOp return compatibility conditions as a differential operator


Various invariants derivable from HilbertSeries:
CartanCharacter Cartan characters for a linear system of PDEs
HilbertPolynomial graded Hilbert polynomial for the parametric derivatives
HilbertFunction graded Hilbert function for the parametric derivatives
HP filtered Hilbert polynomial for the parametric derivatives
HF filtered Hilbert function for the parametric derivatives
IndexRegularity index of regularity for the parametric derivatives
EqBasis generalized Hilbert series of the module of equations
EqHilbertSeries Hilbert series of the module of equations
EqHilbertPolynomial graded Hilbert polynomial of the module of equations
EqHilbertFunction graded Hilbert function of the module of equations
EqHP filtered Hilbert polynomial of the module of equations
EqHF filtered Hilbert function of the module of equations


Translation between polynomials and differential expressions:
Diff2Pol translate a linear differential expression into a polynomial in the partial differential operators
Pol2Diff translate a polynomial into a linear differential expression


Commands dealing with differential operators:
Diff2Op translate linear differential expression into a differential operator in matrix form
Pol2Op translate a polynomial in the partial differential operators into a differential operator in matrix form
JAdjoint compute the adjoint differential operator
CmpOp compose two differential operators in matrix form
AppOp apply a differential operator in matrix form to a vector of functions
ElementaryDivisors compute elementary divisor form (Jacobson normal form) of a matrix of ordinary differential operators


Commands involving jet notation:
Diff2Ind translate differential expression into jet notation
Ind2Diff translate jet expression into differential expression
Pol2Ind translate polynomial (in partial differential operators) into jet expression


Commands for control theory:
Linearize generic linearization for a non-linear system of partial differential equations
FlatOutput if possible, compute a flat output for a linear partial differential control system
Parametrization if possible, compute a linear differential operator whose image equals the kernel of a given linear differential operator
Torsion compute a generating set for the autonomous elements of a linear partial differential control system and a generating set of equations they satisfy


Auxiliary commands:
JanetOptions set up options for the current Janet session
LeadingDeriv return the leading differential monomial of a given linear differential expression
AssertJanetBasis assure the system that given (lists of) polynomials form a Janet basis
JanetStats display statistical information about the last involutive basis computation
 

Download Maple package Janet

Janet is available for Maple 9 and Maple 10. (For other Maple versions, please contact the authors.)

  • Janet for Maple 9: Janet.ind, Janet.lib, Janet.hdb or Janet.ind.gz, Janet.lib.gz, Janet.hdb.gz or Janet.ind.zip, Janet.lib.zip, Janet.hdb.zip
  • Janet for Maple 10: Janet.ind, Janet.lib, Janet.hdb or Janet.ind.gz, Janet.lib.gz, Janet.hdb.gz or Janet.ind.zip, Janet.lib.zip, Janet.hdb.zip
  • All Janet help pages in one ps / pdf file: janet_manual.ps, janet_manual.pdf

After downloading the Maple package, you can follow the installation guide below.

After installing Janet, it would be helpful if you could send us a short e-mail which explains for what purpose Janet is beneficial for you and which Maple version you use.

If you encounter any problem with Janet, don't hesitate to contact us.

Installing Janet

  1. Copy the Janet library files "Janet.ind", "Janet.lib" and the Janet help data base "Janet.hdb" for your Maple version (see download) into a directory called "Janet".
  2. Type
    libname;
    in Maple.
  3. Write
    libname := "the global path of the directory Janet", the result of step 2:
  4. Try
    with(Janet);
    Moreover, help pages are available for the functions of Janet, see ?Janet.
    If you encounter a problem, then most probably the definition of libname in step 3 is wrong in the sense that its value does not point to the correct directory where your library files reside.

A reasonable way to check your installation is to run some examples from the Janet help pages.
If you still have problems concerning the installation of Janet, please contact us.