# Geometric algebra and classical mechanics

Posted on December 25, 2022

$\def\innerprodab{\overset{\rightarrow}{a} \cdot \overset{\rightarrow}{b}}$ $\def\crossprodab{\overset{\rightarrow}{a} \times \overset{\rightarrow}{b}}$ $\def\outerprodab{\overset{\rightarrow}{a} \wedge \overset{\rightarrow}{b}}$ $\def\geoprodab{\overset{\rightarrow}{a} \overset{\rightarrow}{b}}$ $\def\geoprodba{\overset{\rightarrow}{b} \overset{\rightarrow}{a}}$

## Introduction

The development of physics has always gone hand-in-hand with a refinement of the mathematical language used to describe physical situations, or models thereof. This blog post is an introduction to geometric algebra (henceforth GA), a coordinate-free algebra which its proponents purport to be a unifying language of physics, and an exposition of its methods through consideration of a number of problems from classical mechanics. The material is drawn from standard texts in the literature - see the bibliography.

I have only included the material I deemed necessary to formulate the chosen example problems. As such, much that a mathematician might consider essential (such as the relation between geometric algebra and Clifford algebras, and various group theoretic considerations) has been omitted, and several results are given without proof (although I also explicitly show some tedious algebraic steps others might pass over in silence). These are generally not advanced, and there seems to be little sense in simply reformulating statements that have been covered so admirably in the literature. As a result the discussion that follows is more of a review of geometric algebra’s application to classical mechanics, with some additional ruminations, than anything else. I hope that its conciseness makes it a stimulating introduction. If you find any typos or other errors, feel free to contact me, and I will update this page.

A word about notation is in order. Vectors are written with arrows (e.g. $\overset{\rightarrow}{v}$), and bivectors, which we shall come across in the first section, are bold-faced capitals, like **B**. The pseudoscalars for the different algebras are written as italic capitals, e.g. *I*.

## Theory

### The outer product

In addition to the well-known dot or inner product of two vectors (a mathematician might complain that these are different things - I direct you to e.g. this discussion to understand the difference, and note that sometimes they are in fact the same thing), which introduces the concept of their relative direction, it is useful to consider the outer product, also called the exterior or wedge product, of two vectors, denoted by

$$\outerprodab = \textbf{B}$$

where **B** is a bivector, or vector with two orientations. Geometrically, this product may be associated with the orientated parallelogram obtained by the vector $\overset{\rightarrow}{a}$ ‘sweeping out’ an area along $\overset{\rightarrow}{b}$, or vice-versa (see Figure 1 - note the lack of a reference system). The ambiguity of which vector does the ‘sweeping’ yields two opposite orientations,

$$ \outerprodab = -\overset{\rightarrow}{b} \wedge \overset{\rightarrow}{a} = \textbf{B}$$

i.e. the outer product is anticommutative - see the following image for a pictorial representation of this fact:

The magnitude of **B**, denoted by ∥**B**∥, is simply the area of the parallelogram, $\| \overset{\rightarrow}{a} \| \|\overset{\rightarrow}{b}\|\sin\theta$, suggesting kinship with the vector cross product. In fact it can be shown that $\outerprodab = I \overset{\rightarrow}{a} \times \overset{\rightarrow}{b}$ and $\overset{\rightarrow}{a} \times \overset{\rightarrow}{b} = -I \overset{\rightarrow}{a}\wedge \overset{\rightarrow}{b}$ where we will shortly be meeting *I* as the directed unit volume pseudoscalar.

A bivector is not uniquely determined by a pair of vectors, since adding any scalar multiple of the right vector ($\overset{\rightarrow}{b}$ in the case above) to the left vector yields the same bivector. This follows from the fact that the outer product of two colinear vectors is zero, as no parallelogram can be swept out (i.e. the outer product of a vector and another vector pointing in the same direction is zero).

It can also be shown that the outer product is distributive,

$$\overset{\rightarrow}{a}\wedge(\overset{\rightarrow}{b} + \overset{\rightarrow}{c}) = \overset{\rightarrow}{a}\wedge\overset{\rightarrow}{b}+\overset{\rightarrow}{a}\wedge\overset{\rightarrow}{c},$$

and associative

$$(\outerprodab)\wedge \overset{\rightarrow}{c} = \overset{\rightarrow}{a} \wedge (\overset{\rightarrow}{b} \wedge \overset{\rightarrow}{c}).$$

If these vectors are three dimensional and span Euclidean three space the product $(\outerprodab) \wedge \overset{\rightarrow}{c}$ is associated with a trivector, with three directions; or equivalently the parallelepiped obtained by a bivector moving a distance and in the direction given by a third vector. The procedure can be continued indefinitely, to create hypervolumes of any positive integer value of dimensions. The physical intuition is however more troublesome to maintain in dimensions higher than three.

### The geometric product and geometric algebra

It is possible to reduce both the inner and outer product of two vectors to expressions written in terms of the geometric product. We define the geometric product of the two vectors $\overset{\rightarrow}{a}$ and $\overset{\rightarrow}{b}$ as

$$\geoprodab = \innerprodab + \outerprodab $$

