DifferentialGeometry Lessons
Lesson 8: The Pullback of a Differential Form by a Transformation
Overview
Pullback
Application 1: Integral Manifolds of Exterior Differential Systems
Integration
Stokes Theorem
The homotopy operator for the de Rham complex -- the cylinder construction.
Exercises
In this lesson, you will learn to do the following:
Pullback a differential form.
Determine if a submanifold is a integral manifold to an exterior differential system.
Integrate a differential form.
Check the invariance of a function, vector field, differential form, or tensor.
Apply the "cylinder construction" option for the DeRhamHomotopy command.
The basic properties of the pullback are listed in Exercise 5. Here we illustrate the fact that the pointwise pullback of a differential 1-form can be computed directly from the Jacobian matrix J of the transformation by simply multiplying the components of the 1-form (as a row vector) by J.
with(DifferentialGeometry):
DGsetup([x, y, z], M):
DGsetup([u, v], N):
Define a transformation psi, a 1-form alpha and a point p.
psi := Transformation(M, N,[u = (x^2 + y^2), v = z^2 - y^2]);
ψ ≔ u=x2+y2,v=z2−y2
alpha := evalDG(1/2*v*du - 1/2*u*dv);
α ≔ v⁢du2−u⁢dv2
p := [x = 2, y = 3, z = 4];
p ≔ x=2,y=3,z=4
We pull alpha back using psi and evaluate the result at p.
theta := Pullback(psi, alpha);
θ ≔ −−z2+y2⁢x⁢dx+y⁢x2+y⁢z2⁢dy−x2+y2⁢z⁢dz
theta1 := eval(theta, p);
θ1 ≔ 14⁢dx+60⁢dy−52⁢dz
Let's recalculate the pullback of the form alpha using the Jacobian of psi. First, we need the image of p under psi.
q := ApplyTransformation(psi, p);
q ≔ u=13,v=7
Evaluate alpha at q.
alpha1 := eval(alpha, q);
α1 ≔ 7⁢du2−13⁢dv2
Use DGinfo to get the coefficients of alpha1 and the Jacobian J of phi.
A := Tools:-DGinfo(alpha1, "CoefficientList", "all");
A ≔ 72,−132
J := eval(Tools:-DGinfo(psi, "JacobianMatrix"), p);
J ≔ 4600−68
Calculate the coefficients of the pullback of alpha1 by phi using matrix multiplication.
B := LinearAlgebra:-Transpose(Vector(A)).J;
B ≔ 1460−52
theta2 := DGzip(B, [dx, dy, dz], "plus");
θ2 ≔ 14⁢dx+60⁢dy−52⁢dz
restart;with(DifferentialGeometry):
Let Omega be an exterior differential system (EDS) on a manifold M. An integral manifold of Omega is an immersion sigma : N -> M such that sigma^*(omega) = 0 for all differential p-forms omega in Omega. If Omega is generated, as a differential ideal, by forms omega[1], omega[2], ... omega[N], then sigma is an integral manifold if and only if the pullback sigma^*(omega[i]) = 0 for i = 1 ... N. The forms omega[i] need not be 1-forms.
In each of the following examples, we check that the map sigma is an integral manifold for the given EDS Omega.
Example 1. This EDS is the canonical contact system on the jet space J^3(R, R).
DGsetup([x], N1): DGsetup([x, y, y1, y2, y3], M1):
Omega := evalDG([dy - y1*dx, dy1 - y2*dx, dy2 - y3*dx]);
Ω ≔ −y1⁢dx+dy,−y2⁢dx+dy1,−y3⁢dx+dy2
sigma := Transformation(N1, M1, [x = x, y = f(x), y1 = diff(f(x), x), y2 = diff(f(x), x$2), y3 = diff(f(x), x$3)]);
σ ≔ x=x,y=f⁡x,y1=ⅆⅆx⁢f⁡x,y2=ⅆ2ⅆx2⁢f⁡x,y3=ⅆ3ⅆx3⁢f⁡x
Pullback(sigma, Omega);
0⁢dx,0⁢dx,0⁢dx
Example 2. This EDS is the canonical contact system on the jet space J^1(R^2, R).
DGsetup([x, y], N2):
DGsetup([x, y, u, p, q, r, s, t], M2):
Omega := evalDG([du - p*dx - q*dy, dp - r*dx - s*dy, dq - s*dx - t*dy]);
Ω ≔ −p⁢dx−q⁢dy+du,−r⁢dx−s⁢dy+dp,−s⁢dx−t⁢dy+dq
sigma := Transformation(N2, M2, [x = x, y = y, u = f(x, y), p = diff(f(x, y), x), q = diff(f(x, y), y), r = diff(f(x, y), x$2), s = diff(f(x, y), x, y), t = diff(f(x, y), y$2)]);
σ ≔ x=x,y=y,u=f⁡x,y,p=∂∂x⁢f⁡x,y,q=∂∂y⁢f⁡x,y,r=∂2∂x2⁢f⁡x,y,s=∂2∂y⁢∂x⁢f⁡x,y,t=∂2∂y2⁢f⁡x,y
Example 3. Find the integral 1-manifolds to the EDS Omega of the form [x = x, y = f(x), y1 = g(x), y2 = h(x), y3 = k(x)].
ChangeFrame(M1):
Omega := evalDG([dy - y1*dx, dy1 - y2*dx, dy2 - y3*dx, dy3 - y*dx]);
Ω ≔ −y1⁢dx+dy,−y2⁢dx+dy1,−y3⁢dx+dy2,−y⁢dx+dy3
sigma := Transformation(N1, M1, [x = x, y = f(x), y1 = g(x), y2 = h(x), y3 = k(x)]);
σ ≔ x=x,y=f⁡x,y1=g⁡x,y2=h⁡x,y3=k⁡x
Pullback the forms in the list Omega using sigma. Extract the coefficients of the resulting forms to obtain a system of 1st order ODEs.
Theta := Pullback(sigma, Omega);
Θ ≔ ⅆⅆx⁢f⁡x−g⁡x⁢dx,ⅆⅆx⁢g⁡x−h⁡x⁢dx,ⅆⅆx⁢h⁡x−k⁡x⁢dx,ⅆⅆx⁢k⁡x−f⁡x⁢dx
DE := map(op, map(Tools:-DGinfo, Theta, "CoefficientSet"));
DE ≔ ⅆⅆx⁢f⁡x−g⁡x,ⅆⅆx⁢g⁡x−h⁡x,ⅆⅆx⁢h⁡x−k⁡x,ⅆⅆx⁢k⁡x−f⁡x
Use dsolve to solve these ODEs.
Soln := dsolve(DE);
Soln ≔ k⁡x=_C1⁢ⅇ−x+_C2⁢ⅇx+_C3⁢sin⁡x+_C4⁢cos⁡x,h⁡x=−_C1⁢ⅇ−x+_C2⁢ⅇx−_C3⁢cos⁡x+_C4⁢sin⁡x,g⁡x=_C1⁢ⅇ−x+_C2⁢ⅇx−_C3⁢sin⁡x−_C4⁢cos⁡x,f⁡x=−_C1⁢ⅇ−x+_C2⁢ⅇx+_C3⁢cos⁡x−_C4⁢sin⁡x
Substitute back into the original transformation sigma.
Sigma := eval(sigma, Soln);
Σ ≔ x=x,y=−_C1⁢ⅇ−x+_C2⁢ⅇx+_C3⁢cos⁡x−_C4⁢sin⁡x,y1=_C1⁢ⅇ−x+_C2⁢ⅇx−_C3⁢sin⁡x−_C4⁢cos⁡x,y2=−_C1⁢ⅇ−x+_C2⁢ⅇx−_C3⁢cos⁡x+_C4⁢sin⁡x,y3=_C1⁢ⅇ−x+_C2⁢ⅇx+_C3⁢sin⁡x+_C4⁢cos⁡x
Check that Sigma annihilates all the forms in the EDS Omega.
Pullback(Sigma, Omega);
0⁢dx,0⁢dx,0⁢dx,0⁢dx
Example 4. Find the integral 2-manifolds to the EDS Omega of the form [x = x, y = y, u = f(x, y), p = g(x, y), q = h(x, y)].
DGsetup([x, y, u, ux, uy], M2):
Omega := evalDG([du - ux*dx - uy*dy, dux &w dx, duy &w dy]);
Ω ≔ −ux⁢dx−uy⁢dy+du,−dx⁢`^`⁢dux,−dy⁢`^`⁢duy
sigma := Transformation(N2, M2, [x = x, y = y, u = f(x, y), ux = g(x, y), uy = h(x, y)]);
σ ≔ x=x,y=y,u=f⁡x,y,ux=g⁡x,y,uy=h⁡x,y
Pullback the forms in the list Omega using sigma. Extract the coefficients of the resulting forms to obtain a system of 1st order PDEs.
Θ ≔ ∂∂x⁢f⁡x,y−g⁡x,y⁢dx+∂∂y⁢f⁡x,y−h⁡x,y⁢dy,−∂∂y⁢g⁡x,y⁢dx⁢`^`⁢dy,∂∂x⁢h⁡x,y⁢dx⁢`^`⁢dy
DE ≔ ∂∂x⁢f⁡x,y−g⁡x,y,∂∂y⁢f⁡x,y−h⁡x,y,−∂∂y⁢g⁡x,y,∂∂x⁢h⁡x,y
Use pdsolve to integrate this system of PDEs.
Soln := pdsolve(DE);
Soln ≔ f⁡x,y=∫_F2⁡yⅆy+∫_F1⁡xⅆx+_C1,h⁡x,y=_F2⁡y,g⁡x,y=_F1⁡x
The command IntegrateForm provides a simple means for integrating differential forms. Here are a few examples.
[i] Line Integrals. Compute the line integral of the 1-form omega1 along the curve C from t = 0 to t = 2*Pi.
DGsetup([t], R1):
DGsetup([x, y, z], R3):
Define the 1-form omega1.
omega1 := evalDG(x^2*dx - z^2*dy + y^2*dz);
ω1 ≔ x2⁢dx−z2⁢dy+y2⁢dz
Define the curve C in R3 as a transformation from R1 to R3.
C := Transformation(R1, R3, [ x = sin(t), y = t ,z = cos(t)]);
C ≔ x=sin⁡t,y=t,z=cos⁡t
Pull the 1-form back using the curve C and integrate the resulting form on R1 from t = 0 to t = 2*Pi.
eta1 := Pullback(C, omega1);
η1 ≔ −t2⁢sin⁡t−cos⁡t2+cos⁡t−cos⁡t3⁢dt
IntegrateForm(eta1, t = 0.. 2*Pi);
4⁢π2−π
[ii] Surface Integrals. Compute the surface integral of the 2-form omega2 over the surface z = x^2 + y^2, where 1 < x^2 + y^2 <= 4.
omega2 := evalDG(x^2*z*dx &w dy - z^3*dx &w dz);
ω2 ≔ x2⁢z⁢dx⁢`^`⁢dy−z3⁢dx⁢`^`⁢dz
We use polar coordinates to parameterize the surface. (theta was previously defined, so we need to unassign it here.)
theta := 'theta';
θ ≔ θ
DGsetup([r, theta], R2):
S := Transformation(R2, R3, [x = r*cos(theta), y = r*sin(theta), z = r^2]);
S ≔ x=r⁢cos⁡θ,y=r⁢sin⁡θ,z=r2
eta2 := Pullback(S, omega2);
η2 ≔ −r5⁢2⁢r3⁢sin⁡θ−cos⁡θ2⁢dr⁢`^`⁢dtheta
IntegrateForm(eta2, r = 1 .. 2, theta = 0 .. 2*Pi);
21⁢π2
[iii] Volume Integral. Compute the integral of the 3-form omega3 over the region x + y + z + w = 1, x, y, z, w > =0.
DGsetup([x, y, z, w], R4):
DGsetup([r, s, t], N):
omega3 := (x*y)/(1 + z)*evalDG(dx &w dy &w dz - dy &w dz &w dw);
ω3 ≔ x⁢y⁢dx⁢`^`⁢dy⁢`^`⁢dz−dy⁢`^`⁢dz⁢`^`⁢dw1+z
The transformation phi parameterizes the region of integration.
phi := Transformation(N, R4, [x = r, y = s, z = t, w = 1 - r - s - t]);
φ ≔ x=r,y=s,z=t,w=1−r−s−t
Pullback omega3 by phi and integrate the result.
eta3 := Pullback(phi, omega3);
η3 ≔ 2⁢r⁢s⁢dr⁢`^`⁢ds⁢`^`⁢dt1+t
IntegrateForm(eta3, r = 0 .. 1, s = 0 .. r, t = 0 .. r + s);
2548−98⁢ln⁡3+43⁢ln⁡2
Let M be an n-dimensional manifold with boundary N and let omega be an (n-1)-form. Stokes Theorem states that
int_N omega = int_M (d(omega)) (*)
Let us check this formula, where M is the (solid) ball of radius 1 centered at the origin, N is the unit 2-sphere and omega is the 2-form defined below. We shall use spherical coordinates to evaluate the integrals.
restart: with(DifferentialGeometry):
DGsetup([rho, theta, phi], B3):
DGsetup([theta, phi], S2):
omega := evalDG(-(x^2 + y^2)*z*dx &w dy - (y^2 + z^2)*x*dx &w dz + x^2*y^2*z^2*dy &w dz);
ω ≔ −x2+y2⁢z⁢dx⁢`^`⁢dy−y2+z2⁢x⁢dx⁢`^`⁢dz+x2⁢y2⁢z2⁢dy⁢`^`⁢dz
The transformation F parameterizes the boundary N of the ball.
F := Transformation(S2, R3, [x = cos(theta)*sin(phi), y = sin(theta)*sin(phi), z = cos(phi)]);
F ≔ x=cos⁡θ⁢sin⁡φ,y=sin⁡θ⁢sin⁡φ,z=cos⁡φ
The transformation G will be used to integrate omega over the ball M.
G := Transformation(B3, R3, [x = rho*cos(theta)*sin(phi), y = rho*sin(theta)*sin(phi), z = rho*cos(phi)]);
G ≔ x=ρ⁢cos⁡θ⁢sin⁡φ,y=ρ⁢sin⁡θ⁢sin⁡φ,z=ρ⁢cos⁡φ
omega1 := Pullback(F, omega);
ω1 ≔ −sin⁡φ3⁢cos⁡θ3⁢sin⁡φ⁢cos⁡φ2−cos⁡θ3⁢sin⁡φ⁢cos⁡φ4−cos⁡θ5⁢sin⁡φ⁢cos⁡φ2+cos⁡θ5⁢sin⁡φ⁢cos⁡φ4+cos⁡θ⁢sin⁡θ−cos⁡θ3⁢sin⁡θ+cos⁡θ3⁢sin⁡θ⁢cos⁡φ2−cos⁡φ2⁢dtheta⁢`^`⁢dphi
Calculate the left hand side of Stokes' formula.
StokesLHS := IntegrateForm(omega1, theta = 0 .. 2*Pi, phi = 0..Pi);
StokesLHS ≔ 8⁢π15
Calculate the exterior derivative of omega and integrate over the ball M to obtain the right hand side of Stokes' formula.
omega2 := Pullback(G, ExteriorDerivative(omega));
ω2 ≔ sin⁡φ3⁢−2⁢ρ3⁢cos⁡θ⁢sin⁡φ⁢cos⁡φ2+2⁢ρ3⁢cos⁡θ3⁢sin⁡φ⁢cos⁡φ2−2⁢cos⁡θ⁢sin⁡θ+1⁢ρ4⁢drho⁢`^`⁢dtheta⁢`^`⁢dphi
StokesRHS := IntegrateForm(omega2, rho = 0 .. 1, theta = 0 .. 2*Pi, phi = 0 .. Pi);
StokesRHS ≔ 8⁢π15
There is a very general approach to the construction of homotopy operators for the exterior derivative base on the "cylinder construction" discussed, for example, in Boothby pages 277--278 (the I operator, Definition 7.10), Flanders pages 27--28 (the K operator) and Spivak (Volume I) pages 304 --305 (the I operator).
Given a manifold M, let N = [0, 1] x M and let i_t : M --> N be the map i_t(p) = [t, p]. Then there is a homotopy operator I mapping (p + 1)-forms theta on N to p-forms on M and such that
i_1^*(theta) - i_0(theta) = I(d(theta)) + d(I(theta)). (*)
To apply this operator in Maple, we use the DeRhamHomotopy command with the option cylindervariable = var, where var is the cylinder coordinate (t) on the manifold N.
The standard application of this homotopy operator is as follows. Let f, g : M -> M be two smoothly homotopic maps. This implies that there is a map F : [0, 1] x M -> M such that f = F(t = 0) and g = F(t = 1). If omega is any closed form on M then, with theta = F^*(omega), the formula (*) shows that g^*(omega) - f^*(omega) is exact.
Example. Consider the case where M = {(x, y, z) such that x^2 + y^2 <> 0} and F(t, x, y, z) = (x, y, t*z). Formula (*) shows that if omega is a closed 1-form on M, then there is a closed form omega1 on the xy-plane and a globally defined function eta on M such that
omega = omega1 + d(eta).
DGsetup([t, x, y, z], N):
ChangeFrame(M):
Define a form omega on M and check that it is closed.
omega := evalDG((-2*x*z^2+y*x^2+y^3+y^4+2*y^2*x^2+x^4)*dx/(x^2+y^2)^2-(2*z^2*y+x^3+x*y^2)*dy/(x^2+y^2)^2+2*z*dz/(x^2+y^2));
ω:=−2⁢x⁢z2+y⁢x2+y3+y4+2⁢y2⁢x2+x4⁢dxx2+y22−2⁢z2⁢y+x3+x⁢y2⁢dyx2+y22+2⁢z⁢dzx2+y2
ExteriorDerivative(omega);
0⁢dx⁢⋀⁢dy
Define the transformation F.
F := Transformation(N, M, [x = x, y = y, z = t*z]);
F:=x=x,y=y,z=t⁢z
Note that at t = 1, F is the identity transformation g on M and at t = 0, F is the projection map f to the puncture xy-plane R^2-{0}. Define the map f and the map i_0.
f := Transformation(N, M, [x = x, y = y, z = 0]);
f:=x=x,y=y,z=0
i_0 := Transformation(M, N, [x = x, y = y, z = z, t = 0]);
i_0:=t=0,x=x,y=y,z=z
omega0 := Pullback(i_0, Pullback(f, omega));
ω0:=y+x2+y2⁢dxx2+y2−x⁢dyx2+y2
Pullback omega by F and apply the DeRhamHomotopy operator to the result.
omega_t := Pullback(F, omega);
omega_t:=2⁢t⁢z2⁢dtx2+y2−2⁢x⁢t2⁢z2−y⁢x2−y3−y4−2⁢y2⁢x2−x4⁢dxx2+y22−2⁢t2⁢z2⁢y+x3+x⁢y2⁢dyx2+y22+2⁢t2⁢z⁢dzx2+y2
eta := DeRhamHomotopy(omega_t, cylinderconstruction = t);
η:=z2x2+y2
ChangeFrame(M);
N
We have succeeded in writing omega as the sum of a form in the xy-plane and an exact form on M.
omega &minus (omega0 &plus ExteriorDerivative(eta));
0⁢dx
Exercise 1
Calculate the pullback of the form alpha with respect to the map phi.
[i]
phi1 := Transformation(M, N, [u = x/z, v = y/z]);
φ1 ≔ u=xz,v=yz
alpha1 := u^2 + v^2;
α1 ≔ u2+v2
[ii]
phi2 := Transformation(M, N, [u = 3, v = 4]);
φ2 ≔ u=3,v=4
alpha2 := evalDG(du - dv);
α2 ≔ du−dv
[iii]
phi3 := Transformation(M, N, [u = x^2, v = y^2]);
φ3 ≔ u=x2,v=y2
alpha3 := evalDG(du - dv);
α3 ≔ du−dv
Solution
Part [i]
Pullback(phi1, alpha1);
x2z2+y2z2
Part [ii]
Pullback(phi2, alpha2);
Part [iii]
Pullback(phi3, alpha3);
2⁢x⁢dx−2⁢y⁢dy
Exercise 2
Use the Pullback command to calculate the Jacobian determinant of the transformation from Cartesian to spherical coordinates.
The Jacobian determinant can be calculated as the coefficient of the pullback of the standard volume form in Cartesian coordinates.
DGsetup([x, y, z], "cart"):
DGsetup([rho, phi, theta], "spher"):
Define the coordinate transformation from spherical to Cartesian coordinates.
T := Transformation("spher", "cart", [x = rho*cos(theta)*sin(phi), y = rho*sin(theta)*sin(phi), z = rho*cos(phi)]);
T ≔ x=ρ⁢cos⁡θ⁢sin⁡φ,y=ρ⁢sin⁡θ⁢sin⁡φ,z=ρ⁢cos⁡φ
Define the standard volume form in Cartesian coordinates with the DGvolume command.
nu1 := Tools:-DGvolume("form", 1, "cart");
ν1 ≔ dx⁢`^`⁢dy⁢`^`⁢dz
nu2 := Pullback(T, nu1);
ν2 ≔ ρ2⁢sin⁡φ⁢drho⁢`^`⁢dphi⁢`^`⁢dtheta
Use DGinfo to obtain the coefficient of nu2.
Tools:-DGinfo(nu2, "CoefficientSet")[1];
ρ2⁢sin⁡φ
Exercise 3
A mapping phi : M -> N is a local submersion if phi_* is a surjective linear map, or, equivalently, if phi^* is injective.
Determine those points at which the following map phi fails to be submersion.
DGsetup([x, y, z, w], M):
phi := Transformation(M, N, [u = x*y + z*w, v = x*z + y*w]);
φ ≔ u=x⁢y+z⁢w,v=x⁢z+y⁢w
If phi^* is injective, then linearly independent forms pullback to linearly independent forms. So phi fails to be a local submersion precisely at the points where phi^*(du &w dv) vanishes.
omega := Pullback(phi, du &w dv);
ω ≔ −x⁢z+y⁢w⁢dx⁢`^`⁢dy+−z⁢w+x⁢y⁢dx⁢`^`⁢dz+−z2+y2⁢dx⁢`^`⁢dw+−w2+x2⁢dy⁢`^`⁢dz+−z⁢w+x⁢y⁢dy⁢`^`⁢dw+−x⁢z+y⁢w⁢dz⁢`^`⁢dw
Set the coefficients of omega to zero and solve the resulting set of equations.
Eq := Tools:-DGinfo(omega, "CoefficientSet");
Eq ≔ −z⁢w+x⁢y,−z2+y2,−w2+x2,−x⁢z+y⁢w
solve(Eq, {x, u, z, w});
w=w,u=u,x=w,z=y,w=w,u=u,x=−w,z=−y
The map phi fails to be a submersion on a transverse pair of 2-planes.
Exercise 4
[i] Show that the map Sigma1 defines an integral manifold for the EDS Omega1 (from Bryant, Chern et al. Exterior Differential Systems, page 53).
DGsetup([phi], N):
DGsetup([x, y, z, phi], M):
Omega1 := evalDG([dy - sin(phi)*dx, dz - cos(phi)*dx]);
Ω1 ≔ −sin⁡φ⁢dx+dy,−cos⁡φ⁢dx+dz
Sigma1 := Transformation(N, M, [x = diff(f(phi), phi$2) + f(phi), y = sin(phi)*diff(f(phi), phi$2) - cos(phi)*diff(f(phi), phi), z = cos(phi)*diff(f(phi), phi$2) + sin(phi)*diff(f(phi), phi), phi = phi]);
Σ1 ≔ x=ⅆ2ⅆφ2⁢f⁡φ+f⁡φ,y=sin⁡φ⁢ⅆ2ⅆφ2⁢f⁡φ−cos⁡φ⁢ⅆⅆφ⁢f⁡φ,z=cos⁡φ⁢ⅆ2ⅆφ2⁢f⁡φ+sin⁡φ⁢ⅆⅆφ⁢f⁡φ,φ=φ
[ii] Find the integral manifolds for the EDS Omega2, assuming that u, v and q are functions of x and y.
DGsetup([x, y], N):
DGsetup([x, y, u, v, q], M):
Omega2 := evalDG([du - q*dy, dv + q*dx]);
Ω2 ≔ −q⁢dy+du,q⁢dx+dv
Part [i] Simply pullback the differential forms in Omega1 by Sigma1 and check that the results are zero forms.
Pullback(Sigma1, Omega1);
0⁢dx,0⁢dx
Part [ii] Define a transformation Sigma2 from N to M with the coordinates u ,v, and w as arbitrary functions of x and y.
Sigma2 := Transformation(N, M, [x = x, y = y, u = f(x, y), v = g(x, y), q = h(x, y)]);
Σ2 ≔ x=x,y=y,u=f⁡x,y,v=g⁡x,y,q=h⁡x,y
Pullback the forms in Omega2 by Sigma2 and extract the coefficients of the results.
Theta := Pullback(Sigma2, Omega2);
Θ ≔ ∂∂x⁢f⁡x,y⁢dx+∂∂y⁢f⁡x,y−h⁡x,y⁢dy,∂∂x⁢g⁡x,y+h⁡x,y⁢dx+∂∂y⁢g⁡x,y⁢dy
Eq := map(op, map(Tools:-DGinfo, Theta, "CoefficientSet"));
Eq ≔ ∂∂x⁢f⁡x,y,∂∂y⁢f⁡x,y−h⁡x,y,∂∂y⁢g⁡x,y,∂∂x⁢g⁡x,y+h⁡x,y
Use pdsolve to solve the pde in the list Eq.
Soln := pdsolve(Eq, {f, g, h});
Soln ≔ f⁡x,y=_C1⁢y+_C2,g⁡x,y=−_C1⁢x+_C3,h⁡x,y=_C1
Back substitute this solution into Sigma2. Check that Sigma3 is an integral manifold.
Sigma3 := eval(Sigma2, Soln);
Σ3 ≔ x=x,y=y,u=_C1⁢y+_C2,v=−_C1⁢x+_C3,q=_C1
Pullback(Sigma3, Omega2);
Exercise 5
Write a program to verify, by example, the following properties of the pullback map:
[i] phi^*(alpha)(X_p, Y_p) = alpha(phi_*(X_p), phi_*(Y_p)), where alpha is a 2-form.
[ii] phi^*(alpha &w beta) = phi^*(alpha) &w phi^*(beta)
[iii] phi^(d(alpha)) = d(phi^*(alpha))
Use the following data to test your programs.
DGsetup([u, v, w], N):
alpha1 := evalDG(w*du &w dv + u*v*dv &w dw);
α1 ≔ w⁢du⁢`^`⁢dv+u⁢v⁢dv⁢`^`⁢dw
alpha2 := evalDG(u*dv - v^2*dw);
α2 ≔ u⁢dv−v2⁢dw
alpha3 := evalDG(u*v*du - w^2*dv);
α3 ≔ u⁢v⁢du−w2⁢dv
phi := Transformation(M, N, [u = x/y, v = y/z, w = x*y/z]);
φ ≔ u=xy,v=yz,w=x⁢yz
X := y*D_x + z*D_y - x^2*D_z;
X ≔ y⁢D_x+z⁢D_y−x2⁢D_z
Y := evalDG(z*y*D_x + y*D_y + x^2*D_z);
Y ≔ z⁢y⁢D_x+y⁢D_y+x2⁢D_z
pt1 := [x = 1, y = 2, z = 3];
pt1 ≔ x=1,y=2,z=3
pt2 := [x = 3, y = 1, z = -2];
pt2 ≔ x=3,y=1,z=−2
PullbackDefinition := proc(phi, alpha, X, Y, pt)
local a, a1, a2, a3, a4, b, b1, b2, b3, b4, c;
a1 := Pullback(phi, alpha);
a2 := eval(a1, pt);
a3 := eval(X, pt);
a4 := eval(Y, pt);
a := Hook([a3, a4], a2);
b1 := Pushforward(phi, a3, pt);
b2 := Pushforward(phi, a4, pt);
b3 := ApplyTransformation(phi, pt);
b4 := eval(alpha, b3);
b := Hook([b1, b2], b4);
a - b
end:
PullbackDefinition(phi, alpha1, X, Y, pt1);
0
PullbackDefinition(phi, alpha1, X, Y, pt2);
PullbackHomomorphism := proc(phi, alpha, beta)
local a1, a, b1, b2, b;
a1 := alpha &wedge beta;
a := Pullback(phi, a1):
b1 := Pullback(phi, alpha);
b2 := Pullback(phi, beta);
b := b1 &wedge b2;
a &minus b;
PullbackHomomorphism(phi, alpha1, alpha2);
0⁢dx⁢`^`⁢dy⁢`^`⁢dz
PullbackHomomorphism(phi, alpha2, alpha3);
0⁢dx⁢`^`⁢dy
PullbackExteriorDerivative := proc(phi, alpha)
local a1, a, b1 ,b;
a1 := ExteriorDerivative(alpha);
a := Pullback(phi, a1);
b := ExteriorDerivative(b1);
PullbackExteriorDerivative(phi, alpha1);
PullbackExteriorDerivative(phi, alpha2);
Exercise 6
Use the Pullback command to calculate the Maurer-Cartan forms for the matrix group defined by the matrix A. (See Lesson 5 and Lesson 7 Ex. 7.)
DGsetup([x1, x2, x3], G):
A := Matrix([[exp(-x1), -x1*exp(-x1), x2], [0, exp(-x1), x3], [0, 0, 1]]);
A ≔ ⅇ−x1−x1⁢ⅇ−x1x20ⅇ−x1x3001
We build upon the techniques used in Lesson 7 Ex. 7. If L_a(x) = a*x denotes the left-multiplication map, then a form omega is left invariant if (L_a)*(omega(a*x)) = omega(x). In this equation, replace x by a and a by a^(-1) to get omega(a) = L_(a^-1) (omega(e)) -- this formula gives omega(a) in terms of the value of omega(e).
Recall that the group multiplication is given by
MultiplicationRule := [z3 = (y3 + x3*exp(x1))/exp(x1), z2 = (y2 - x1*y3 + x2*exp(x1))/exp(x1), z1 = x1 + y1];
MultiplicationRule ≔ z3=y3+x3⁢ⅇx1ⅇx1,z2=y2−x1⁢y3+x2⁢ⅇx1ⅇx1,z1=x1+y1
The inverse of [x1, x2, x3] is given by
InverseRule := [y1 = -x1, y2 = -x1*x3*exp(x1) - x2*exp(x1), y3 = -x3*exp(x1)];
InverseRule ≔ y1=−x1,y2=−x1⁢x3⁢ⅇx1−x2⁢ⅇx1,y3=−x3⁢ⅇx1
Here is the left multiplication map by the inverse of [a1, a2, a3].
multL := simplify(eval(eval(MultiplicationRule,[x1 = -a1, x2 = -a1*a3*ex(a1) -a2*exp(a1), x3 = -a3*exp(a1)]),[y1 = x1, y2 = x2, y3 = x3]));
multL ≔ z3=−−x3+a3⁢ⅇa1,z2=−−x2−a1⁢x3+ⅇ−a1⁢a1⁢a3⁢ex⁡a1+a2⁢ⅇa1,z1=−a1+x1
LeftMultByInverse := Transformation(G, G, eval(multL, [z1 = x1, z2 = x2, z3 = x3]));
LeftMultByInverse ≔ x1=−a1+x1,x2=−−x2−a1⁢x3+ⅇ−a1⁢a1⁢a3⁢ex⁡a1+a2⁢ⅇa1,x3=−−x3+a3⁢ⅇa1
Here are the left invariant 1-forms at [a1, a2, a3].
OmegaLatA := eval(Pullback(LeftMultByInverse, [dx1, dx2, dx3]), [x1 = 0, x2 = 0, x3 = 0]);
OmegaLatA ≔ dx1,ⅇa1⁢dx2+a1⁢ⅇa1⁢dx3,ⅇa1⁢dx3
Here are the left invariant 1-forms at [x1, x2, x3].
OmegaL := eval(OmegaLatA, [a1 = x1, a2 = x2, a3 = x3]);
OmegaL ≔ dx1,ⅇx1⁢dx2+x1⁢ⅇx1⁢dx3,ⅇx1⁢dx3
These are the same forms as those found in Exercise 5. The method in this exercise can be used when the Lie group is not given as a matrix group.
Now we calculate the right invariant forms.
multR := simplify(eval(MultiplicationRule, [y1 = -a1, y2 = -a1*a3*exp(a1) - a2*exp(a1), y3 = -a3*exp(a1)]));
multR ≔ z3=−a3⁢ⅇa1−x3⁢ⅇx1⁢ⅇ−x1,z2=−a1⁢a3⁢ⅇa1+a2⁢ⅇa1−x1⁢a3⁢ⅇa1−x2⁢ⅇx1⁢ⅇ−x1,z1=−a1+x1
RightMultByInverse := Transformation(G, G, eval(multR, [z1 = x1, z2 = x2, z3 = x3]));
RightMultByInverse ≔ x1=−a1+x1,x2=−a1⁢a3⁢ⅇa1+a2⁢ⅇa1−x1⁢a3⁢ⅇa1−x2⁢ⅇx1⁢ⅇ−x1,x3=−a3⁢ⅇa1−x3⁢ⅇx1⁢ⅇ−x1
OmegaRatA := eval(Pullback(RightMultByInverse, [dx1, dx2, dx3]), [x1 = 0, x2 = 0, x3 = 0]);
OmegaRatA ≔ dx1,ⅇa1⁢a3+a1⁢a3+a2⁢dx1+dx2,a3⁢ⅇa1⁢dx1+dx3
OmegaR := eval(OmegaRatA, [a1 = x1, a2 = x2, a3 = x3]);
OmegaR ≔ dx1,ⅇx1⁢x3+x1⁢x3+x2⁢dx1+dx2,x3⁢ⅇx1⁢dx1+dx3
Exercise 7
DGsetup([x,y,z,w], R4):
[i] Compute the line integral of the 1-form omega1 along the curve C defined by y = x^2 - x, z = x^3 - x^2 + x, w = x^4 - x^3 + x^2 - x from x = -1 ... 1.
omega1 := evalDG(z*x*dx + x*w*dy + y*w*dz + x*y*dw);
ω1 ≔ z⁢x⁢dx+x⁢w⁢dy+y⁢w⁢dz+x⁢y⁢dw
[ii] Compute the surface integral of the 2-form omega2 over the torus T in R4 defined by x^2 + y ^2 = 1, z^2 + w^2 = 1.
omega2 := evalDG(z^2*dx &w dy + w^2*dx &w dz + y^2*dx &w dw + w^2*dy &w dz + x*z*dy &w dw + y*z*dz &w dw);
ω2 ≔ z2⁢dx⁢`^`⁢dy+w2⁢dx⁢`^`⁢dz+y2⁢dx⁢`^`⁢dw+w2⁢dy⁢`^`⁢dz+z⁢x⁢dy⁢`^`⁢dw+y⁢z⁢dz⁢`^`⁢dw
[iii] Compute the triple integral of the 3-form omega3 over the 3 dimensional sphere x^2 + y^2 + z^2 + w^2 = 1. Note that omega3 is closed.
omega3 := evalDG(z*dx &w dy &w dw);
ω3 ≔ z⁢dx⁢`^`⁢dy⁢`^`⁢dw
ExteriorDerivative(omega3);
dx⁢`^`⁢dy⁢`^`⁢dz⁢`^`⁢dw
Part [i] Parameterize the curve C with the coordinate x, pullback omega1 and integrate with respect to x from -1 to 1.
DGsetup([x], N):
C := Transformation(N, R4, [x = x, y = x^2 - x, z = x^3 - x^2 + x, w = x^4 - x^3 + x^2 - x]);
C ≔ x=x,y=x2−x,z=x3−x2+x,w=x4−x3+x2−x
eta := Pullback(C, omega1);
η ≔ 17⁢x6−22⁢x5+18⁢x4−11⁢x3+4⁢x2+3⁢x8−8⁢x7⁢dx
IntegrateForm(eta, x = -1 .. 1);
1616105
Part [ii] Parameterize the torus T with the angular coordinates theta and phi, then pullback omega2 and integrate.
DGsetup([theta, phi], N):
S := Transformation(N, R4, [x = sin(theta), y = cos(theta), z = cos(phi), w = sin(phi)]);
S ≔ x=sin⁡θ,y=cos⁡θ,z=cos⁡φ,w=sin⁡φ
eta := Pullback(S, omega2);
η ≔ −cos⁡φ2+cos⁡φ2⁢cos⁡θ2+sin⁡φ⁢sin⁡θ−sin⁡φ⁢sin⁡θ⁢cos⁡φ2+cos⁡θ3⁢cos⁡φ−cos⁡θ⁢sin⁡φ+cos⁡θ⁢sin⁡φ⁢cos⁡φ2⁢dtheta⁢`^`⁢dphi
IntegrateForm(eta, theta = 0 .. 2*Pi, phi = 0 .. 2*Pi);
−π2
Part [iii] By Stokes Theorem the value of the integral is 0. We check this by a direct computation.
DGsetup([theta1, theta2, theta3], N):
V := Transformation(N, R4, [x = cos(theta1)*sin(theta2)*sin(theta3), y = sin(theta1)*sin(theta2)*sin(theta3), z = cos(theta2)*sin(theta3), w = cos(theta3)]);
V ≔ x=cos⁡θ1⁢sin⁡θ2⁢sin⁡θ3,y=sin⁡θ1⁢sin⁡θ2⁢sin⁡θ3,z=cos⁡θ2⁢sin⁡θ3,w=cos⁡θ3
eta := Pullback(V, z*dx &w dy &w dw);
η ≔ cos⁡θ22⁢sin⁡θ34⁢sin⁡θ2⁢dtheta1⁢`^`⁢dtheta2⁢`^`⁢dtheta3
IntegrateForm(eta, theta1 = 0 .. 2*Pi, theta2 = 0 .. 2*Pi, theta3 = 0 .. Pi);
Exercise 8
[i] Use Stokes theorem to integrate the 2-form omega1 over the closed cylinder x^2 + y^2 = 1 with top z = 1 and bottom z = 0.
ChangeFrame(R3):
omega1 := evalDG((x + 2*z)*dx &w dy + (z - x + y) &w dx &w dz + (x + 3*z)*dy &w dz);
ω1 ≔ x+2⁢z⁢dx⁢`^`⁢dy+z−x+y⁢dx⁢`^`⁢dz+x+3⁢z⁢dy⁢`^`⁢dz
[ii] Use Stokes theorem to integrate the 3-form omega2 over the surface of the unit cube in 4 dimensions.
ChangeFrame(R4):
omega2 := evalDG(w^2*dx &w dy &w dz - x^2*dy &w dz &w dw + z^2*dx &w dy &w dw + y^2*dx &w dz &w dw);
ω2 ≔ w2⁢dx⁢`^`⁢dy⁢`^`⁢dz+z2⁢dx⁢`^`⁢dy⁢`^`⁢dw+y2⁢dx⁢`^`⁢dz⁢`^`⁢dw−x2⁢dy⁢`^`⁢dz⁢`^`⁢dw
Part [i] We use cylindrical coordinates to integrate over the solid cylinder.
DGsetup([r, theta, z], N3):
phi := Transformation(N3, R3, [x = r*cos(theta), y = r*sin(theta), z = z]);
φ ≔ x=r⁢cos⁡θ,y=r⁢sin⁡θ,z=z
zeta := ExteriorDerivative(omega1);
ζ ≔ 2⁢dx⁢`^`⁢dy⁢`^`⁢dz
Convert to cylindrical coordinates.
eta := Pullback(phi, zeta);
η ≔ 2⁢r⁢dr⁢`^`⁢dtheta⁢`^`⁢dz
IntegrateForm(eta, r = 0 .. 1, theta = 0 .. 2*Pi, z = 0 .. 1);
2⁢π
Part [ii] We integrate the exterior derivative of omega2 over the solid cube.
zeta := ExteriorDerivative(omega2);
ζ ≔ −2⁢x−2⁢y+2⁢z−2⁢w⁢dx⁢`^`⁢dy⁢`^`⁢dz⁢`^`⁢dw
IntegrateForm(zeta, x = 0 .. 1, y = 0 .. 1, z = 0 .. 1, w = 0 .. 1);
−2
Exercise 9
Show that all of the following 1-forms, defined on the punctured plane are closed but that, by the de Rham theorem, only three are exact.
Hint: Integrate the forms over the unit circle -- by Stokes theorem the answer is zero, if the form is exact, and the de Rham theorem implies that the converse is true.
DGsetup([x, y], M):
omega1 := 4*x^3/(y^4 + x^4)*dx + 4*y^3/(y^4 + x^4)*dy;
ω1 ≔ 4⁢x3⁢dxy4+x4+4⁢y3⁢dyy4+x4
omega2 := 2*x*y^2/(y^4 + x^4)*dx - 2*x^2*y/(y^4 + x^4)*dy;
ω2 ≔ 2⁢x⁢y2⁢dxy4+x4−2⁢x2⁢y⁢dyy4+x4
omega3 := 3*x^2*y^3/(y^6 + x^6)*dx - 3*x^3*y^2/(y^6 + x^6)*dy;
ω3 ≔ 3⁢x2⁢y3⁢dxy6+x6−3⁢x3⁢y2⁢dyy6+x6
omega4 := 2*x*y^4/(x^2 + y^2)^2*dx + 2*y*x^4/(x^2 + y^2)^2*dy;
ω4 ≔ 2⁢x⁢y4⁢dxx2+y22+2⁢y⁢x4⁢dyx2+y22
First, we check that the forms in the list Omega are all closed.
Omega := [omega1, omega2, omega3, omega4]:
ExteriorDerivative(Omega);
0⁢dx⁢`^`⁢dy,0⁢dx⁢`^`⁢dy,0⁢dx⁢`^`⁢dy,0⁢dx⁢`^`⁢dy
Set up a parameterization of the unit circle.
DGsetup([t], N):
C := Transformation(N, M, [x = cos(t), y = sin(t)]);
C ≔ x=cos⁡t,y=sin⁡t
Integrate each of the forms in Omega around the unit circle.
Theta := Pullback(C, Omega);
Θ ≔ −4⁢sin⁡t⁢cos⁡t⁢2⁢cos⁡t2−1⁢dt2⁢cos⁡t4+1−2⁢cos⁡t2,−2⁢sin⁡t⁢cos⁡t⁢dt2⁢cos⁡t4+1−2⁢cos⁡t2,−3⁢sin⁡t2⁢cos⁡t2⁢dt1−3⁢cos⁡t2+3⁢cos⁡t4,2⁢sin⁡t⁢cos⁡t⁢2⁢cos⁡t2−1⁢dt
map(IntegrateForm, Theta, t = 0 .. 2*Pi);
0,0,−2⁢π,0
The forms omega1, omega2, and omega4 are all exact -- in fact, we can write them as the exterior derivatives of globally defined functions using the DeRhamHomotopy command.
eta1 := DeRhamHomotopy(omega1, initialpoint = [x = 1, y = 0], path = "zigzag");
η1 ≔ ln⁡y4+x4x4+4⁢ln⁡x⁢xx−1−4⁢ln⁡xx−1
simplify(eta1, symbolic);
ln⁡y4+x4
eta2 := DeRhamHomotopy(omega2, initialpoint = [x = 1, y = 0], path = "zigzag");
η2 ≔ −arctan⁡y2x2
eta4 := DeRhamHomotopy(omega4, integrallimits = [infinity, 1]);
η4 ≔ y2⁢x2x2+y2
It is a nice exercise to prove that the function eta2 is a smooth function, if we define its value to be Pi/2 at x = 0.
We check these results.
ExteriorDerivative(eta1) &minus omega1;
ExteriorDerivative(eta2) &minus omega2;
ExteriorDerivative(eta4) &minus omega4;
Download Help Document