Geometric Algebra

Geometric algebra: a very short video introduction.

August 1, 2023 math and physics play , ,


Here’s another geometric algebra video, weighing in at a massive 2:29 (minutes.)

This video is a very short introduction to geometric algebra, showing the most basic concepts and how to apply them to the 2D geometric algebra of the Euclidean plane. Those concepts aren’t developed further in this video, but the idea is just to show the most basic consequences of the definitions.

Prerequisites: basic vector algebra (basis, vector space, dot product space, arrow representation of vectors, graphical vector addition, …)

If you watched yesterday’s video, don’t both watching this one, since it is extracted from that with no additions.

You can find the video on Google’s censorship-tube, and on odysee.

Video: Circular velocity and acceleration with geometric algebra

July 31, 2023 math and physics play , , , ,

Months ago, I used Manim to create a outline a geometric algebra treatment of the derivation of the circular velocity and acceleration formulas that you would find in a first year undergrad physics course.  I never published it, since overlaying audio and getting the timing of the audio and video right is hard (at least for me.)  I’m also faced with the difficulty of not being able to speak properly when attempting to record myself.
Anyways, I finally finished the audio overlays (it was sitting waiting for me to record the final 10s of audio!), and have posted this little 11 minute video, which includes:
  • A reminder of what circular coordinates are.
  • A brief outline of what is meant by each of the circular basis vectors.
  • A derivation of those basis vectors (just basic geometry, and no GA.)
  • A brief introduction to geometric algebra, and geometric algebra for a plane, including the “imaginary” \( i = \Be_1 \Be_2 \), and it’s use for rotation and polar form.
  • How to express the circular basis vectors in polar form.
  • Application of all the ideas above to compute velocity and acceleration.
  • Circular coordinate examples of velocity and acceleration.
It probably doesn’t actually make sense to try to pack all these ideas into one video, but oh well — that’s what I did.
You can find the video on google’s censorship-tube, and on odysee.

Complex-pair representation of GA(2,0) multivectors

June 15, 2023 math and physics play , ,

[Click here for a PDF version of this post]

We found previously that a complex pair representation of a GA(2,0) multivector had a compact geometric product realization. Now that we know the answer, let’s work backwards from that representation to verify that everything matches our expectations.

We are representing a multivector of the form
\begin{equation}\label{eqn:bicomplexCl20:20}
M = a + b \Be_1 \Be_2 + x \Be_1 + y \Be_2,
\end{equation}
as the pair of complex numbers
\begin{equation}\label{eqn:bicomplexCl20:40}
M \sim \lr{ a + i b, x + i y }.
\end{equation}
Given a pair of multivectors with this complex representation
\begin{equation}\label{eqn:bicomplexCl20:60}
\begin{aligned}
M &= \lr{ z_1, z_2 } \\
N &= \lr{ q_1, q_2 },
\end{aligned}
\end{equation}
we found that our geometric product representation was
\begin{equation}\label{eqn:bicomplexCl20:80}
M N \sim
\lr{ z_1 q_1 + z_2^\conj q_2, z_2 q_1 + z_1^\conj q_2 }.
\end{equation}

