[Click here for a PDF of this post with nicer formatting]
Motivation
I initially thought that I might submit a problem set solution for ece1228 using Geometric Algebra. In order to justify this, I needed to add an appendix to that problem set that outlined enough of the ideas that such a solution might make sense to the grader.
I ended up changing my mind and reworked the problem entirely, removing any use of GA. Here’s the tutorial I initially considered submitting with that problem.
Geometric Algebra in a nutshell.
Geometric Algebra defines a noncommutative, associative vector product
\begin{equation}\label{eqn:gaTutorial:20}
\begin{aligned}
\Ba \Bb \Bc
&=
(\Ba \Bb) \Bc \\
&=
\Ba (\Bb \Bc),
\end{aligned}
\end{equation}
where the square of a vector equals the squared vector magnitude
\begin{equation}\label{eqn:gaTutorial:40}
\Ba^2 = \Abs{\Ba}^2,
\end{equation}
In Euclidean spaces such a squared vector is always positive, but that is not necessarily the case in the mixed signature spaces used in special relativity.
There are a number of consequences of these two simple vector multiplication rules.
 Squared unit vectors have a unit magnitude (up to a sign). In a Euclidean space such a product is always positive
\begin{equation}\label{eqn:gaTutorial:60}
(\Be_1)^2 = 1.
\end{equation}  Products of perpendicular vectors anticommute.
\begin{equation}\label{eqn:gaTutorial:80}
\begin{aligned}
2
&=
(\Be_1 + \Be_2)^2 \\
&= (\Be_1 + \Be_2)(\Be_1 + \Be_2) \\
&= \Be_1^2 + \Be_2 \Be_1 + \Be_1 \Be_2 + \Be_2^2 \\
&= 2 + \Be_2 \Be_1 + \Be_1 \Be_2.
\end{aligned}
\end{equation}A product of two perpendicular vectors is called a bivector, and can be used to represent an oriented plane. The last line above shows an example of a scalar and bivector sum, called a multivector. In general Geometric Algebra allows sums of scalars, vectors, bivectors, and higher degree analogues (grades) be summed.
Comparison of the RHS and LHS of \ref{eqn:gaTutorial:80} shows that we must have
\begin{equation}\label{eqn:gaTutorial:100}
\Be_2 \Be_1 = \Be_1 \Be_2.
\end{equation}It is true in general that the product of two perpendicular vectors anticommutes. When, as above, such a product is a product of
two orthonormal vectors, it behaves like a noncommutative imaginary quantity, as it has an imaginary square in Euclidean spaces\begin{equation}\label{eqn:gaTutorial:120}
\begin{aligned}
(\Be_1 \Be_2)^2
&=
(\Be_1 \Be_2)
(\Be_1 \Be_2) \\
&=
\Be_1 (\Be_2
\Be_1) \Be_2 \\
&=
\Be_1 (\Be_1
\Be_2) \Be_2 \\
&=
(\Be_1 \Be_1)
(\Be_2 \Be_2) \\
&=1.
\end{aligned}
\end{equation}Such “imaginary” (unit bivectors) have important applications describing rotations in Euclidean spaces, and boosts in Minkowski spaces.

