FirstIntegrals - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

ExteriorDifferentialSystems[FirstIntegrals] - find the first integrals of a Pfaffian differential system

Calling Sequences

     FirstIntegrals(Theta, options)


   Theta    - a list of 1-forms on a manifold M, the (differential) generators of a Pfaffian differential system

   options  - (optional keyword arguments) keyword arguments ansatz, unknowns, auxiliaryequations,output



 Let ℐ be a Pfaffian differential system generated by 1-forms I  = θ1, θ2, ..., θp. A real-valued function f:M ℝ is a first integral of the Pfaffian system ℐ if df   I ,that is,

  df  = a1θ1 +a2θ2  + + apθp ,  or equivalently,  df   θ1  θ2   θp = 0. 

Alternatively, if Δ is the annihilator of  I, then f  is a first integral of  if Xf = 0 for all vector fields X Δ. These conditions translate into a system of homogeneous first-order linear PDE for f. The command FirstIntegrals uses pdsolve to integrate, if possible, this PDE system and return a list of first integrals.


There is a purely differential-algebraic meaning of counting the number of functionally independent first integrals for ℐ. Let  I I1  I2   Iℓ = Iℓ+1 be the derived flag of  I. Then the terminal derived system I (the system at which the flag stabilizes) is a Frobenius system and the number of first integral integrals of I equals the rank of Iℓ .


A particular form of the integrals to be found can be specified with the keyword argument ansatz = F. When using this keyword argument, the unknown functions in the ansatz F should be explicitly declared with the keyword argument unknowns = list. Additional constraints (algebraic or differential equations or inequalities) can be imposed on the ansatz F with the auxiliaryequations keyword argument. The most general first integral with the form given by the ansatz is returned. With output = "pde", the determining PDE for the first integrals are returned.

See Also




with(DifferentialGeometry): with(ExteriorDifferentialSystems):


Example 1. 

We begin with a simple example of a Pfaffian system defined on a 5-dimensional manifold for which the first integrals can be found by inspection.


DGsetup([x, y, z, u, v], M1);

frame name: M1


Here are the 1-form generators for the differential system.

Theta := [dx, dy, dz]:


The first integrals are evidently the coordinate functions.

M1 > 





If we want first integrals which are functions only of the variables y and z , we can use the ansatz keyword as follows,

M1 > 

FirstIntegrals(Theta, ansatz = f(y, z, u, v), unknowns = [f(y, z, u, v)]);




or as follows.

M1 > 

FirstIntegrals(Theta, ansatz = f(x, y, z, u, v), unknowns = [f(x, y, z, u, v)], auxiliaryequations = {diff(f(x, y, z, u, v), x) = 0});




Example 2. 

Here is a slightly more complicated example.


M1 > 

DGsetup([x, y, z, u, v], M2);

frame name: M2



The 1-forms defining our Pfaffian system are:

M1 > 

Theta := evalDG([-v*dy + (u*y + x)*du - y*dv, u*dx - v^2*dz + x*du - y*dv, z*dx - x*dy + x*v*dz - z*y*du]);




We calculate the first integrals to be:

M1 > 

FirInt := FirstIntegrals(Theta);




We can check this result in two ways. First we check that x u+y v is a first integral by using GetComponents to show that its exterior derivative is in the span of the 1-forms Θ.

M2 > 

GetComponents(ExteriorDerivative(FirInt), Theta);




Secondly, we find that the terminal differential system in the derived flag of our differential system has rank 1.

M2 > 

DF := DerivedFlag(Theta);


M2 > 

map(nops, DF);




This shows that there is precisely one functionally independent first integral and it is one we have found.


Example 3 . 

Let ℐ  be a Pfaffian system defined by a system of ordinary differential equations. Then the first integrals of  coincide with the usual notion of first integrals for ODE -- they are functions of the independent variable, the dependent variables and the derivatives of the dependent variables, which are constant along solutions. We illustrate this fact by finding the first integrals of the scalar fourth order ODEy'''' + y  =0 which do not depend explicitly on the independent variable x and which are quadratic in the third derivatives of y.


M2 > 

DGsetup([x, y, y1, y2, y3], M3);

frame name: M3

M3 > 

Theta := evalDG([dy - y1*dx, dy1 - y2*dx, dy2- y3*dx, dy3 +y*dx]);


M3 > 

FirInt := FirstIntegrals(Theta, ansatz = F(y, y1, y2, y3), unknowns = [F(y, y1, y2, y3)], auxiliaryequations = {diff(F(y, y1, y2, y3), y3$3) = 0});


M3 > 

ExteriorDerivative(FirInt) &wedge DGzip(Theta, "wedge");




Our ansatz produces two functionally independent first integrals.

M3 > 

I1 := diff(FirInt, _C1);


M3 > 

I2 := diff(FirInt, _C2);


M3 > 

I3 := diff(FirInt, _C3);