This allows us to write the inner product as $\innerprodab = \frac{1}{2}\geoprodab + \geoprodba$, and the outer as $\outerprodab = \frac{1}{2}\geoprodab - \geoprodba$.

Although the geometric product is not generally commutative, it follows from the definition of the geometric product that it commutes if the two vectors are colinear, and anticommutes if they are orthogonal, because of the null value of the outer and inner products respectively.

In what follows we will largely restrict ourselves to three dimensional Euclidean space, with the element of highest grade consequently being the trivector. In such cases it is sufficient to consider multivectors of the form

$$\\A = A_0 + \mathbf{A}_1 + \mathbf{A}_2 + \mathbf{A}_3.$$

This is the sum of a scalar, a vector, a bivector, and a trivector respectively, with the subscript indicating the grade of the element (this convention will be used where necessary to avoid ambiguity). Nothing stops us from including higher grade ‘k-blades’ (quadvectors, pentavectors etc.) to the multivector if the situation calls for it. There is a certain prejudice against adding elements of different grades which does not appear to have any mathematical basis - contrary to the wisdom of the proverbial school teacher, and to paraphrase some wit to whom I cannot properly attribute the following, ‘it is fine to add apples and oranges when one is making a fruit salad’.

We have assembled sufficient mathematical machinery to define a geometric algebra as an algebra containing as elements multivectors *A*, *B*, *C*, ⋯ that are closed under the operations of addition and multiplication by the geometric product, with the added properties of commutative addition,

$$\\ A + B = B + A$$

associative addition and multiplication,

$$\\ (A + B) + C = A + (B + C)$$

$$\\ (AB)C = A(BC)$$

and multiplication that is distributive with respect to addition,

$$\\ A(B + C) = AB + AC$$

$$\\ (B + C)A = BA + CA.$$

Note that the left and right distributive rules have to be formulated separately, because of the lack of a commutative rule for multiplication. We also require the existence of unique multivectors 0 and 1 (i.e. the zero and identity elements respectively), as well as a unique additive inverse for every multivector. Notice that ordinary scalar multiplication has been subsumed by the geometric product as multiplication by a multivector with null values for parts of grade > 0.

Although we have strictly speaking only defined the geometric product of two vectors (elements of grade 1), it is possible to expand the definition of the geometric product to include elements of higher grades. The equations relevant to the preceding discussion are

$$\\ \overset{\rightarrow}{a}\cdot\mathbf{A_n} = \frac{1}{2}(\overset{\rightarrow}{a}\mathbf{A_n} -(-1)^n\mathbf{A_n}\overset{\rightarrow}{a})$$

and

$$\\ \overset{\rightarrow}{a}\wedge\mathbf{A_n} = \frac{1}{2}(\overset{\rightarrow}{a}\mathbf{A_n} +(-1)^n\mathbf{A_n}\overset{\rightarrow}{a}).$$

We call the highest grade element in a geometric algebra the pseudoscalar, which in the case of the geometric algebra of the Euclidean plane is the directed unit area **I**. We distinguish this from the directed unit volume by writing the latter in italics, *I*.

### Rotations

The utility of geometric algebra is most apparent when considering how it handles rotations. As an intermediate step to formulating rotation transformations in 3D Euclidean space, we examine the 2D case (i.e. a general multivector will look like *A* = *A*_{0} + **A**_{1} + **A**_{2}).

Consider two orthonormal vectors that span a plane, *ê*_{1} and *ê*_{2}. Orthogonality implies *ê*_{1} ⋅ *ê*_{2} = 0 and normality implies they are of unit magnitude, ∥*ê*_{1}∥ = ∥*ê*_{2}∥ = 1.

We continue by constructing the right-handed bivector, *ê*_{1} ∧ *ê*_{2} = *ê*_{1}*ê*_{2} = − *ê*_{2}*ê*_{2} = **I**, where the equality of the outer and geometric product is due to the vectors’ orthogonality.

Left and right multiplication by **I** of the unit vectors yields

$$\\ \mathbf{I}\hat{e}_1 = -\hat{e}_2\hat{e}_1\hat{e}_1 = -\hat{e}_2$$

$$\\ \mathbf{I}\hat{e}_2 = \hat{e}_1\hat{e}_2\hat{e}_2 = \hat{e}_1,$$

and

$$\\ \hat{e}_1\mathbf{I} = \hat{e}_1\hat{e}_1\hat{e}_2 = \hat{e}_2$$

$$\\ \hat{e}_2\mathbf{I} = -\hat{e}_2\hat{e}_2\hat{e}_1 = -\hat{e}_1.$$

So left multiplication by **I** results in a $\frac{\pi}{2}$ rad rotation clockwise, and right multiplication in a $\frac{\pi}{2}$ rad rotation counterclockwise. Squaring the identity, we get

$$\\ \mathbf{I}^{2} = \hat{e}_1\hat{e}_2\hat{e}_1\hat{e}_2 = -\hat{e}_2\hat{e}_1\hat{e}_1\hat{e}_2 = -1.$$

To summarise - in the unit bivector we have a geometric operation (via multiplication) that squares to − 1, corresponding to two successive rotations in the plane. This should immediately bring to mind the imaginary unit, i.e. the object *i* such that *i*^{2} = − 1.

