Vector fields and flows — the tools that draw time evolution
Vector fields and flows — the tools that draw time evolution
A smooth vector field on a manifold is the right-hand side of an ODE, its flow draws time evolution, and the Lie bracket measures the non-commutativity of two flows.
Opening
By the end of the previous chapter we knew what a tangent vector at one point of the configuration manifold is. This chapter widens the view to a quantity that specifies a tangent vector at every point at once — a vector field. A vector field is itself the right-hand side of an equation of motion; its integral curves are the trajectories of every mechanical system we will meet; and the non-commutativity of two vector fields is the bedrock of the differential forms and Lie derivatives that arrive in the next chapter. When this chapter is over, the reader should be able to translate a one-line ODE into the picture “a flow on a manifold” without thinking.
Main 1 — A vector field: a direction at every point
A vector field on a smooth manifold is a smooth assignment of a tangent vector to every point . In a coordinate chart with the standard basis , we write
(we keep using Einstein’s summation convention). The are smooth component functions. Picture an arrow planted at every point of , and you have the right mental image.
The real job of a vector field is to be the right-hand side of an ODE. A curve is said to follow when
Stripped of coordinates this reads . Vector field = right-hand side of the equations of motion.
The friendliest example: the plane pendulum. On the phase space define the vector field
and its flow is exactly the pendulum’s trajectory. The first component encodes the tautology ” changes at rate ”; the second component carries the real physics, .
Main 2 — Integral curves and the flow
Given an initial point , existence and uniqueness for ODEs (which we accept as a fact in this chapter) guarantees a unique curve satisfying , , at least for a short time. We call the integral curve of through .
Now turn the initial point into a variable and fix the time . Then the map
is defined. The family is called the flow of . By construction the flow satisfies the group property
In words: “flow for seconds, then for seconds” equals “flow for seconds in one go”. This is automatic as long as does not depend on time.
The linear case makes everything concrete. Let and for an matrix . The solution of is, famously,
so the flow is just the matrix exponential. The group property falls out for free. The teaser planted in chapter 0 — “to know where an ODE goes, you eventually need the matrix exponential” — has just been re-dressed as a statement about flows on a general manifold.
Main 3 — Lie bracket: do the two flows commute?
Now place two vector fields on the same manifold. The natural question: do their flows commute? Is the same map as ?
The quantity that measures the answer is the Lie bracket . In coordinates
and, equivalently, for any smooth function ,
where is the smooth function obtained by letting a vector field act on as a first-order differential operator. So vector fields can be seen as first-order differential operators, and the commutator of two such operators turns out to be another first-order operator — that operator is exactly .
A small worked example. On take
so and . Plug into the formula: , . Therefore
Geometric meaning: start at a point, flow along for time , then along for , then back along for , then back along for . If you land exactly where you started, the two flows commute. In general you land at
so the leading offset is . Non-zero Lie bracket = the flows do not commute. This single sentence supports every formula about the exterior derivative and the Lie derivative that the next chapter will state.
In Python
# 2D vector field X(x,y) = (-y, x) (the generator of rotations).
# Integrate from several initial points with a hand-coded RK4
# and overlay the integral curves on plt.streamplot of X — visually
# confirm that the integral curves match the streamlines.
import numpy as np
import matplotlib.pyplot as plt
def X(p): # vector field: rotation generator
x, y = p
return np.array([-y, x])
def rk4_step(p, dt): # standard 4th-order Runge-Kutta
k1 = X(p)
k2 = X(p + 0.5 * dt * k1)
k3 = X(p + 0.5 * dt * k2)
k4 = X(p + dt * k3)
return p + dt * (k1 + 2*k2 + 2*k3 + k4) / 6
dt, T = 0.02, 6.0
N = int(T / dt)
initials = [(1.0, 0.0), (1.5, 0.0), (2.0, 0.0), (0.0, 1.2)]
curves = []
for q0 in initials: # one integral curve per initial point
traj = np.empty((N + 1, 2))
traj[0] = q0
for n in range(N):
traj[n+1] = rk4_step(traj[n], dt)
curves.append(traj)
# Lay down the streamlines of X, then overlay the RK4 trajectories
gx, gy = np.meshgrid(np.linspace(-2.5, 2.5, 25), np.linspace(-2.5, 2.5, 25))
plt.streamplot(gx, gy, -gy, gx, density=1.0, color="0.7")
for c in curves:
plt.plot(c[:, 0], c[:, 1])
plt.gca().set_aspect("equal"); plt.xlabel("x"); plt.ylabel("y"); plt.show()
The integral curves of a rotation generator should be circles, and the RK4 trajectories overlaid on the streamplot should trace them exactly — if they do, the picture “vector field equals flow” is in hand.
To the next chapter
Chapter 6: Differential forms and the exterior derivative introduces the objects dual to vector fields — 1-forms and their exterior derivatives. Where the Lie bracket measures how badly two flows fail to commute, the exterior derivative measures how badly a 1-form fails to “close up” around a small loop. Cartan’s magic formula, which knots these two notions together, is the destination of the next chapter.