The product of three perpendicular vectors, such as
\begin{equation}\label{eqn:gaTutorial:140}
I = \Be_1 \Be_2 \Be_3,
\end{equation}is called a trivector. In \R{3}, the product of three orthonormal vectors is called a pseudoscalar for the space, and can represent an oriented volume element. The quantity \( I \) above is the typical orientation picked for the \R{3} unit pseudoscalar. This quantity also has characteristics of an imaginary number
\begin{equation}\label{eqn:gaTutorial:160}
\begin{aligned}
I^2
&=
(\Be_1 \Be_2 \Be_3)
(\Be_1 \Be_2 \Be_3) \\
&=
\Be_1 \Be_2 (\Be_3
\Be_1) \Be_2 \Be_3 \\
&=
\Be_1 \Be_2 \Be_1
\Be_3 \Be_2 \Be_3 \\
&=
\Be_1 (\Be_2 \Be_1)
(\Be_3 \Be_2) \Be_3 \\
&=
\Be_1 (\Be_1 \Be_2)
(\Be_2 \Be_3) \Be_3 \\
&=
–
\Be_1^2
\Be_2^2
\Be_3^2 \\
&=
1.
\end{aligned}
\end{equation}  The product of two vectors in \R{3} can be expressed as the sum of a symmetric scalar product and antisymmetric bivector product
\begin{equation}\label{eqn:gaTutorial:480}
\begin{aligned}
\Ba \Bb
&=
\sum_{i,j = 1}^n \Be_i \Be_j a_i b_j \\
&=
\sum_{i = 1}^n \Be_i^2 a_i b_i
+
\sum_{0 < i \ne j \le n} \Be_i \Be_j a_i b_j \\ &= \sum_{i = 1}^n a_i b_i + \sum_{0 < i < j \le n} \Be_i \Be_j (a_i b_j  a_j b_i). \end{aligned} \end{equation} The first (symmetric) term is clearly the dot product. The antisymmetric term is designated the wedge product. In general these are written \begin{equation}\label{eqn:gaTutorial:500} \Ba \Bb = \Ba \cdot \Bb + \Ba \wedge \Bb, \end{equation} where \begin{equation}\label{eqn:gaTutorial:520} \begin{aligned} \Ba \cdot \Bb &\equiv \inv{2} \lr{ \Ba \Bb + \Bb \Ba } \\ \Ba \wedge \Bb &\equiv \inv{2} \lr{ \Ba \Bb  \Bb \Ba }, \end{aligned} \end{equation} The coordinate expansion of both can be seen above, but in \R{3} the wedge can also be written \begin{equation}\label{eqn:gaTutorial:540} \Ba \wedge \Bb = \Be_1 \Be_2 \Be_3 (\Ba \cross \Bb) = I (\Ba \cross \Bb). \end{equation} This allows for an handy dot plus cross product expansion of the vector product \begin{equation}\label{eqn:gaTutorial:180} \Ba \Bb = \Ba \cdot \Bb + I (\Ba \cross \Bb). \end{equation} This result should be familiar to the student of quantum spin states where one writes \begin{equation}\label{eqn:gaTutorial:200} (\Bsigma \cdot \Ba) (\Bsigma \cdot \Bb) = (\Ba \cdot \Bb) + i (\Ba \cross \Bb) \cdot \Bsigma. \end{equation} This correspondence is because the Pauli spin basis is a specific matrix representation of a Geometric Algebra, satisfying the same commutator and anticommutator relationships. A number of other algebra structures, such as complex numbers, and quaterions can also be modelled as Geometric Algebra elements.  It is often useful to utilize the grade selection operator
\( \gpgrade{M}{n} \) and scalar grade selection operator \( \gpgradezero{M} = \gpgrade{M}{0} \)
to select the scalar, vector, bivector, trivector, or higher grade algebraic elements. For example, operating on vectors \( \Ba, \Bb, \Bc \), we have\begin{equation}\label{eqn:gaTutorial:580}
\begin{aligned}
\gpgradezero{ \Ba \Bb }
&= \Ba \cdot \Bb \\
\gpgradeone{ \Ba \Bb \Bc }
&=
\Ba (\Bb \cdot \Bc)
+
\Ba \cdot (\Bb \wedge \Bc) \\
&=
\Ba (\Bb \cdot \Bc)
+
(\Ba \cdot \Bb) \Bc
–
(\Ba \cdot \Bc) \Bb \\
\gpgradetwo{\Ba \Bb} &=
\Ba \wedge \Bb \\
\gpgradethree{\Ba \Bb \Bc} &=
\Ba \wedge \Bb \wedge \Bc.
\end{aligned}
\end{equation}Note that the wedge product of any number of vectors such as \( \Ba \wedge \Bb \wedge \Bc \) is associative and can be expressed in terms of the complete antisymmetrization of the product of those vectors. A consequence of that is the fact a wedge product that includes any colinear vectors in the product is zero.
Example: Helmholz equations.
As an example of the power of \ref{eqn:gaTutorial:180}, consider the following Helmholtz equation derivation (wave equations for the electric and magnetic fields in the frequency domain.)
Application of \ref{eqn:gaTutorial:180} to
Maxwell equations in the frequency domain for source free simple media gives
\label{eqn:emtProblemSet1Problem6:340}
\begin{equation}\label{eqn:emtProblemSet1Problem6:360}
\spacegrad \BE = j \omega I \BB
\end{equation}
\begin{equation}\label{eqn:emtProblemSet1Problem6:380}
\spacegrad I \BB = j \omega \mu \epsilon \BE.
\end{equation}
These equations use the engineering (not physics) sign convention for the phasors where the time domain fields are of the form \( \boldsymbol{\mathcal{E}}(\Br, t) = \textrm{Re}( \BE e^{j\omega t} \).
Operation with the gradient from the left produces the Helmholtz equation for each of the fields using nothing more than multiplication and simple substitution
\label{eqn:emtProblemSet1Problem6:400}
\begin{equation}\label{eqn:emtProblemSet1Problem6:420}
\spacegrad^2 \BE = – \mu \epsilon \omega^2 \BE
\end{equation}
\begin{equation}\label{eqn:emtProblemSet1Problem6:440}
\spacegrad^2 I \BB = – \mu \epsilon \omega^2 I \BB.
\end{equation}
There was no reason to go through the headache of looking up or deriving the expansion of \( \spacegrad \cross (\spacegrad \cross \BA ) \) as is required with the traditional vector algebra demonstration of these identities.
Observe that the usual Helmholtz equation for \( \BB \) doesn’t have a pseudoscalar factor. That result can be obtained by just cancelling the factors \( I \) since the \R{3} Euclidean pseudoscalar commutes with all grades (this isn’t the case in \R{2} nor in Minkowski spaces.)
Example: Factoring the Laplacian.
There are various ways to demonstrate the identity
\begin{equation}\label{eqn:gaTutorial:660}
\spacegrad \cross \lr{ \spacegrad \cross \BA } = \spacegrad \lr{ \spacegrad \cdot \BA } – \spacegrad^2 \BA,
\end{equation}
such as the use of (somewhat obscure) tensor contraction techniques. We can also do this with Geometric Algebra (using a different set of obscure techniques) by factoring the Laplacian action on a vector
\begin{equation}\label{eqn:gaTutorial:700}
\begin{aligned}
\spacegrad^2 \BA
&=
\spacegrad (\spacegrad \BA) \\
&=
\spacegrad (\spacegrad \cdot \BA + \spacegrad \wedge \BA) \\
&=
\spacegrad (\spacegrad \cdot \BA)
+
\spacegrad \cdot (\spacegrad \wedge \BA) \\
%+
%\cancel{\spacegrad \wedge \spacegrad \wedge \BA}
&=
\spacegrad (\spacegrad \cdot \BA)
+
\spacegrad \cdot (\spacegrad \wedge \BA).
\end{aligned}
\end{equation}
Should we wish to express the last term using cross products, a grade one selection operation can be used
\begin{equation}\label{eqn:gaTutorial:680}
\begin{aligned}
\spacegrad \cdot (\spacegrad \wedge \BA)
&=
\gpgradeone{ \spacegrad (\spacegrad \wedge \BA) } \\
&=
\gpgradeone{ \spacegrad I (\spacegrad \cross \BA) } \\
&=
\gpgradeone{ I \spacegrad \wedge (\spacegrad \cross \BA) } \\
&=
\gpgradeone{ I^2 \spacegrad \cross (\spacegrad \cross \BA) } \\
&=
\spacegrad \cross (\spacegrad \cross \BA).
\end{aligned}
\end{equation}
Here coordinate expansion was not required in any step.
Learning more.
Some references that may be helpful to learn more about Geometric Algebra are [2], [1], [4], and [3].
References
[1] C. Doran and A.N. Lasenby. Geometric algebra for physicists. Cambridge University Press New York, Cambridge, UK, 1st edition, 2003.
[2] L. Dorst, D. Fontijne, and S. Mann. Geometric Algebra for Computer Science. Morgan Kaufmann, San Francisco, 2007.
[3] D. Hestenes. New Foundations for Classical Mechanics. Kluwer Academic Publishers, 1999.
[4] A. Macdonald. Vector and Geometric Calculus. CreateSpace Independent Publishing Platform, 2012.
code
more code
~~~~