The relation to complex numbers can be further elucidated by considering a vector in the plane, *x⃗* = *x*_{1}*ê*_{1} + *x*_{2}*ê*_{2}, where *x*_{1} and *x*_{2} are scalars. Left multiplication by *ê*_{1} then yields

$$\\ \hat{e}_1\vec{x} = x_1 + \mathbf{I}x_2 \label{complex} \tag{3}$$

This is of the same form as a number in the complex plane, with the added feature of a directional property for the square root of − 1.

### Rotors

The rotor deserves more space than I will devote to it. For a more thorough exposition, see section 2.7 in [1].

In short: we can define the *rotor* by $\mathit{U} =\overset{\rightarrow}{a}\overset{\rightarrow}{b}$, where $\overset{\rightarrow}{a}$ and $\overset{\rightarrow}{b}$ are any two unit vectors, not necessarily orthogonal. The rotor can be interpreted as the operator that rotates *a* to *b*, and vice-a-versa, so that $\overset{\rightarrow}{b} = \overset{\rightarrow}{a}U$ and $\overset{\rightarrow}{a} = U\overset{\rightarrow}{b}$.

The rotor can also be interpreted geometrically as the directed arc that joins the end points of the two unit vectors from which it is constructed (see figure 2). Therefore it in fact rotates *any* vector to which it is applied through *θ*, and the rotor can be written as

$$\\ U = e^{-\frac{\mathbf{I}\theta}{2}},$$

where **I** is the directed unit bivector - note that exponentials of multivectors are defined in terms of power series, similarly to exponentials of scalars, and are absolutely convergent for any valid multivector.

So it should be clear that the rotor can be interpreted as a movable (i.e. coordinate-free) directed arc. We also introduce the reversion operator, denoted by a dagger, which reverses the order of elements in the geometric product:

$$\\ U^\dagger = (\overset{\rightarrow}{a}\overset{\rightarrow}{b})^\dagger = \overset{\rightarrow}{b}\overset{\rightarrow}{a}.$$

Evidently *U*^{†} is an arc with the opposite orientation to *U*.

The usefulness of geometric algebra in describing rotations is most apparent when we consider 3D space, with three orthonormal vectors, *ê*_{1}, *ê*_{2} and *ê*_{3}, forming a right-handed set. We then have three independent unit bivectors (one for each of the three linearly independent planes in the vector space), each defining a plane, squaring to − 1, and generating *π* rad rotations (note that this differs from the 2D case). The pseudoscalar is the directed unit volume *ê*_{1} ∧ *ê*_{2} ∧ *ê*_{2}, and the form of a rotation transformation, which is then generally valid in any dimension, for any multivector, is

$$\\ \mathit{A}\mapsto\mathit{U}\mathit{A}\mathit{U}^\dagger.$$

This rotation takes place in a plane specified by the outer product of the two vectors that define the rotor.

## Differentiation and integration with respect to time

The differentiation of multivector-valued functions of a scalar can be defined in the usual way, with the notable exception that, if F(*t*) and G(*t*) are two such functions, then

$$\\ \frac{d(\mathrm{F}\mathrm{G})}{dt} = \frac{d\mathrm{F}}{dt}\mathrm{G} + \mathrm{F}\frac{d\mathrm{G}}{dt}.$$

This may just look like the product rule, but note again that because of the lack of commutativity the order is important - the above is not, in general, the same as

$$ \\\mathrm{G}\frac{d\mathrm{F}}{dt} + \frac{d\mathrm{G}}{dt}\mathrm{F}.$$

If we apply this to the vector-valued function $\overset{\rightarrow}{v}(t)$, which describes the velocity of some object as a function of time, we see that

$$ \begin{eqnarray} \frac{d\overset{\rightarrow}{v}^2}{dt} &=& \frac{d\overset{\rightarrow}{v}}{dt}\overset{\rightarrow}{v} + \overset{\rightarrow}{v}\frac{d\overset{\rightarrow}{v}}{dt} \\ &=& 2\frac{d\overset{\rightarrow}{v}}{dt}\cdot\overset{\rightarrow}{v} \end{eqnarray} $$

The case of constant speed implies that $\frac{d\overset{\rightarrow}{v}}{dt}\cdot\overset{\rightarrow}{v} = 0$, so we see that the orthogonality of a vector-valued function with respect to its time derivative implies that the function has a constant magnitude, with only the direction changing. This is an example of a geometric insight that follows directly from the definition of the geometric product, and that is not as immediately apparent without it.

Integration is also defined similarly to the usual case, except that left and right multiplication by a constant multivector have to be formulated separately.

Linear, first-order differential equations are often encountered in physical problems (or at least so the textbooks will have us believe). An example is

$$\\ \frac{d\overset{\rightarrow}{v}}{dt} + \gamma(t)\overset{\rightarrow}{v}(t) = \overset{\rightarrow}{g}(t).$$

This can be solved by using an integrating factor. We will describe this here, as we will have occasion to use it in the solutions of the selected problems.

A function *λ* = *λ*(*t*) is called an integrating factor if, when we multiply the above by it from the left we get

