ExteriorDifferentialSystems[FirstIntegrals] - find the first integrals of a Pfaffian differential system
Calling Sequences
FirstIntegrals(Theta, options)
Parameters
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, auxiliaryequationsoutput
|
Description
|
|
•
|
Let be a Pfaffian differential system generated by 1-forms A real-valued function is a first integral of the Pfaffian system if that is,
|
, or equivalently,
Alternatively, if is the annihilator of , then is a first integral of if for all vector fields . These conditions translate into a system of homogeneous first-order linear PDE for . 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 be the derived flag of . Then the terminal derived system (the system at which the flag stabilizes) is a Frobenius system and the number of first integral integrals of equals the rank of .
|
•
|
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.
|
|
|
|
|
|
Examples
>
|
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);
|
Here are the 1-form generators for the differential system.
The first integrals are evidently the coordinate functions.
M1 >
|
FirstIntegrals(Theta);
|
If we want first integrals which are functions only of the variables and , 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);
|
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]);
|
| (6) |
We calculate the first integrals to be:
M1 >
|
FirInt := FirstIntegrals(Theta);
|
We can check this result in two ways. First we check that 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);
|
| (8) |
Secondly, we find that the terminal differential system in the derived flag of our differential system has rank 1.
M2 >
|
DF := DerivedFlag(Theta);
|
| (9) |
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 ODE which do not depend explicitly on the independent variable and which are quadratic in the third derivatives of
M2 >
|
DGsetup([x, y, y1, y2, y3], M3);
|
M3 >
|
Theta := evalDG([dy - y1*dx, dy1 - y2*dx, dy2- y3*dx, dy3 +y*dx]);
|
| (12) |
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});
|
| (13) |
M3 >
|
ExteriorDerivative(FirInt) &wedge DGzip(Theta, "wedge");
|
| (14) |
Our ansatz produces two functionally independent first integrals.
M3 >
|
I1 := diff(FirInt, _C1);
|
M3 >
|
I2 := diff(FirInt, _C2);
|
M3 >
|
I3 := diff(FirInt, _C3);
|
|