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
Details
Examples
Let π:E→M be a fiber bundle, with base dimension n and fiber dimension m and let π∞ :J∞E →M be the infinite jet bundle of E. The space of p-forms ΩpJ∞E decomposes into a direct sum ΩpJ∞ = ⨁r+s =p Ωr,sJ∞E, where Ωr,s J∞E is the space of bi-forms of horizontal degree r and vertical degree s. The horizontal exterior derivative is a mapping dH :Ωr,sJ∞E→ Ωr+1,sJ∞E with the following properties. A form ω ∈ Ωr,s J∞E is called dH closed if dH ω = 0 and dH exact if there is a bi-form η∈ Ωr−1,s J∞E such that ω = dH η. Since dH∘dH =0, every dH exact bi-form is dH closed.
[i] If r<n, then every dH closed bi-form ω is dH exact, ω = dH η.
[ii] If r =n and s=0 and Eω =0, where E is the Euler-Lagrange operator, then ω = dH η.
[iii] If r =n and s>0 and Iω =0, where I is the integration by parts operator, then ω = dH η.
There are a number of algorithms for finding the bi-form η. One approach is to use the horizontal homotopy operators hHr,s : Ωr,sJ∞E → Ωr−1,sJ∞E. Similar to the DeRham homotopy operator, these homotopy operators satisfy the identities
[i] hHr+1, s dH ω + dHhHr,s ω = ω if r<n ;
[ii] dHhHr,s ω = ω if r =n and s =0 and Eω =0.
[iii] dHhHr,s ω = ω if r =n and s >0 and Iω =0.
If ω is a bi-form of degree r,s with r>0 then HorizontalHomotopy(ω) returns a bi-form of degree (r−1, s).
For s >0 the operators hHr,s 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 s= 0 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(...).
Here are the explicit formulas for the horizontal homotopy operators. Let (xi, uα, uiα, uijα, ..., uij ⋅⋅⋅ kα, ....) be a local system of jet coordinates and let Θα = duα−uℓαdxℓ. Let ω ∈ Ωr,sJ∞ E be a k-th order bi-form with s≥1 and let EαIω∈ Ωr,s−1J∞ Ebe the higher (interior product) Euler operators. Let DI = Di1i2⋅⋅⋅iℓ be the multi-total derivative operator and let ωj = ιDjω. Then
hHr,sω = 1s∑I =0k−1 |I|+1n−r+I +1DI Θα ∧EαIjωj.
For s=0, the horizontal homotopy operator is defined in terms of the vertical exterior derivative dV and the vertical homotopy operator hVr,s by
hHr,sω = hVr−1, 1hHr,1dVω.
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.
with(DifferentialGeometry): with(JetCalculus):
Example 1.
Create the jet space J3E for the bundle E with coordinates x, u→ x.
DGsetup([x], [u], E, 3):
Show that the EulerLagrange form for ω1 is 0 so that ω1 is dH exact.
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);
ω1≔x⁢u1⁢u1,1,1,1+x⁢u1,1,1⁢u1,1+u1,1,1⁢u1+2⁢u1,1⁢u1,1,1⁢Dx
EulerLagrange(omega1);
0⁢Dx⁢⋀⁢Cu
Apply the horizontal homotopy operator to ω1
eta1 := HorizontalHomotopy(omega1);
η1≔x⁢u1,1,1⁢u1+u1,12
Check that the horizontal exterior derivative of η1 gives ω1.
omega1 &minus HorizontalExteriorDerivative(eta1);
0⁢Dx
Example 2.
Show that the integration by parts operator for the type (1, 2) bi-form ω1 is 0 so that ω2 is dH exact.
omega2 := evalDG(Dx &w Cu[1] &w Cu[1,1,1,1] + Dx &w Cu[1,1] &w Cu[1,1,1]);
ω2≔Dx⁢⋀⁢Cu1⁢⋀⁢Cu1,1,1,1+Dx⁢⋀⁢Cu1,1⁢⋀⁢Cu1,1,1
IntegrationByParts(omega2);
0⁢Dx⁢⋀⁢Cu⁢⋀⁢Cu1
Apply the horizontal homotopy operator to ω2.
eta2 := HorizontalHomotopy(omega2);
η2≔Cu1⁢⋀⁢Cu1,1,1
omega2 &minus HorizontalExteriorDerivative(eta2);
Example 3.
Show that the Euler-Lagrange form for ω3 is 0 so that ω3 is dH exact.
HorizontalExteriorDerivative((u[1]*u[1,1,1])/u[1,1]^4);
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≔u1,1,1u1,13−4⁢u1⁢u1,1,12u1,15+u1⁢u1,1,1,1u1,14⁢Dx
EulerLagrange(omega3);
Apply the horizontal homotopy operator to ω3. Because ω3 is singular at u1,1 = 0 we change the integration limits in the homotopy formula but still perform a radial integration. See DeRhamHomotopy for a detailed discussion.
eta3a := HorizontalHomotopy(omega3, integrationlimits = [infinity, 1]);
eta3a≔u1,1,1⁢u1u1,14
Check that dH η3 = ω3.
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];
opt≔intmethod=ExteriorDerivativeHomotopy,path=zigzag,variableorder=x,u,u1,u1,1,u1,1,1,u1,1,1,1,u1,1,1,1,1,initialpoint=u1,1=1
eta3b := HorizontalHomotopy(omega3, opt);
eta3b≔u1,1,1⁢u1u1,14
Example 4.
Create the jet space J2E for the bundle E with coordinates x, u, u, v →x,y.
DGsetup([x, y], [u, v], E2, 2):
Define a type (1, 0) biform ω4 and check that it is closed.
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);
ω4≔u1⁢v1,2,2+v2,2⁢u1,1⁢Dx+u1⁢v2,2,2+v2,2⁢u1,2⁢Dy
HorizontalExteriorDerivative(omega4);
0⁢Dx⁢⋀⁢Dy
Apply the horizontal homotopy operator to define η4.
eta4 := HorizontalHomotopy(omega4);
η4≔v2,2⁢u1
Check that ω4 =dH η4.
omega4 &minus HorizontalExteriorDerivative(eta4);
Example 5.
Define a type (2, 0) form ω5 and check that its Euler-Lagrange form vanishes identically.
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);
ω5≔u1⁢v1,2+v2⁢u1,1−u1,2⁢v1,2−v1⁢u1,2,2⁢Dx⁢⋀⁢Dy
EulerLagrange(omega5);
0⁢Dx⁢⋀⁢Dy⁢⋀⁢Cu
eta5a := HorizontalHomotopy(omega5);
eta5a≔712⁢v1⁢u1,2−14⁢v1⁢u1−16⁢v1,1⁢u2+112⁢u1⁢v1,2−14⁢v⁢u1,1−14⁢v⁢u1,1,2+112⁢v1,1,2⁢u⁢Dx+−16⁢v1⁢u2,2+34⁢v2⁢u1−14⁢v2⁢u1,2−112⁢v1,2⁢u2−14⁢v⁢u1,2−14⁢v⁢u1,2,2+112⁢v1,2,2⁢u⁢Dy
omega5 &minus HorizontalExteriorDerivative(eta5a);
So ω5 = dHη5a , but we can often find a much simpler answer.
opt := intmethod = "ExteriorDerivativeHomotopy", path = "zigzag", variableorder = Tools:-DGinfo(E2, "FrameJetVariables");
opt≔intmethod=ExteriorDerivativeHomotopy,path=zigzag,variableorder=x,y,u,v,u1,u2,v1,v2,u1,1,u1,2,u2,2,v1,1,v1,2,v2,2,u1,1,1,u1,1,2,u1,2,2,u2,2,2,v1,1,1,v1,1,2,v1,2,2,v2,2,2
eta5b := HorizontalHomotopy(omega5, opt);
eta5b≔v1⁢u1,2⁢Dx+v2⁢u1⁢Dy
omega5 &minus HorizontalExteriorDerivative(eta5b);
See Also
DifferentialGeometry
JetCalculus
EulerLagrange
HorizontalExteriorDerivative
IntegrationByParts
VerticalExteriorDerivative
VerticalHomotopy
ZigZag
Download Help Document