JetCalculus[HorizontalHomotopy] - apply the horizontal homotopy operator to a bi-form on a jet space
Calling Sequences
HorizontalHomotopy(, options)
Parameters
- a differential bi-form on the jet space
options - any of the optional arguments used in the commands DeRhamHomotopy
|
Description
|
|
•
|
Let be a fiber bundle, with base dimension and fiber dimension and let be the infinite jet bundle of . The space of -forms decomposes into a direct sum , where is the space of bi-forms of horizontal degree and vertical degree The horizontal exterior derivative is a mapping with the following properties. A form is called closed if and exact if there is a bi-form such that . Since every exact bi-form is closed.
|
[i] If , then every closed bi-form is exact,
[ii] If and and where is the Euler-Lagrange operator, then .
[iii] If and and where is the integration by parts operator, then .
There are a number of algorithms for finding the bi-form One approach is to use the horizontal homotopy operators . Similar to the DeRham homotopy operator, these homotopy operators satisfy the identities
[i] if
[ii] if and and
[iii] if and and
•
|
If is a bi-form of degree with then HorizontalHomotopy() returns a bi-form of degree (.
|
•
|
For the operators are total differential operators and therefore, unlike the usual homotopy operators for the de Rham complex or the vertical homotopy operators for bi-forms on jet spaces, do not involve any quadratures. For the horizontal homotopy does involve quadratures and the optional arguments used in the commands DeRhamHomotopy or VerticalHomotopy can be invoked.
|
•
|
The command HorizontalHomotopy is part of the DifferentialGeometry:-JetCalculus package. It can be used in the form HorizontalHomotopy(...) only after executing the commands with(DifferentialGeometry) and with(JetCalculus), but can always be used by executing DifferentialGeometry:-JetCalculus:-HorizontalHomotopy(...).
|
|
|
Details
|
|
Here are the explicit formulas for the horizontal homotopy operators. Let , ..., be a local system of jet coordinates and let . Let be a -th order bi-form with and let be the higher (interior product) Euler operators. Let be the multi-total derivative operator and let . Then
.
For the horizontal homotopy operator is defined in terms of the vertical exterior derivative and the vertical homotopy operator by
For further information, see:
[i] Ian M. Anderson, Notes on the Variational Bicomplex.
[ii] Niky. Kamran, Selected Topics in the Geometrical Study of Differential Equations, CBMS Lecture Series, 2002.
[iii] Peter J. Olver, Applications of Lie Groups to Differential Equations, Chapter 5.
|
|
Examples
|
|
>
|
with(DifferentialGeometry): with(JetCalculus):
|
Example 1.
Create the jet space for the bundle with coordinates
>
|
DGsetup([x], [u], E, 3):
|
Show that the EulerLagrange form for is 0 so that is exact.
E >
|
omega1 := evalDG((u[1,1,1]*u[1] + x*u[1,1,1]*u[1,1] + 2*u[1,1]*u[1,1,1] + x*u[1]*u[1,1,1,1])*Dx);
|
| (3.1) |
E >
|
EulerLagrange(omega1);
|
Apply the horizontal homotopy operator to
E >
|
eta1 := HorizontalHomotopy(omega1);
|
| (3.3) |
Check that the horizontal exterior derivative of gives .
E >
|
omega1 &minus HorizontalExteriorDerivative(eta1);
|
Example 2.
Show that the integration by parts operator for the type (1, 2) bi-form is 0 so that is exact.
E >
|
omega2 := evalDG(Dx &w Cu[1] &w Cu[1,1,1,1] + Dx &w Cu[1,1] &w Cu[1,1,1]);
|
| (3.5) |
E >
|
IntegrationByParts(omega2);
|
Apply the horizontal homotopy operator to
E >
|
eta2 := HorizontalHomotopy(omega2);
|
| (3.7) |
E >
|
omega2 &minus HorizontalExteriorDerivative(eta2);
|
Example 3.
Show that the Euler-Lagrange form for is 0 so that is exact.
E >
|
HorizontalExteriorDerivative((u[1]*u[1,1,1])/u[1,1]^4);
|
E >
|
omega3 := map(expand, evalDG((u[1,1]^2*u[1,1,1] - 4*u[1,1,1]^2*u[1] + u[1]*u[1,1,1,1]*u[1,1])/u[1,1]^5*Dx));
|
| (3.10) |
E >
|
EulerLagrange(omega3);
|
Apply the horizontal homotopy operator to . Because is singular at we change the integration limits in the homotopy formula but still perform a radial integration. See DeRhamHomotopy for a detailed discussion.
E >
|
eta3a := HorizontalHomotopy(omega3, integrationlimits = [infinity, 1]);
|
| (3.12) |
Check that .
E >
|
omega3 &minus HorizontalExteriorDerivative(eta3a);
|
Instead of changing the limits of integration we can change the integration path to a sequence of coordinate lines. See HorizontalExteriorDerivative for a detailed discussion.
>
|
opt := intmethod = "ExteriorDerivativeHomotopy", path = "zigzag", variableorder = [x, u[], u[1], u[1,1], u[1,1,1], u[1,1,1,1], u[1,1,1,1,1]], initialpoint = [u[1,1] = 1];
|
| (3.14) |
E >
|
eta3b := HorizontalHomotopy(omega3, opt);
|
| (3.15) |
Example 4.
Create the jet space for the bundle with coordinates .
E >
|
DGsetup([x, y], [u, v], E2, 2):
|
Define a type (1, 0) biform and check that it is closed.
E2 >
|
omega4 := evalDG((v[2, 2]*u[1, 1] + u[1]*v[1, 2, 2])*Dx + (v[2, 2]*u[1, 2] + u[1]*v[2, 2, 2])*Dy);
|
| (3.16) |
E2 >
|
HorizontalExteriorDerivative(omega4);
|
Apply the horizontal homotopy operator to define .
E2 >
|
eta4 := HorizontalHomotopy(omega4);
|
Check that .
E2 >
|
omega4 &minus HorizontalExteriorDerivative(eta4);
|
Example 5.
Define a type (2, 0) form and check that its Euler-Lagrange form vanishes identically.
E2 >
|
omega5 := evalDG((v[2]*u[1, 1] + u[1]*v[1, 2] - v[1]*u[1, 2, 2] - u[1, 2]*v[1, 2])* Dx &w Dy);
|
| (3.20) |
E2 >
|
EulerLagrange(omega5);
|
E2 >
|
eta5a := HorizontalHomotopy(omega5);
|
| (3.22) |
E2 >
|
omega5 &minus HorizontalExteriorDerivative(eta5a);
|
So , but we can often find a much simpler answer.
E2 >
|
opt := intmethod = "ExteriorDerivativeHomotopy", path = "zigzag", variableorder = Tools:-DGinfo(E2, "FrameJetVariables");
|
| (3.24) |
E2 >
|
eta5b := HorizontalHomotopy(omega5, opt);
|
| (3.25) |
E2 >
|
omega5 &minus HorizontalExteriorDerivative(eta5b);
|
|
|
|
|
|
|