Our task is now to verify that this is correct. Let’s set
\begin{equation}\label{eqn:bicomplexCl20:100}
\begin{aligned}
z_1 &= a + i b \\
q_1 &= a’ + i b’ \\
z_2 &= x + i y \\
q_2 &= x’ + i y’,
\end{aligned}
\end{equation}
and proceed with an expansion of the even grade components
\begin{equation}\label{eqn:bicomplexCl20:120}
\begin{aligned}
z_1 q_1 + z_2^\conj q_2
&=
\lr{ a + i b } \lr{ a’ + i b’ }
+
\lr{ x – i y } \lr{ x’ + i y’ } \\
&=
a a’ – b b’ + x x’ + y y’
+ i \lr{ b a’ + a b’ + x y’ – y x’ } \\
&=
x x’ + y y’ + i \lr{ x y’ – y x’ } + \quad a a’ – b b’ + i \lr{ b a’ + a b’ }.
\end{aligned}
\end{equation}
The first terms is clearly the geometric product of two vectors
\begin{equation}\label{eqn:bicomplexCl20:140}
\lr{ x \Be_1 + y \Be_2 } \lr{ x’ \Be_1 + y’ \Be_2 }
=
x x’ + y y’ + i \lr{ x y’ – y x’ },
\end{equation}
and we are able to verify that the second parts can be factored too
\begin{equation}\label{eqn:bicomplexCl20:160}
\lr{ a + b i } \lr{ a’ + b’ i }
=
a a’ – b b’ + i \lr{ b a’ + a b’ }.
\end{equation}
This leaves us with
\begin{equation}\label{eqn:bicomplexCl20:180}
\gpgrade{ M N }{0,2} = \gpgradeone{ M } \gpgradeone{ N } + \gpgrade{ M }{0,2} \gpgrade{ N }{0,2},
\end{equation}
as expected. This part of our representation checks out.

Now, let’s look at the vector component of our representation. First note that to convert from our complex representation of our vector \( z = x + i y \) to the standard basis representation of our vector, we need only multiply by \( \Be_1 \) on the left, for example:
\begin{equation}\label{eqn:bicomplexCl20:220}
\Be_1 \lr{ x + i y } = \Be_1 x + \Be_1 \Be_1 \Be_2 y = \Be_1 x + \Be_2 y.
\end{equation}
So, for the vector component of our assumed product representation, we have
\begin{equation}\label{eqn:bicomplexCl20:200}
\begin{aligned}
\Be_1 \lr{ z_2 q_1 + z_1^\conj q_2 }
&=
\Be_1 \lr{ x + i y } \lr{ a’ + i b’ }
+
\Be_1 \lr{ a – i b } \lr{ x’ + i y’ } \\
&=
\Be_1 \lr{ x + i y } \lr{ a’ + i b’ }
+
\lr{ a + i b } \Be_1 \lr{ x’ + i y’ } \\
&=
\gpgradeone{ M } \gpgrade{ N}{0,2}
+ \gpgrade{ M }{0,2} \gpgradeone{ N},
\end{aligned}
\end{equation}
as expected.

Our complex-pair realization of the geometric product checks out.

A complex-pair representation of GA(2,0).

June 15, 2023 math and physics play , , , ,

[Click here for a PDF version of this post]

Motivation.

Suppose that we want to represent GA(2,0) (Euclidean) multivectors as a pair of complex numbers, with a structure like
\begin{equation}\label{eqn:bicomplexGA20:20}
M = (m_1, m_2),
\end{equation}
where
\begin{equation}\label{eqn:bicomplexGA20:40}
\begin{aligned}
\gpgrade{M}{0,2} &\sim m_1 \\
\gpgrade{M}{1} &\sim m_2.
\end{aligned}
\end{equation}
Specifically
\begin{equation}\label{eqn:bicomplexGA20:60}
\begin{aligned}
\gpgrade{M}{0} &= \textrm{Re}(m_1) \\
\gpgrade{M}{1} \cdot \Be_1 &= \textrm{Re}(m_2) \\
\gpgrade{M}{1} \cdot \Be_2 &= \textrm{Im}(m_2) \\
\gpgrade{M}{2} i^{-1} &= \textrm{Im}(m_1),
\end{aligned}
\end{equation}
where \( i \sim \Be_1 \Be_2 \).

Multivector product representation.