$$\\ \lambda(\frac{d\overset{\rightarrow}{v}}{dt} +\gamma\overset{\rightarrow}{v}) = \frac{d(\lambda\overset{\rightarrow}{v})}{dt},$$

in which case it becomes

$$\\ \frac{d(\lambda\overset{\rightarrow}{v})}{dt} = \lambda\overset{\rightarrow}{g}.$$

To find the formula for *λ*, we expand and rearrange:

$$\\ \lambda\frac{d\overset{\rightarrow}{v}}{dt} + \lambda\gamma\overset{\rightarrow}{v} = \frac{d\lambda}{dt}\overset{\rightarrow}{v} + \lambda\frac{d\overset{\rightarrow}{v}}{dt}$$

so that we are left with

$$\\ \lambda\gamma = \frac{d\lambda}{dt}.$$

We can then use separation of variables and integrate, with the result that *λ*(*t*) = *λ*_{0}*e*^{∫dtγ(t)}, where *λ*_{0} = *e*^{C} accounts for the constant of integration.

## Applications to classical mechanics

In this section we will examine projectile motion with quadratic drag, the motion of a particle in uniform electric and magnetic fields, and the symmetric top, using methods from GA. First we introduce some useful physical concepts.

### Angular momentum and rotating frames of reference

The starting point of any classical theory of motion is Newton’s Second Law. We will be assuming a constant mass in our examples, so that

$$\\ \overset{\rightarrow}{F} = \frac{d\overset{\rightarrow}{p}}{dt} = m\overset{\rightarrow}{a}.$$

We will define the angular momentum in terms of the outer rather than the cross product. The angular momentum of a single particle will consequently contain the rate at which an area is swept out its the position vector $\overset{\rightarrow}{x}$ moving relative to the fixed origin:

$$\\ \mathbf{L} = \overset{\rightarrow}{x}\wedge\overset{\rightarrow}{p},$$

which is a bivector, where

$$\\ \overset{\rightarrow}{p} = m\overset{\rightarrow}{v}.$$

Alternatively, if we write $\overset{\rightarrow}{x} = r\hat{x}$ where $r=|\overset{\rightarrow}{x}|$, then

$$\textbf{L} = mr^2\hat{x}\frac{d\hat{x}}{dt} = -mr^2\frac{d\hat{x}}{dt}\hat{x},$$

which is helpful in certain problems.

Differentiating *L* with respect to time yields

$$ \begin{eqnarray} \frac{d\mathbf{L}}{dt} &=& \overset{\rightarrow}{v}\wedge\overset{\rightarrow}{p} + \overset{\rightarrow}{x}\wedge\frac{d\overset{\rightarrow}{p}}{dt} \\ &=& \overset{\rightarrow}{x} \wedge F. \end{eqnarray} $$

We also define the torque as a bivector,

$$\\ \mathbf{N} = \overset{\rightarrow}{x}\wedge\overset{\rightarrow}{F},$$

so we see that

$$ \frac{d\textbf{L}}{dt} = \textbf{N}.$$

The symmetric top will require us to work with a rotating set of orthonormal axes to describe its relative orientation. If we represent by {*f̂*_{k}} and {*ê*_{k}}, for 0 < *k* ≤ 3, the sets of rotating and fixed orthonormal vectors respectively, then it follows from the aforegoing discussion relating to rotors that they are related by *f̂*_{k} = *U**ê*_{k}*U*^{†}.

Here *U* = *U*(*t*) is a time-dependent rotor describing the time evolution of the top’s orientation relative to the fixed basis (see figure 3). The set {*f̂*_{k}} defines the principal axes of the top.

Writing $\frac{d\hat{f}_k}{dt} = \overset{\rightarrow}{\omega}\times\hat{f}_k$ where $\overset{\rightarrow}{\omega}$ is the angular velocity, we can use the relation between the outer and cross products, and definition of the dot product for higher grade elements, to get

$$ \begin{eqnarray} \frac{d\hat{f}_k}{dt} &=& -I \overset{\rightarrow}{\omega}\wedge\hat{f}_k \\ &=& -\frac{1}{2} I (\overset{\rightarrow}{\omega}\hat{f}_k - \hat{f}_k\overset{\rightarrow}{\omega}) \\ &=& \frac{1}{2}(\hat{f}_k I \overset{\rightarrow}{\omega} - I \overset{\rightarrow}{\omega}\hat{f_k}) \\ &=& \hat{f}_k \cdot I \overset{\rightarrow}{\omega} \\ &=& \hat{f}_k \cdot \mathbf{\Omega} \end{eqnarray} $$

Here *I* is the *f̂*_{1} ∧ *f̂*_{2} ∧ *f̂*_{3} pseudoscalar, and we call **Ω** the angular velocity bivector.

Explicitly differentiating *f̂*_{k} = *U**ê*_{k}*U*^{†} with respect to time, we see that

