DifferentialGeometry
Pushforward
pushforward a vector or a vector field by the Jacobian of a transformation
Calling Sequence
Parameters
Description
Examples
Pushforward(Phi, X, pt)
Pushforward(Phi, X)
Pushforward(Phi, Psi, X)
Phi
-
a transformation from a manifold M to a manifold N
X
a vector defined at a point pt of M; or a vector field on M
pt
a list specifying the coordinates of a point on M
Psi
a transformation from the manifold N to a manifold M, typically the inverse of the map Phi
In differential geometry, the Jacobian of a transformation Phi: M -> N is considered to be a linear transformation between tangent spaces Phi_*: T_pM -> T_qN, where p is a point of M and q = Phi(p). Let X be a tangent vector in T_pM. Then Y = Phi_*(X) may be defined in one of two ways. If X is viewed as a derivation on the smooth functions defined in a neighborhood of p in M, then Y = Phi_*(X) is the derivation on the smooth functions g defined in a neighborhood q of N by Y(g) = X(Phi o g). If X is viewed as the tangent vector to a curve alpha(t) at t = 0, then Y is the tangent vector to the curve beta = (Phi o alpha)(t) at t = 0.
The vector Y = Phi_*(X) is called the pushforward of X by Phi. The vector Y is computed by Pushforward(Phi, X, pt), where pt = [a1, a2, a3, ...] or pt = [x1 = a1, x2 = a2, x3 = a3, ...] are the coordinates of the point p.
In components, let J be the Jacobian matrix of Phi computed with respect to a system of coordinates x^i on M and y^j on N, and evaluated at p. Let a be the column vector whose entries are the components of X computed with respect to the coordinate basis on M. Then the matrix vector product b = J.a gives the components of Y = Phi_*(X) with respect to the coordinate basis on N.
The command Pushforward(Phi, X) returns a vector on N whose coefficients are functions of the coordinates on M. The result defines the pushforward of the vector field X at an arbitrary point of M.
If Phi is an invertible transformation with inverse Psi, then a vector field Y on N can be constructed from a vector field X on M by setting Y(q) = Phi_*(X(p)), where q is an arbitrary point of N and p = Psi(q). The command Pushforward(Phi, Psi, X) returns the vector field Y.
The Pushforward command can be applied to a list of vectors.
This command is part of the DifferentialGeometry package, and so can be used in the form Pushforward(...) only after executing the command with(DifferentialGeometry). It can always be used in the long form DifferentialGeometry:-Pushforward.
with⁡DifferentialGeometry:
Example 1.
Compute the pushforward of the vector X1, defined at the point [x = 1, y = 3] by the transformation Phi. Check this answer against the component calculation of the pushforward using the Jacobian matrix.
DGsetup⁡x,y,M:DGsetup⁡u,v,N:
Φ1≔Transformation⁡M,N,u=ln⁡x2+y2,v=xy
Φ1≔u=ln⁡x2+y2,v=xy
X1≔evalDG⁡a⁢D_x+b⁢D_y
X1≔a⁢D_x+b⁢D_y
Y1≔Pushforward⁡Φ1,X1,x=1,y=3
Y1≔a5+3⁢b5⁢D_u+a3−b9⁢D_v
J≔Tools:-DGinfo⁡Φ1,JacobianMatrix
J≔2⁢xx2+y22⁢yx2+y21y−xy2
J1≔eval⁡J,x=1,y=3
J1≔153513−19
C≔J1·Vector⁡a,b
C≔a5+3⁢b5a3−b9
The entries of the vector C agree with the components of the vector Y1.
Example 2.
Show that the points p1 = [1, 1] and p2 = [- 1, - 1], in M, map under the transformation Phi to the same point in N but that the pushforward of the vector field D_x by Phi at these two points are different.
Φ2≔Transformation⁡M,N,u=ln⁡x2+y2,v=xy
Φ2≔u=ln⁡x2+y2,v=xy
p1≔x=1,y=1
p2≔x=−1,y=−1
ApplyTransformation⁡Φ2,p1,ApplyTransformation⁡Φ2,p2
u=ln⁡2,v=1,u=ln⁡2,v=1
Pushforward⁡Φ2,D_x,p1,Pushforward⁡Φ2,D_x,p2
D_u+D_v,−D_u−D_v
Example 3.
Compute the pushforward of the vector field X3 by the transformation Phi3 at an arbitrary point. Here we use the second calling sequence for Pushforward.
Φ3≔Transformation⁡M,N,u=ln⁡x2+y2,v=xy
Φ3≔u=ln⁡x2+y2,v=xy
X3≔evalDG⁡x2⁢D_x+x2⁢D_y
X3≔x2⁢D_x+x2⁢D_y
Pushforward⁡Φ3,X3
2⁢x2⁢x+y⁢D_ux2+y2−x2⁢x−y⁢D_vy2
Example 4.
Express the vector field X4 in polar coordinates. First set up the polar coordinate system and define the transformation Phi4 from polar to Cartesian coordinates. Calculate the inverse transformation. Use the third calling sequence for Pushforward.
DGsetup⁡r,θ,P:
X4≔evalDG⁡yx⁢D_x−2⁢D_y
X4≔y⁢D_xx−2⁢D_y
Φ4≔Transformation⁡P,M,x=r⁢cos⁡θ,y=r⁢sin⁡θ
Φ4≔x=r⁢cos⁡θ,y=r⁢sin⁡θ
_EnvExplicit≔true:
invPhi4≔InverseTransformation⁡Φ4
invPhi4≔r=x2+y2,θ=arctan⁡yx2+y2,xx2+y2
Pushforward⁡invPhi4,Φ4,X4assuming0<r
−sin⁡θ⁢D_r+−cos⁡θ−sec⁡θ⁢D_θr
Example 5.
Find the tangent vector to the curve t -> [x = t^2, y = t^3, z = t^3].
DGsetup⁡t,R:DGsetup⁡x,y,z,E3:
C≔Transformation⁡R,E3,x=t2,y=t3,z=t3
C≔x=t2,y=t3,z=t3
Pushforward⁡C,D_t
2⁢t⁢D_x+3⁢t2⁢D_y+3⁢t2⁢D_z
Example 6.
Find a basis for the tangent plane to the surface z = x^3 - 3*x*y^2 at each point [x, y, z].
DGsetup⁡x,y,E2:DGsetup⁡x,y,z,E3:
S≔Transformation⁡E2,E3,x=x,y=y,z=x3−3⁢x⁢y2
S≔x=x,y=y,z=x3−3⁢y2⁢x
Pushforward⁡S,D_x,D_y
D_x+3⁢x2−3⁢y2⁢D_z,D_y−6⁢x⁢y⁢D_z
Example 7.
Find the projection of the vector field X5 under the map Phi5.
DGsetup⁡u,v,E2:DGsetup⁡x,y,z,E3:
Φ5≔Transformation⁡E3,N,u=xz,v=yz
Φ5≔u=xz,v=yz
X5≔evalDG⁡1x2+y2+z2⁢x2⁢y⁢D_x+y⁢z2⁢D_y−x⁢y⁢z⁢D_z
X5≔y⁢x2⁢D_xx2+y2+z2+z2⁢y⁢D_yx2+y2+z2−z⁢x⁢y⁢D_zx2+y2+z2
Pushforward⁡Φ5,X5
2⁢y⁢x2⁢D_uz⁢x2+y2+z2+y⁢x⁢y+z2⁢D_vz⁢x2+y2+z2
The goal now is to rewrite the coefficients of this vector field in terms of the variables u and v. The map Phi5 is not invertible but it does admit a right inverse Sigma.
Σ≔Transformation⁡N,E3,x=u,y=v,z=1
Σ≔x=u,y=v,z=1
ComposeTransformations⁡Φ5,Σ
u=u,v=v
We use this map as the second argument in the third calling sequence for Pushforward.
Pushforward⁡Φ5,Σ,X5
2⁢v⁢u2⁢D_uu2+v2+1+v⁢u⁢v+1⁢D_vu2+v2+1
Example 8.
The Pushforward command can also be applied to a list of vectors.
ChangeFrame⁡M
N
Pushforward⁡Φ1,D_x,D_y,x=1,y=3
D_u5+D_v3,3⁢D_u5−D_v9
See Also
ComposeTransformations
DGinfo
PullbackVector
Pullback
Transformation
Download Help Document