Let’s figure out how we can represent the various GA products, starting with the geometric product. Let
\begin{equation}\label{eqn:bicomplexGA20:80}
\begin{aligned}
M &= \gpgrade{M}{0,2} + \gpgrade{M}{1} = (m_1, m_2) = (m_{11} + m_{12} i, m_{21} + m_{22} i) \\
N &= \gpgrade{N}{0,2} + \gpgrade{N}{1} = (n_1, n_2) = (n_{11} + n_{12} i, n_{21} + n_{22} i),
\end{aligned}
\end{equation}
so
\begin{equation}\label{eqn:bicomplexGA20:200}
\begin{aligned}
M N
&= \gpgrade{M}{0,2} \gpgrade{N}{0,2} + \gpgrade{M}{1} \gpgrade{N}{1} \\
&\quad+ \gpgrade{M}{1} \gpgrade{N}{0,2} + \gpgrade{M}{0,2} \gpgrade{N}{1}
\end{aligned}
\end{equation}

The first two terms have only even grades, and the second two terms are vectors. The complete representation of the even grade components of this multivector product is
\begin{equation}\label{eqn:bicomplexGA20:240}
\gpgrade{M N}{0,2} \sim \lr{ m_1 n_1 + \textrm{Re}(m_2 n_2^\conj) – i \textrm{Im}(m_2 n_2^\conj), 0 },
\end{equation}
or
\begin{equation}\label{eqn:bicomplexGA20:260}
\begin{aligned}
\gpgrade{M N}{0} &= \textrm{Re}\lr{ m_1 n_1 + m_2 n_2^\conj } \\
\gpgrade{M N}{2} i^{-1} &= \textrm{Im}\lr{ m_1 n_1 – m_2 n_2^\conj }.
\end{aligned}
\end{equation}

For the vector components we have
\begin{equation}\label{eqn:bicomplexGA20:280}
\begin{aligned}
\gpgrade{M N}{1}
&=
\gpgrade{M}{1} \gpgrade{N}{0} + \gpgrade{M}{0} \gpgrade{N}{1}
+
\gpgrade{M}{1} \gpgrade{N}{2} + \gpgrade{M}{2} \gpgrade{N}{1} \\
&= \gpgrade{M}{1} n_{11} + m_{11} \gpgrade{N}{1} + \gpgrade{M}{1} i n_{12} + i m_{12} \gpgrade{N}{1}.
\end{aligned}
\end{equation}
For these,
\begin{equation}\label{eqn:bicomplexGA20:300}
\begin{aligned}
\gpgrade{M}{1} i
&= \lr{ m_{21} \Be_1 + m_{22} \Be_2 } \Be_{12}
&= – m_{22} \Be_1 + m_{21} \Be_2,
\end{aligned}
\end{equation}
and
\begin{equation}\label{eqn:bicomplexGA20:320}
\begin{aligned}
i \gpgrade{N}{1}
&= \Be_{12} \lr{ n_{21} \Be_1 + n_{22} \Be_2 }
&=
n_{22} \Be_1 – n_{21} \Be_2.
\end{aligned}
\end{equation}
Comparing to
\begin{equation}\label{eqn:bicomplexGA20:340}
i (a + i b)
= -b + i a,
\end{equation}
we see that
\begin{equation}\label{eqn:bicomplexGA20:360}
\gpgrade{M N}{1}
\sim
\lr{ 0, n_{11} m_2 + m_{11} n_2 + n_{12} i m_2 – m_{12} i n_2 }.
\end{equation}
If we want the vector coordinates, those are
\begin{equation}\label{eqn:bicomplexGA20:380}
\begin{aligned}
\gpgrade{M N}{1} \cdot \Be_1 &= \textrm{Re} \lr{ n_{11} m_2 + m_{11} n_2 + n_{12} i m_2 – m_{12} i n_2 } \\
\gpgrade{M N}{1} \cdot \Be_2 &= \textrm{Im} \lr{ n_{11} m_2 + m_{11} n_2 + n_{12} i m_2 – m_{12} i n_2 }.
\end{aligned}
\end{equation}

Summary.