$$ \begin{eqnarray} \frac{d\hat{f}_k}{dt} &=& \frac{dU}{dt} \hat{e}_k U^\dagger + U \hat{e}_k \frac{dU^\dagger}{dt} \\ &=& \frac{dU}{dt}U^\dagger U\hat{e}_k U^\dagger + U \hat{e}_k U^\dagger U \frac{dU^\dagger}{dt} \\ &=& \frac{dU}{dt}U^\dagger \hat{f}_k + \hat{f}_k U \frac{dU^\dagger}{dt} \end{eqnarray} $$

The last line follows from the important unitary property of the rotor, *U**U*^{†} = *â**b̂**b̂**â* = *U*^{†}*U* = 1, which also has the result that

$$\\ \frac{dUU^\dagger}{dt} = \frac{dU}{dt}U^\dagger + U\frac{dU^\dagger}{dt} = 0,$$

so that

$$\frac{dU}{dt}U^\dagger = -U\frac{dU^\dagger}{dt}.$$

This lets us write the above as

$$ \begin{eqnarray} \frac{d\hat{f}_k}{dt} &=& \frac{dU}{dt}U^\dagger\hat{f}_k - \hat{f}_k\frac{dU}{dt}U^\dagger \\ &=& 2\frac{dU}{dt}U^\dagger\cdot\hat{f}_k \end{eqnarray} $$

which combined with the previous expression, gives us the rotor equation:

$$\\ \frac{dU}{dt} = -\frac{1}{2}\mathbf{\Omega} U.$$

We can rotate **Ω** back to the fixed frame given by {*ê*_{k}} to get the body angular velocity, **Ω**_{b} = *U*^{†}**Ω***U*. In terms of **Ω**_{b} the rotor equation is

$$\\ \frac{dU}{dt} = -\frac{1}{2}U\mathbf{\Omega_b}.$$

### The inertia tensor

To describe the motion of a rigid body we need a position vector pointing to its center of mass from the fixed origin, and another one giving the directed distance from the center of mass to a point in the body. If the body is rotating relative to a fixed basis, $\overset{\rightarrow}{y}_n = U\overset{\rightarrow}{x}_nU^\dagger + \overset{\rightarrow}{x}_{com}$ gives us $\overset{\rightarrow}{y}_n = \overset{\rightarrow}{y}_n(t)$, the time-dependent vector pointing to a point in the body. Here $\overset{\rightarrow}{x}_{com}$ points to the center of mass and $\overset{\rightarrow}{x}_n$ is a fixed vector in the reference basis. The first term rotates the body and the second translates the center of mass.

Differentiating this for a fixed value of *n* we get the velocity of a definite point in the body,

$$ \begin{eqnarray} \frac{d\overset{\rightarrow}{y}}{dt} &=& \frac{dU}{dt}\overset{\rightarrow}{x}U^\dagger + U\overset{\rightarrow}{x}\frac{dU^\dagger}{dt} + \frac{d\overset{\rightarrow}{x}_{com}}{dt} \\ &=& -\frac{1}{2}U\mathbf{\Omega}_B\overset{\rightarrow}{x}U^\dagger + \frac{1}{2}U\overset{\rightarrow}{x}\Omega_B U^\dagger + \overset{\rightarrow}{v}_{com} \\ &=& U\overset{\rightarrow}{x}\cdot\mathbf{\Omega}_B U^\dagger + \overset{\rightarrow}{v}_{com} \end{eqnarray} $$

Given a mass density function *ρ* and a bivector **B** we define the inertia tensor with respect to rotation in the **B**-plane by $\mathcal{I}(\mathbf{B}) = \int\mathrm{d}^3x\rho\overset{\rightarrow}{x}\wedge(\overset{\rightarrow}{x}\cdot\mathbf{B})$, where the integral is understood to be over the entire volume of the body.

This can be related to the angular momentum bivector of an object around its center of mass by noting that

$$ \begin{eqnarray} \mathbf{L} &=& \int\mathrm{d}^3x\rho(\overset{\rightarrow}{y} - \overset{\rightarrow}{x}_{com})\wedge\overset{\rightarrow}{v} \\ &=& \int\mathrm{d}^3x\rho(U\overset{\rightarrow}{x}U^\dagger)\wedge(U\overset{\rightarrow}{x}\cdot\mathbf{\Omega}_B U^\dagger + \overset{\rightarrow}{v}_{com}) \\ &=& U\int\mathrm{d}^3x\rho\overset{\rightarrow}{x}\wedge(\overset{\rightarrow}{x}\cdot\mathbf{\Omega}_B)U^\dagger \\ &=& U\mathcal{I}(\mathbf{\Omega}_B)U^\dagger \end{eqnarray} $$

While theoretical physicists like to adorn themselves with the abstraction of coordinate free algebras wherever possible, concrete calculations typically necessitate the explication of the inertia tensor as the entries in a matrix. For 3D space this is a real, symmetric second-rank tensor, i.e. a symmetric 3 × 3 matrix. Since the tensor is real and symmetric, it follows from the spectral theorem that an orthonormal basis can be found in which it is expressed as a pure diagonal matrix. The directions in this basis are the principal axes, and correspond to those axes of rotation which result in total angular momentum parallel to them. We call the values on the diagonal the principal moments of inertia, which we shall denote by *i*_{1}, *i*_{2} and *i*_{3}. The principal axes are the $\hat{f}_k$ defined previously. It should be kept in mind that it is conceptually more appropriate to view rotations as occurring in planes specified by bivectors, rather than around axes.

