DifferentialGeometry Lessons
Lesson 8: The Pullback of a Differential Form by a Transformation
|
Overview
|
|
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.
|
|
|
Pullback
|
|
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):
|
Define a transformation psi, a 1-form alpha and a point p.
N >
|
psi := Transformation(M, N,[u = (x^2 + y^2), v = z^2 - y^2]);
|
| (2.1) |
M >
|
alpha := evalDG(1/2*v*du - 1/2*u*dv);
|
| (2.2) |
N >
|
p := [x = 2, y = 3, z = 4];
|
| (2.3) |
We pull alpha back using psi and evaluate the result at p.
N >
|
theta := Pullback(psi, alpha);
|
| (2.4) |
M >
|
theta1 := eval(theta, p);
|
| (2.5) |
Let's recalculate the pullback of the form alpha using the Jacobian of psi. First, we need the image of p under psi.
M >
|
q := ApplyTransformation(psi, p);
|
| (2.6) |
Evaluate alpha at q.
N >
|
alpha1 := eval(alpha, q);
|
| (2.7) |
Use DGinfo to get the coefficients of alpha1 and the Jacobian J of phi.
N >
|
A := Tools:-DGinfo(alpha1, "CoefficientList", "all");
|
| (2.8) |
N >
|
J := eval(Tools:-DGinfo(psi, "JacobianMatrix"), p);
|
| (2.9) |
Calculate the coefficients of the pullback of alpha1 by phi using matrix multiplication.
N >
|
B := LinearAlgebra:-Transpose(Vector(A)).J;
|
| (2.10) |
N >
|
theta2 := DGzip(B, [dx, dy, dz], "plus");
|
| (2.11) |
|
|
Application 1: Integral Manifolds of Exterior Differential Systems
|
|
M >
|
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):
|
M1 >
|
Omega := evalDG([dy - y1*dx, dy1 - y2*dx, dy2 - y3*dx]);
|
| (3.1) |
M1 >
|
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)]);
|
| (3.2) |
N1 >
|
Pullback(sigma, Omega);
|
| (3.3) |
Example 2. This EDS is the canonical contact system on the jet space J^1(R^2, R).
N1 >
|
DGsetup([x, y], N2):
|
N2 >
|
DGsetup([x, y, u, p, q, r, s, t], M2):
|
M2 >
|
Omega := evalDG([du - p*dx - q*dy, dp - r*dx - s*dy, dq - s*dx - t*dy]);
|
| (3.4) |
M2 >
|
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)]);
|
| (3.5) |
N2 >
|
Pullback(sigma, Omega);
|
| (3.6) |
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)].
M1 >
|
Omega := evalDG([dy - y1*dx, dy1 - y2*dx, dy2 - y3*dx, dy3 - y*dx]);
|
| (3.7) |
M1 >
|
sigma := Transformation(N1, M1, [x = x, y = f(x), y1 = g(x), y2 = h(x), y3 = k(x)]);
|
| (3.8) |
Pullback the forms in the list Omega using sigma. Extract the coefficients of the resulting forms to obtain a system of 1st order ODEs.
N1 >
|
Theta := Pullback(sigma, Omega);
|
| (3.9) |
N1 >
|
DE := map(op, map(Tools:-DGinfo, Theta, "CoefficientSet"));
|
| (3.10) |
Use dsolve to solve these ODEs.
| (3.11) |
Substitute back into the original transformation sigma.
N1 >
|
Sigma := eval(sigma, Soln);
|
| (3.12) |
Check that Sigma annihilates all the forms in the EDS Omega.
N1 >
|
Pullback(Sigma, Omega);
|
| (3.13) |
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)].
N1 >
|
DGsetup([x, y], N2):
|
N2 >
|
DGsetup([x, y, u, ux, uy], M2):
|
M2 >
|
Omega := evalDG([du - ux*dx - uy*dy, dux &w dx, duy &w dy]);
|
| (3.14) |
M2 >
|
sigma := Transformation(N2, M2, [x = x, y = y, u = f(x, y), ux = g(x, y), uy = h(x, y)]);
|
| (3.15) |
Pullback the forms in the list Omega using sigma. Extract the coefficients of the resulting forms to obtain a system of 1st order PDEs.
N2 >
|
Theta := Pullback(sigma, Omega);
|
| (3.16) |
N2 >
|
DE := map(op, map(Tools:-DGinfo, Theta, "CoefficientSet"));
|
| (3.17) |
Use pdsolve to integrate this system of PDEs.
N2 >
|
Soln := pdsolve(DE);
|
| (3.18) |
|
|
Integration
|
|
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.
N2 >
|
with(DifferentialGeometry):
|
R1 >
|
DGsetup([x, y, z], R3):
|
Define the 1-form omega1.
R3 >
|
omega1 := evalDG(x^2*dx - z^2*dy + y^2*dz);
|
| (4.1) |
Define the curve C in R3 as a transformation from R1 to R3.
R3 >
|
C := Transformation(R1, R3, [ x = sin(t), y = t ,z = cos(t)]);
|
| (4.2) |
Pull the 1-form back using the curve C and integrate the resulting form on R1 from t = 0 to t = 2*Pi.
R1 >
|
eta1 := Pullback(C, omega1);
|
| (4.3) |
R1 >
|
IntegrateForm(eta1, t = 0.. 2*Pi);
|
| (4.4) |
[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.
R1 >
|
omega2 := evalDG(x^2*z*dx &w dy - z^3*dx &w dz);
|
| (4.5) |
We use polar coordinates to parameterize the surface. (theta was previously defined, so we need to unassign it here.)
| (4.6) |
R3 >
|
DGsetup([r, theta], R2):
|
R2 >
|
S := Transformation(R2, R3, [x = r*cos(theta), y = r*sin(theta), z = r^2]);
|
| (4.7) |
R2 >
|
eta2 := Pullback(S, omega2);
|
| (4.8) |
R2 >
|
IntegrateForm(eta2, r = 1 .. 2, theta = 0 .. 2*Pi);
|
| (4.9) |
[iii] Volume Integral. Compute the integral of the 3-form omega3 over the region x + y + z + w = 1, x, y, z, w > =0.
R2 >
|
DGsetup([x, y, z, w], R4):
|
R4 >
|
DGsetup([r, s, t], N):
|
N >
|
omega3 := (x*y)/(1 + z)*evalDG(dx &w dy &w dz - dy &w dz &w dw);
|
| (4.10) |
The transformation phi parameterizes the region of integration.
R4 >
|
phi := Transformation(N, R4, [x = r, y = s, z = t, w = 1 - r - s - t]);
|
| (4.11) |
Pullback omega3 by phi and integrate the result.
N >
|
eta3 := Pullback(phi, omega3);
|
| (4.12) |
N >
|
IntegrateForm(eta3, r = 0 .. 1, s = 0 .. r, t = 0 .. r + s);
|
| (4.13) |
|
|
Stokes Theorem
|
|
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.
N >
|
restart: with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z], R3):
|
R3 >
|
DGsetup([rho, theta, phi], B3):
|
B3 >
|
DGsetup([theta, phi], S2):
|
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);
|
| (5.1) |
The transformation F parameterizes the boundary N of the ball.
R3 >
|
F := Transformation(S2, R3, [x = cos(theta)*sin(phi), y = sin(theta)*sin(phi), z = cos(phi)]);
|
| (5.2) |
The transformation G will be used to integrate omega over the ball M.
S2 >
|
G := Transformation(B3, R3, [x = rho*cos(theta)*sin(phi), y = rho*sin(theta)*sin(phi), z = rho*cos(phi)]);
|
| (5.3) |
B3 >
|
omega1 := Pullback(F, omega);
|
| (5.4) |
Calculate the left hand side of Stokes' formula.
S2 >
|
StokesLHS := IntegrateForm(omega1, theta = 0 .. 2*Pi, phi = 0..Pi);
|
| (5.5) |
Calculate the exterior derivative of omega and integrate over the ball M to obtain the right hand side of Stokes' formula.
S2 >
|
omega2 := Pullback(G, ExteriorDerivative(omega));
|
| (5.6) |
B3 >
|
StokesRHS := IntegrateForm(omega2, rho = 0 .. 1, theta = 0 .. 2*Pi, phi = 0 .. Pi);
|
| (5.7) |
|
|
The homotopy operator for the de Rham complex -- the cylinder construction.
|
|
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).
B3 >
|
with(DifferentialGeometry):
|
B3 >
|
DGsetup([x, y, z], M):
|
M >
|
DGsetup([t, x, y, z], N):
|
Define a form omega on M and check that it is closed.
M >
|
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));
|
| (6.1) |
M >
|
ExteriorDerivative(omega);
|
| (6.2) |
Define the transformation F.
M >
|
F := Transformation(N, M, [x = x, y = y, z = t*z]);
|
| (6.3) |
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.
N >
|
f := Transformation(N, M, [x = x, y = y, z = 0]);
|
| (6.4) |
N >
|
i_0 := Transformation(M, N, [x = x, y = y, z = z, t = 0]);
|
| (6.5) |
M >
|
omega0 := Pullback(i_0, Pullback(f, omega));
|
| (6.6) |
Pullback omega by F and apply the DeRhamHomotopy operator to the result.
M >
|
omega_t := Pullback(F, omega);
|
| (6.7) |
N >
|
eta := DeRhamHomotopy(omega_t, cylinderconstruction = t);
|
| (6.8) |
| (6.9) |
We have succeeded in writing omega as the sum of a form in the xy-plane and an exact form on M.
M >
|
omega &minus (omega0 &plus ExteriorDerivative(eta));
|
| (6.10) |
|
|
Exercises
|
|
|
Exercise 1
|
|
Calculate the pullback of the form alpha with respect to the map phi.
M >
|
with(DifferentialGeometry):
|
M >
|
DGsetup([x, y, z], M):
|
[i]
N >
|
phi1 := Transformation(M, N, [u = x/z, v = y/z]);
|
| (7.1.1) |
| (7.1.2) |
[ii]
M >
|
phi2 := Transformation(M, N, [u = 3, v = 4]);
|
| (7.1.3) |
M >
|
alpha2 := evalDG(du - dv);
|
| (7.1.4) |
[iii]
N >
|
phi3 := Transformation(M, N, [u = x^2, v = y^2]);
|
| (7.1.5) |
M >
|
alpha3 := evalDG(du - dv);
|
| (7.1.6) |
|
Solution
|
|
Part [i]
N >
|
Pullback(phi1, alpha1);
|
| (7.1.1.1) |
Part [ii]
M >
|
Pullback(phi2, alpha2);
|
| (7.1.1.2) |
Part [iii]
M >
|
Pullback(phi3, alpha3);
|
| (7.1.1.3) |
|
|
|
Exercise 2
|
|
Use the Pullback command to calculate the Jacobian determinant of the transformation from Cartesian to spherical coordinates.
|
Solution
|
|
The Jacobian determinant can be calculated as the coefficient of the pullback of the standard volume form in Cartesian coordinates.
M >
|
restart: with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z], "cart"):
|
cart >
|
DGsetup([rho, phi, theta], "spher"):
|
Define the coordinate transformation from spherical to Cartesian coordinates.
spher >
|
T := Transformation("spher", "cart", [x = rho*cos(theta)*sin(phi), y = rho*sin(theta)*sin(phi), z = rho*cos(phi)]);
|
| (7.2.1.1) |
Define the standard volume form in Cartesian coordinates with the DGvolume command.
spher >
|
nu1 := Tools:-DGvolume("form", 1, "cart");
|
| (7.2.1.2) |
cart >
|
nu2 := Pullback(T, nu1);
|
| (7.2.1.3) |
Use DGinfo to obtain the coefficient of nu2.
spher >
|
Tools:-DGinfo(nu2, "CoefficientSet")[1];
|
| (7.2.1.4) |
|
|
|
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.
spher >
|
restart: with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z, w], M):
|
N >
|
phi := Transformation(M, N, [u = x*y + z*w, v = x*z + y*w]);
|
| (7.3.1) |
|
Solution
|
|
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.
M >
|
omega := Pullback(phi, du &w dv);
|
| (7.3.1.1) |
Set the coefficients of omega to zero and solve the resulting set of equations.
M >
|
Eq := Tools:-DGinfo(omega, "CoefficientSet");
|
| (7.3.1.2) |
M >
|
solve(Eq, {x, u, z, w});
|
| (7.3.1.3) |
The map phi fails to be a submersion on a transverse pair of 2-planes.
|
|
|
Exercise 4
|
|
M >
|
restart: with(DifferentialGeometry):
|
[i] Show that the map Sigma1 defines an integral manifold for the EDS Omega1 (from Bryant, Chern et al. Exterior Differential Systems, page 53).
N >
|
DGsetup([x, y, z, phi], M):
|
M >
|
Omega1 := evalDG([dy - sin(phi)*dx, dz - cos(phi)*dx]);
|
| (7.4.1) |
M >
|
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]);
|
| (7.4.2) |
[ii] Find the integral manifolds for the EDS Omega2, assuming that u, v and q are functions of x and y.
N >
|
DGsetup([x, y, u, v, q], M):
|
M >
|
Omega2 := evalDG([du - q*dy, dv + q*dx]);
|
| (7.4.3) |
|
Solution
|
|
Part [i] Simply pullback the differential forms in Omega1 by Sigma1 and check that the results are zero forms.
M >
|
Pullback(Sigma1, Omega1);
|
| (7.4.1.1) |
Part [ii] Define a transformation Sigma2 from N to M with the coordinates u ,v, and w as arbitrary functions of x and y.
N >
|
Sigma2 := Transformation(N, M, [x = x, y = y, u = f(x, y), v = g(x, y), q = h(x, y)]);
|
| (7.4.1.2) |
Pullback the forms in Omega2 by Sigma2 and extract the coefficients of the results.
N >
|
Theta := Pullback(Sigma2, Omega2);
|
| (7.4.1.3) |
N >
|
Eq := map(op, map(Tools:-DGinfo, Theta, "CoefficientSet"));
|
| (7.4.1.4) |
Use pdsolve to solve the pde in the list Eq.
N >
|
Soln := pdsolve(Eq, {f, g, h});
|
| (7.4.1.5) |
Back substitute this solution into Sigma2. Check that Sigma3 is an integral manifold.
N >
|
Sigma3 := eval(Sigma2, Soln);
|
| (7.4.1.6) |
N >
|
Pullback(Sigma3, Omega2);
|
| (7.4.1.7) |
|
|
|
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.
N >
|
restart: with(DifferentialGeometry):
|
M >
|
DGsetup([u, v, w], N):
|
N >
|
alpha1 := evalDG(w*du &w dv + u*v*dv &w dw);
|
| (7.5.1) |
N >
|
alpha2 := evalDG(u*dv - v^2*dw);
|
| (7.5.2) |
N >
|
alpha3 := evalDG(u*v*du - w^2*dv);
|
| (7.5.3) |
N >
|
phi := Transformation(M, N, [u = x/y, v = y/z, w = x*y/z]);
|
| (7.5.4) |
M >
|
X := y*D_x + z*D_y - x^2*D_z;
|
| (7.5.5) |
M >
|
Y := evalDG(z*y*D_x + y*D_y + x^2*D_z);
|
| (7.5.6) |
M >
|
pt1 := [x = 1, y = 2, z = 3];
|
| (7.5.7) |
M >
|
pt2 := [x = 3, y = 1, z = -2];
|
| (7.5.8) |
|
Solution
|
|
Part [i]
N >
|
PullbackDefinition := proc(phi, alpha, X, Y, pt)
|
N >
|
local a, a1, a2, a3, a4, b, b1, b2, b3, b4, c;
|
N >
|
a1 := Pullback(phi, alpha);
|
N >
|
a := Hook([a3, a4], a2);
|
N >
|
b1 := Pushforward(phi, a3, pt);
|
N >
|
b2 := Pushforward(phi, a4, pt);
|
N >
|
b3 := ApplyTransformation(phi, pt);
|
N >
|
b4 := eval(alpha, b3);
|
N >
|
b := Hook([b1, b2], b4);
|
M >
|
PullbackDefinition(phi, alpha1, X, Y, pt1);
|
| (7.5.1.1) |
N >
|
PullbackDefinition(phi, alpha1, X, Y, pt2);
|
| (7.5.1.2) |
Part [ii]
N >
|
PullbackHomomorphism := proc(phi, alpha, beta)
|
N >
|
local a1, a, b1, b2, b;
|
N >
|
a1 := alpha &wedge beta;
|
N >
|
a := Pullback(phi, a1):
|
N >
|
b1 := Pullback(phi, alpha);
|
N >
|
b2 := Pullback(phi, beta);
|
N >
|
PullbackHomomorphism(phi, alpha1, alpha2);
|
| (7.5.1.3) |
M >
|
PullbackHomomorphism(phi, alpha2, alpha3);
|
| (7.5.1.4) |
Part [iii]
N >
|
PullbackExteriorDerivative := proc(phi, alpha)
|
N >
|
a1 := ExteriorDerivative(alpha);
|
N >
|
a := Pullback(phi, a1);
|
N >
|
b1 := Pullback(phi, alpha);
|
N >
|
b := ExteriorDerivative(b1);
|
M >
|
PullbackExteriorDerivative(phi, alpha1);
|
| (7.5.1.5) |
M >
|
PullbackExteriorDerivative(phi, alpha2);
|
| (7.5.1.6) |
|
|
|
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.)
M >
|
with(DifferentialGeometry):
|
M >
|
DGsetup([x1, x2, x3], G):
|
M >
|
A := Matrix([[exp(-x1), -x1*exp(-x1), x2], [0, exp(-x1), x3], [0, 0, 1]]);
|
| (7.6.1) |
|
Solution
|
|
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
G >
|
MultiplicationRule := [z3 = (y3 + x3*exp(x1))/exp(x1), z2 = (y2 - x1*y3 + x2*exp(x1))/exp(x1), z1 = x1 + y1];
|
| (7.6.1.1) |
The inverse of [x1, x2, x3] is given by
G >
|
InverseRule := [y1 = -x1, y2 = -x1*x3*exp(x1) - x2*exp(x1), y3 = -x3*exp(x1)];
|
| (7.6.1.2) |
Here is the left multiplication map by the inverse of [a1, a2, a3].
G >
|
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]));
|
| (7.6.1.3) |
G >
|
LeftMultByInverse := Transformation(G, G, eval(multL, [z1 = x1, z2 = x2, z3 = x3]));
|
| (7.6.1.4) |
Here are the left invariant 1-forms at [a1, a2, a3].
G >
|
OmegaLatA := eval(Pullback(LeftMultByInverse, [dx1, dx2, dx3]), [x1 = 0, x2 = 0, x3 = 0]);
|
| (7.6.1.5) |
Here are the left invariant 1-forms at [x1, x2, x3].
G >
|
OmegaL := eval(OmegaLatA, [a1 = x1, a2 = x2, a3 = x3]);
|
| (7.6.1.6) |
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.
G >
|
multR := simplify(eval(MultiplicationRule, [y1 = -a1, y2 = -a1*a3*exp(a1) - a2*exp(a1), y3 = -a3*exp(a1)]));
|
| (7.6.1.7) |
G >
|
RightMultByInverse := Transformation(G, G, eval(multR, [z1 = x1, z2 = x2, z3 = x3]));
|
| (7.6.1.8) |
G >
|
OmegaRatA := eval(Pullback(RightMultByInverse, [dx1, dx2, dx3]), [x1 = 0, x2 = 0, x3 = 0]);
|
| (7.6.1.9) |
G >
|
OmegaR := eval(OmegaRatA, [a1 = x1, a2 = x2, a3 = x3]);
|
| (7.6.1.10) |
|
|
|
Exercise 7
|
|
G >
|
restart: with(DifferentialGeometry):
|
>
|
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.
R4 >
|
omega1 := evalDG(z*x*dx + x*w*dy + y*w*dz + x*y*dw);
|
| (7.7.1) |
[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.
R4 >
|
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);
|
| (7.7.2) |
[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.
R4 >
|
omega3 := evalDG(z*dx &w dy &w dw);
|
| (7.7.3) |
R4 >
|
ExteriorDerivative(omega3);
|
| (7.7.4) |
|
Solution
|
|
Part [i] Parameterize the curve C with the coordinate x, pullback omega1 and integrate with respect to x from -1 to 1.
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]);
|
| (7.7.1.1) |
N >
|
eta := Pullback(C, omega1);
|
| (7.7.1.2) |
N >
|
IntegrateForm(eta, x = -1 .. 1);
|
| (7.7.1.3) |
Part [ii] Parameterize the torus T with the angular coordinates theta and phi, then pullback omega2 and integrate.
N >
|
DGsetup([theta, phi], N):
|
N >
|
S := Transformation(N, R4, [x = sin(theta), y = cos(theta), z = cos(phi), w = sin(phi)]);
|
| (7.7.1.4) |
N >
|
eta := Pullback(S, omega2);
|
| (7.7.1.5) |
N >
|
IntegrateForm(eta, theta = 0 .. 2*Pi, phi = 0 .. 2*Pi);
|
| (7.7.1.6) |
Part [iii] By Stokes Theorem the value of the integral is 0. We check this by a direct computation.
N >
|
DGsetup([theta1, theta2, theta3], N):
|
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)]);
|
| (7.7.1.7) |
N >
|
eta := Pullback(V, z*dx &w dy &w dw);
|
| (7.7.1.8) |
N >
|
IntegrateForm(eta, theta1 = 0 .. 2*Pi, theta2 = 0 .. 2*Pi, theta3 = 0 .. Pi);
|
| (7.7.1.9) |
|
|
|
Exercise 8
|
|
N >
|
restart: with(DifferentialGeometry):
|
>
|
DGsetup([x, y, z], R3):
|
R3 >
|
DGsetup([x, y, z, w], R4):
|
[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.
R3 >
|
omega1 := evalDG((x + 2*z)*dx &w dy + (z - x + y) &w dx &w dz + (x + 3*z)*dy &w dz);
|
| (7.8.1) |
[ii] Use Stokes theorem to integrate the 3-form omega2 over the surface of the unit cube in 4 dimensions.
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);
|
| (7.8.2) |
|
Solution
|
|
Part [i] We use cylindrical coordinates to integrate over the solid cylinder.
R4 >
|
DGsetup([r, theta, z], N3):
|
N3 >
|
phi := Transformation(N3, R3, [x = r*cos(theta), y = r*sin(theta), z = z]);
|
| (7.8.1.1) |
N3 >
|
zeta := ExteriorDerivative(omega1);
|
| (7.8.1.2) |
Convert to cylindrical coordinates.
R3 >
|
eta := Pullback(phi, zeta);
|
| (7.8.1.3) |
N3 >
|
IntegrateForm(eta, r = 0 .. 1, theta = 0 .. 2*Pi, z = 0 .. 1);
|
| (7.8.1.4) |
Part [ii] We integrate the exterior derivative of omega2 over the solid cube.
N3 >
|
zeta := ExteriorDerivative(omega2);
|
| (7.8.1.5) |
R4 >
|
IntegrateForm(zeta, x = 0 .. 1, y = 0 .. 1, z = 0 .. 1, w = 0 .. 1);
|
| (7.8.1.6) |
|
|
|
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.
M >
|
omega1 := 4*x^3/(y^4 + x^4)*dx + 4*y^3/(y^4 + x^4)*dy;
|
| (7.9.1) |
M >
|
omega2 := 2*x*y^2/(y^4 + x^4)*dx - 2*x^2*y/(y^4 + x^4)*dy;
|
| (7.9.2) |
M >
|
omega3 := 3*x^2*y^3/(y^6 + x^6)*dx - 3*x^3*y^2/(y^6 + x^6)*dy;
|
| (7.9.3) |
M >
|
omega4 := 2*x*y^4/(x^2 + y^2)^2*dx + 2*y*x^4/(x^2 + y^2)^2*dy;
|
| (7.9.4) |
|
Solution
|
|
First, we check that the forms in the list Omega are all closed.
M >
|
Omega := [omega1, omega2, omega3, omega4]:
|
M >
|
ExteriorDerivative(Omega);
|
| (7.9.1.1) |
Set up a parameterization of the unit circle.
N >
|
C := Transformation(N, M, [x = cos(t), y = sin(t)]);
|
| (7.9.1.2) |
Integrate each of the forms in Omega around the unit circle.
N >
|
Theta := Pullback(C, Omega);
|
| (7.9.1.3) |
N >
|
map(IntegrateForm, Theta, t = 0 .. 2*Pi);
|
| (7.9.1.4) |
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.
N >
|
eta1 := DeRhamHomotopy(omega1, initialpoint = [x = 1, y = 0], path = "zigzag");
|
| (7.9.1.5) |
M >
|
simplify(eta1, symbolic);
|
| (7.9.1.6) |
M >
|
eta2 := DeRhamHomotopy(omega2, initialpoint = [x = 1, y = 0], path = "zigzag");
|
| (7.9.1.7) |
M >
|
eta4 := DeRhamHomotopy(omega4, integrallimits = [infinity, 1]);
|
| (7.9.1.8) |
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.
M >
|
ExteriorDerivative(eta1) &minus omega1;
|
| (7.9.1.9) |
M >
|
ExteriorDerivative(eta2) &minus omega2;
|
| (7.9.1.10) |
M >
|
ExteriorDerivative(eta4) &minus omega4;
|
| (7.9.1.11) |
|
|
|
�Ian M. Anderson 2006
|