\begin{equation}\label{eqn:bicomplexGA20:n}
M N \sim
\lr{ m_1 n_1 + \textrm{Re}(m_2 n_2^\conj) – i \textrm{Im}(m_2 n_2^\conj), n_{11} m_2 + m_{11} n_2 + n_{12} i m_2 – m_{12} i n_2 }.
\end{equation}

A sample Mathematica implementation is available, as well as an example notebook (that also doubles as a test case.)

Clarification.

I skipped a step above, showing the correspondances to the dot and wedge product.

Let \(z = a + bi\), and \(w = c + di\). Then:
\begin{equation}\label{eqn:bicomplexGA20:420}
\begin{aligned}
z w^\conj
&=
\lr{ a + b i } \lr{ c – d i } \\
&= a c + b d -i \lr{ a d – b c }.
\end{aligned}
\end{equation}
Compare that to the geometric product of two vectors \( \Bx = a \Be_1 + b \Be_2 \), and \( \By = c \Be_1 + d \Be_2 \), where we have
\begin{equation}\label{eqn:bicomplexGA20:440}
\begin{aligned}
\Bx \By &= \Bx \cdot \By + \Bx \wedge \By \\
&= \lr{ a \Be_1 + b \Be_2 } \lr{ c \Be_1 + d \Be_2 } \\
&= a c + b d + \Be_1 \Be_2 \lr{ a d – b c }.
\end{aligned}
\end{equation}
So we have
\begin{equation}\label{eqn:bicomplexGA20:460}
\begin{aligned}
a b + cd &= \Bx \cdot \By = \textrm{Re} \lr{ z w^\conj } \\
a d – b c &= \lr{ \Bx \wedge \By } \Be_{12}^{-1} = – \textrm{Im} \lr{ z w^\conj }.
\end{aligned}
\end{equation}
We see that \( \lr{z w^\conj}^\conj = z^\conj w \) can be used as a representation of the geometric product of two vectors (setting \( i = \Be_1 \Be_2 \) as usual.)

Another simplification.

We have sums of the form
\begin{equation}\label{eqn:bicomplexGA20:480}
\textrm{Re}(z) w \pm \textrm{Im}(z) i w
\end{equation}
above. Let’s see if those can be simplified. For the positive case we have
\begin{equation}\label{eqn:bicomplexGA20:500}
\begin{aligned}
\textrm{Re}(z) w + \textrm{Im}(z) i w
&=
\inv{2} \lr{ z + z^\conj } w + \inv{2} \lr{ z – z^\conj } w \\
&=
z w,
\end{aligned}
\end{equation}
and for the negative case, we have
\begin{equation}\label{eqn:bicomplexGA20:520}
\begin{aligned}
\textrm{Re}(z) w – \textrm{Im}(z) i w
&=
\inv{2} \lr{ z + z^\conj } w – \inv{2} \lr{ z – z^\conj } w \\
&=
z^\conj w.
\end{aligned}
\end{equation}
This, with the vector-vector product simplification above, means that we can represent the full multivector product in this representation as just
\begin{equation}\label{eqn:bicomplexGA20:540}
M N \sim
\lr{ m_1 n_1 + m_2^\conj n_2, m_2 n_1 + m_1^\conj n_2 }.
\end{equation}

Static load with two forces in a plane, solved a few different ways.

February 12, 2023 math and physics play , , , , , , , , , , , ,

[Click here for a PDF version of this post]

There’s a class of simple statics problems that are pervasive in high school physics and first year engineering classes (for me that CIV102.)  These problems are illustrated in the figures below. Here we have a static load under gravity, and two supporting members (rigid beams or wire lines), which can be under compression, or tension, depending on the geometry.

The problem, given the geometry, is to find the magnitudes of the forces in the two members. The equation to solve is of the form
\begin{equation}\label{eqn:twoForceStaticsProblem:20}
\BF_s + \BF_r + m \Bg = 0.
\end{equation}
The usual way to solve such a problem is to resolve the forces into components. We will do that first here as a review, but then also solve the system using GA techniques, which are arguably simpler or more direct.