### Projectile Motion with Quadratic Drag

As a first application, we consider the motion of a particle under the influence of a constant force (the gravitational force of the earth on the particle), with a quadratic resistive force. This is often called projectile motion.

As no analytic solution exists except in the approximation where the perpendicular component of velocity is much larger than the parallel (or more honestly I don’t know of one), we will resort to a first-order perturbation technique to approximate the motion. The differential equation describing the time evolution of the particle’s motion is

$$\\ \frac{d\overset{\rightarrow}{v}}{dt} = \overset{\rightarrow}{g} - \alpha\mathit{v}\overset{\rightarrow}{v}$$

where $\overset{\rightarrow}{g}$ is the gravitational acceleration vector, which points in the direction of the center of mass of the earth, and $\mathit{v} = \|\overset{\rightarrow}{v}\|$.

We decompose the velocity vector into its horizontal and vertical components as

$$ \begin{eqnarray} \hat{g}\overset{\rightarrow}{v} &=& \hat{g}\cdot\overset{\rightarrow}{v} + \hat{g}\wedge\overset{\rightarrow}{v} \nonumber \\ &=& \mathit{v}_{vert} + \mathbf{B}\mathit{v}_{hor} \end{eqnarray} $$

where **B** is the bivector defining the vertical plane in which the particle’s motion is confined. We do the same with the position vector,

$$ \begin{eqnarray} \hat{g}\overset{\rightarrow}{x} = \mathit{x}_{vert} + \mathbf{B}\mathit{x}_{hor}. \end{eqnarray} $$

By multiplying the original differential equation from the left by *ĝ* we can decompose it as

$$ \begin{eqnarray} \hat{g}\frac{d\overset{\rightarrow}{v}}{dt} &=& \hat{g}\cdot\frac{d\overset{\rightarrow}{v}}{dt} + \hat{g}\wedge\frac{d\overset{\rightarrow}{v}}{dt} \\ &=& \hat{g}\overset{\rightarrow}{g} - \alpha\mathit{v}\hat{g}\overset{\rightarrow}{v} \\ &=& \hat{g}\cdot\overset{\rightarrow}{g} + \hat{g}\wedge\overset{\rightarrow}{g} -\alpha\mathit{v}\hat{g}\cdot\overset{\rightarrow}{v} -\alpha\mathit{v}\hat{g}\wedge\overset{\rightarrow}{v} \\ &=& \mathit{g} - \alpha\mathit{v}\mathit{v}_{vert} -\alpha\mathit{v}\mathit{v}_{hor} \end{eqnarray} $$

Equating scalar and bivector parts we see that,

$$\\ \hat{g}\cdot\frac{d\overset{\rightarrow}{v}}{dt} = \mathit{g} - \alpha\mathit{v}\hat{g}\cdot\overset{\rightarrow}{v} \qquad \qquad \hat{g}\wedge\frac{d\overset{\rightarrow}{v}}{dt} = -\alpha\mathit{v}\mathbf{B}\mathit{v}_{hor},$$

so that

$$\\ \frac{d\mathit{v}_{vert}}{dt} = \mathit{g} - \alpha\mathit{v}\mathit{v}_{vert} \qquad \qquad \frac{d\mathit{v}_{hor}}{dt} = -\alpha\mathit{v}\mathit{v}_{hor}.$$

It is important to note that these two equations are coupled by the requirement *v*^{2} = *v*_{hor}^{2} + *v*_{vert}^{2}.

We assume as given the parabolic form of the trajectory for the drag free case of projectile motion, and attempt to approximate the displacement vector of the quadratic case by adding a time-dependent deviation vector $\overset{\rightarrow}{s} = \overset{\rightarrow}{s}(t)$,

$$\\ \overset{\rightarrow}{r}(t) = \frac{1}{2}\overset{\rightarrow}{g}t^2 + \overset{\rightarrow}{v}_0t + \overset{\rightarrow}{s}(t).$$

Self-evidently the initial conditions of the particle require $\overset{\rightarrow}{s}(0)=0$ and $\frac{d\overset{\rightarrow}{s}(0)}{dt} = 0$. We differentiate the position vector to get the velocity, $\overset{\rightarrow}{v} = \overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0 + \frac{d\overset{\rightarrow}{s}}{dt}$.

Since the second derivative of $\overset{\rightarrow}{s}$ is $-\alpha\mathit{v}\overset{\rightarrow}{v}$, we can substitute the velocity in our original differential equation to get

$$ \begin{eqnarray} \frac{d^2\overset{\rightarrow}{s}}{dt^2} &=& -\alpha |\overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0 + \frac{d\overset{\rightarrow}{s}}{dt}|(\overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0 + \frac{d\overset{\rightarrow}{s}}{dt}) \\ &\approx& \alpha |\overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0|( \overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0) \end{eqnarray} $$