Solving as a conventional vector equation.

If we were back in high school we could have written our forces out in vector form
\begin{equation}\label{eqn:twoForceStaticsProblem:160}
\begin{aligned}
\BF_r &= f_r \lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } \\
\BF_s &= f_s \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta } \\
\Bg &= g \Be_1.
\end{aligned}
\end{equation}
Here the gravitational direction has been pointed along the x-axis.

Our equation to solve is now
\begin{equation}\label{eqn:twoForceStaticsProblem:180}
f_r \lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } + f_s \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta } + m g \Be_1 = 0.
\end{equation}
This we can solve as a set of scalar equations, one for each of the \( \Be_1 \) and \( \Be_2 \) directions
\begin{equation}\label{eqn:twoForceStaticsProblem:200}
\begin{aligned}
f_r \cos\alpha + f_s \cos\beta + m g &= 0 \\
f_r \sin\alpha + f_s \sin\beta &= 0.
\end{aligned}
\end{equation}
Our solution is
\begin{equation}\label{eqn:twoForceStaticsProblem:220}
\begin{aligned}
\begin{bmatrix}
f_r \\
f_s
\end{bmatrix}
&=
{\begin{bmatrix}
\cos\alpha & \cos\beta \\
\sin\alpha & \sin\beta
\end{bmatrix}}^{-1}
\begin{bmatrix}
– m g \\
0
\end{bmatrix} \\
&=
\inv{
\cos\alpha \sin\beta – \cos\beta \sin\alpha
}
\begin{bmatrix}
\sin\beta & -\cos\beta \\
-\sin\alpha & \cos\alpha
\end{bmatrix}
\begin{bmatrix}
– m g \\
0
\end{bmatrix} \\
&=
\frac{ m g }{ \cos\alpha \sin\beta – \cos\beta \sin\alpha }
\begin{bmatrix}
-\sin\beta \\
\sin\alpha
\end{bmatrix} \\
&=
\frac{ m g }{ \sin\lr{ \beta – \alpha } }
\begin{bmatrix}
-\sin\beta \\
\sin\alpha
\end{bmatrix}.
\end{aligned}
\end{equation}
We have to haul out some trig identities to make a final simplification, but find a solution to the system.

Another approach, is to take cross products with the unit force direction.  First note that
\begin{equation}\label{eqn:twoForceStaticsProblem:240}
\begin{aligned}
\lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } \cross \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta }
&=
\Be_3 \lr{
\cos\alpha \sin\beta – \sin\alpha \cos\beta
} \\
&=
\Be_3 \sin\lr{ \beta – \alpha }.
\end{aligned}
\end{equation}

If we take cross products with each of the unit vectors, we find
\begin{equation}\label{eqn:twoForceStaticsProblem:260}
\begin{aligned}
f_r \lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } \cross \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta } + m g \Be_1 \cross \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta } &= 0 \\
f_s \lr{ \Be_1 \cos\beta + \Be_2 \sin\beta } \cross \lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } + m g \Be_1 \cross \lr{ \Be_1 \cos\alpha + \Be_2 \sin\alpha } &= 0,
\end{aligned}
\end{equation}
or
\begin{equation}\label{eqn:twoForceStaticsProblem:280}
\begin{aligned}
\Be_3 f_r \sin\lr{ \beta – \alpha } + m g \Be_3 \sin\beta &= 0 \\
-\Be_3 f_s \sin\lr{ \beta – \alpha } + m g \Be_3 \sin\alpha &= 0.
\end{aligned}
\end{equation}
After cancelling the \( \Be_3 \)’s, we find the same result as we did solving the scalar system. This was a fairly direct way to solve the system, but the intermediate cross products were a bit messy. We will try this cross product using the wedge product. Switching from the cross to the wedge, by itself, will not make things any simpler or more complicated, but we can use the complex exponential form of the unit vectors for the forces, and that will make things simpler.