The last is a good approximation if $\overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0 \gg \frac{d\overset{\rightarrow}{s}}{dt}$. If we require the additional condition $|\overset{\rightarrow}{g}t + \overset{\rightarrow}{v}_0 | \approx \overset{\rightarrow}{v}_0 |1 + \overset{\rightarrow}{v}_0^{-1}\cdot\overset{\rightarrow}{g}t |$ we can integrate the preceding equation twice and substitute the result in the displacement formula to obtain the solution

$$\\ \overset{\rightarrow}{r} = \frac{1}{2}\overset{\rightarrow}{g}t^2(1 - \alpha |\frac{\mathit{v}_0t}{3} + \hat{v}_0\cdot\overset{\rightarrow}{g}\frac{t^2}{6}|) + \overset{\rightarrow}{v}_0t(1 -\alpha |\frac{\mathit{v}_0t}{2} + \hat{v}_0\cdot\hat{g}\frac{t^2}{6}|)$$

which fully describes the particles motion.

### Uniform Magnetic and Electric Fields

We construct the equation of motion for a particle of mass *m* and charge *q* from Newton’s second law and the Lorentz force law,

$$\\ \frac{d\overset{\rightarrow}{v}}{dt} = \overset{\rightarrow}{g} + \overset{\rightarrow}{v}\cdot\mathbf{\Omega},$$

where

$$\\ \overset{\rightarrow}{g} = \frac{q}{m}\overset{\rightarrow}{E}$$ and $$\mathbf{\Omega} = I \overset{\rightarrow}{\omega} = -\frac{Iq}{mc}\overset{\rightarrow}{B}.$$

We can solve this equation with a generalisation of the method of integrating factors to include noncommutative products by defining the left and right integrating factors by

$$\\ \frac{d\mathit{U}}{dt} = \frac{1}{2}\mathit{U}\mathbf{\Omega}$$ and $$ \\ \frac{d\mathit{U}^\dagger}{dt} = -\frac{1}{2}\mathbf{\Omega}\mathit{U}$$

respectively, with the initial condition *U*(0) = 1.
If we expand the equation of motion above,

$$\\ \frac{d\overset{\rightarrow}{v}}{dt} -\overset{\rightarrow}{g} +\frac{1}{2}(\mathbf{\Omega}\overset{\rightarrow}{v} - \overset{\rightarrow}{v}\mathbf{\Omega}) = 0,$$

multiply it from the left by *U* and the right by *U*^{†},

$$\\ \mathit{U}\frac{d\overset{\rightarrow}{v}}{dt}\mathit{U}^\dagger - \mathit{U}\overset{\rightarrow}{g}\mathit{U}^\dagger +\frac{d\mathit{U}}{dt}\overset{\rightarrow}{v}\mathit{U}^\dagger + \mathit{U}\overset{\rightarrow}{v}\frac{d\mathit{U}^\dagger}{dt} = 0,$$

we can substitute the integrating factors to get the integrable result

$$\\ \frac{d(\mathit{U}\overset{\rightarrow}{v}\mathit{U}^\dagger)}{dt} = \mathit{U}\overset{\rightarrow}{g}\mathit{U}^\dagger.$$

Integration and rearrangement gives the solution

$$\\ \overset{\rightarrow}{v} = \mathit{U}^\dagger[\int_0^t \mathrm{d}t'\mathit{U}\overset{\rightarrow}{g}\mathit{U}^\dagger + \overset{\rightarrow}{v}_0]\mathit{U}.$$

The actual motion of the particle then depends on the nature of the fields. For constant **Ω** and $\overset{\rightarrow}{g}$ the velocity is described by a parametric helical equation, that can be obtained by decomposing $\overset{\rightarrow}{g}$ as we previously decomposed the velocity in the case of projectile motion, substituting it into the solution and integrating. We find that the trajectory consists of two different motions,

$$\\ \overset{\rightarrow}{r}_{total} = \overset{\rightarrow}{r}_{pm} + \overset{\rightarrow}{r}_{cm},$$

where

$$\\ \overset{\rightarrow}{r}_{pm}(t) = \frac{1}{2}\overset{\rightarrow}{b}t^2 + \overset{\rightarrow}{c}t$$

describes the parabolic motion of the average position of the particle (called the *guiding center*), and where

$$\\ \overset{\rightarrow}{r}_{cm}(t) = \overset{\rightarrow}{a}\mathbf{\Omega}^{-1}e^{\mathbf{\Omega}t}$$

describes the uniform circular motion about this average position. $\overset{\rightarrow}{a}$, $\overset{\rightarrow}{b}$ and $\overset{\rightarrow}{c}$ are coefficients obtained from integration.

### The symmetric top

We will consider the torque free, (i.e. $\frac{d\mathbf{L}}{dt} = 0$), motion of the symmetric top. The top is an axially symmetric body, meaning that the three principal moments of inertia are *i*_{1} = *i*_{2} = *i* ≠ *i*_{3}, where we take the axis associated with *i*_{3} to be pointing in the *ê*_{3} direction (see Figure 3). The inertia tensor of an axially symmetric body rotating with an angular velocity $\overset{\rightarrow}{\omega}$ around the principal axis *ê*_{3} = *ê* is

$$ \begin{eqnarray} \mathcal{I}(\mathbf{\Omega_B}) &=& i \omega_1\hat{e}_2\hat{e}_3 + i \omega_2\hat{e}_3 \hat{e}_1 + i_3 \omega_3 \hat{e}_1\hat{e}_2 \\ &=& i \mathbf{\Omega_B} + (i_3 - i)\omega_3 I \hat{e} \end{eqnarray} $$

where *I* is the pseudoscalar, and the {*ω*_{k}} components along the principal axes are related to the angular momentum components in the rotating frame by

$$\\ L_k = i_k\omega_k$$

so that the angular momentum is

$$\\ \mathbf{L} = \sum_{k=1}^3 L_k I \hat{f}_k.$$

Rearranging and rotating the inertia tensor ℐ(**Ω**_{B}) we obtain the **Ω** required for the rotor equation,

$$ \begin{eqnarray} \mathit{U}\mathbf{\Omega_B} U^\dagger &=& \frac{ i - i_3} i \omega_3 U I \hat{e}U^\dagger + \frac{1}i U\mathcal{I}(\mathbf{\Omega_B})U ^\dagger \\ &=& \frac{\mathit{i} - \mathit{i}_3}{\mathit{i}}\omega_3 U I \hat{e} U^\dagger + \frac{1} i \mathbf{L} \\ &=& \mathbf{\Omega} \end{eqnarray} $$

The rotor equation becomes

$$\\ \frac{d\mathit{U}}{dt} = -\frac{1}{2}\mathit{U}\mathbf{\Omega_R} -\frac{1}{2}\mathbf{\Omega_L}\mathit{U}$$

where

$$\\ \mathbf{\Omega_L} = \frac{1}{i}\mathbf{L}$$

and

$$\\ \mathbf{\Omega_R} = \omega_3\frac{\mathit{i} - \mathit{i}_3}{\mathit{i}} I \hat{e}.$$

This can be integrated using the method of the integrating factor described in the previous section to yield the solution

$$\\ \mathit{U}(t) = \mathrm{e}^{-\frac{1}{2}\mathbf{\Omega_L}t}\mathit{U_0}\mathrm{e}^{-\frac{1}{2}\mathbf{\Omega_R}t}.$$

The first factor describes the precession of the body’s symmetry axis with an angular speed of **Ω**_{L}, while the constant *U*_{0} defines the initial orientation of the body, which can be set to 1 if the fixed and rotating frames coincide. The third factor describes the rotation of the body around its symmetry axis with an angular speed of **Ω**_{R}.

The method used in this section to describe the precession of the symmetric top is mostly drawn from reference [1], by Doran and Lasenby. The definition of the inertia tensor differs from Hestenes’ approach in reference [3]. While the latter describes it in terms of an operator acting on a vector, the former treats it as a function mapping a bivector onto a bivector. The two are of course equivalent. I prefer the latter approach for its notational simplicity.

## Conclusion

We have seen that geometric algebra offers a coherent way of formulating physical problems in classical mechanics. It takes only a little effort to become familiar with its methods for dealing with vectors. Its introduction of multidirectional elements is intuitively complementary to the standard vector algebra, and in the case of rotations demonstrably superior. The geometrical interpretation of the imaginary unit is so obvious after it has been pointed out that it seems inconceivable that more emphasis is not placed on it in undergraduate mathematics courses. Beyond that, is any of this worth it? I am not sure - if the question is ‘is this helpful in making progress in our understanding of fundamental physics’, I am inclined to say ‘probably not’ (there are texts, including those in the bibliography, that recast the familiar equations of e.g. General Relativity in the language of geometric algebra, but I have had time for only a casual perusal). The literature already contains a plethora of different ways of writing down the same things; dealing with this profusion of notation is one of the onerous tasks of the practicing physicist, and one might sceptically ask whether geometric algebra truly adds enough to justify yet another convention. In this case I believe the answer is yes.

For example, I think the way it handles rotations is notationally superior in a manner that also renders it conceptually superior (the world deserves a compendious and subtle study of the relation between notation and conceptual progress in science - alas, where is the person who will take this thankless labour upon themselves?). While laypeople like to romanticise the apparently esoteric topic of quantum mechanics, in reality the mathematics necessary to gain a basic understanding is not that sophisticated (the interpretation of the theory is a different issue, but contrary to the impression you might get from the popular media only a tiny minority of physicists can be said to ‘work’ on this). On the other hand, dealing with the ordinary rotations of macroscopic physical objects is actually quite challenging mathematically, and trips many people up; it certainly tripped me up the first time I came across it as an undergraduate. I believe the experience would have been less painful if it had been presented by someone competent in geometric algebra.

If you found any of this interesting I recommend you turn to the references in the bibliography for further reading - all the texts can be found online. Reference [2] is particularly concise.

Geometric algebra seems to have a devoted following among certain segments of the computer graphics community. There are also several nice-looking software libraries available that let you play with the various objects that comprise a geometric algebra, and apply the associated operations to whatever end you desire.

Here are the most complete looking:

- A symbolic algebra package for geometric algebra built on SymPy: galgebra
- A numerical geometric algebra package, also for Python: clifford
- A more complete list, containing packages for various languages: bivector.net