Geometric algebra setup and solution.

As usual for planar problems, let’s write \( i = \Be_1 \Be_2 \) for the plane pseudoscalar, which allows us to write the forces in polar form
\begin{equation}\label{eqn:twoForceStaticsProblem:40}
\begin{aligned}
\BF_r &= f_r \Be_1 e^{i\alpha} \\
\BF_s &= f_s \Be_1 e^{i\beta} \\
\Bg &= g \Be_1,
\end{aligned}
\end{equation}
Our equation to solve is now
\begin{equation}\label{eqn:twoForceStaticsProblem:60}
f_r \Be_1 e^{i\alpha} + f_s \Be_1 e^{i\beta} + m g \Be_1 = 0.
\end{equation}
The solution for either \( f_r \) or \( f_s \) is now trivial, as we only have to take wedge products with the force direction vectors to solve for the magnitudes.  That is
\begin{equation}\label{eqn:twoForceStaticsProblem:80}
\begin{aligned}
f_r \lr{ \Be_1 e^{i\alpha} +} \wedge \lr{ \Be_1 e^{i\beta} } + m g \Be_1 \wedge \lr{ \Be_1 e^{i\beta} } &= 0 \\
f_s \lr{ \Be_1 e^{i\beta} +} \wedge \lr{ \Be_1 e^{i\alpha} } + m g \Be_1 \wedge \lr{ \Be_1 e^{i\alpha} } &= 0.
\end{aligned}
\end{equation}
Writing the wedges as grade two selections, and noting that \( e^{i\theta} \Be_1 = \Be_1 e^{-i\theta } \), we have
\begin{equation}\label{eqn:twoForceStaticsProblem:100}
\begin{aligned}
f_r &= – m g \frac{ \gpgradetwo{\Be_1^2 e^{i\beta}} }{ \gpgradetwo{ \Be_1^2 e^{-i\alpha} e^{i\beta} } } = – m g \frac{ \sin\beta }{ \sin\lr{ \beta – \alpha } } \\
f_s &= – m g \frac{ \gpgradetwo{\Be_1^2 e^{i\alpha}} }{ \gpgradetwo{ \Be_1^2 e^{-i\beta} e^{i\alpha} } } = m g \frac{ \sin\alpha }{ \sin\lr{ \beta – \alpha } }.
\end{aligned}
\end{equation}
The grade selection a unit pseudoscalar factor in both the denominator and numerator, which cancelled out to give the final scalar result.

As a complex variable problem.

Observe that we could have reframed the problem as a multivector problem by left multiplying \ref{eqn:twoForceStaticsProblem:60} by \( \Be_1 \) to find
\begin{equation}\label{eqn:twoForceStaticsProblem:120}
f_r e^{i\alpha} + f_s e^{i\beta} + m g = 0.
\end{equation}
Alternatively, we could have written the equations this way directly as a complex variable problem.

We can now solve for \( f_r \) or \( f_s \) by multiplying by the conjugate of one of the complex exponentials. That is
\begin{equation}\label{eqn:twoForceStaticsProblem:140}
\begin{aligned}
f_r + f_s e^{i\beta} e^{-i\alpha} + m g e^{-i\alpha} &= 0 \\
f_r e^{i\alpha} e^{-i\beta} + f_s + m g e^{-i\beta} &= 0.
\end{aligned}
\end{equation}
Selecting the bivector part of these equations (if interpreted as a multivector equation), or selecting the imaginary (if interpreting as a complex variables equation), will eliminate one of the force magnitudes from each equation, after which we find the same result.

This last approach, treating the problem as either a complex number problem (selecting imaginaries), or multivector problem (selecting bivectors), seems the simplest. We have no messing cross products, nor do we have to haul out the trig identities (the sine difference in the denominator comes practically for free, as it did with the wedge product method.)