## Goal.

Here we will explore the multivector form of the Leibniz integral theorem (aka. Feynman’s trick in one dimension), as discussed in [1].

Given a boundary $$\Omega(t)$$ that varies in time, we seek to evaluate
\label{eqn:LeibnizIntegralTheorem:20}
\ddt{} \int_{\Omega(t)} F d^p \Bx \lrpartial G.

Recall that when the bounding volume is fixed, we have
\label{eqn:LeibnizIntegralTheorem:40}
\int_{\Omega} F d^p \Bx \lrpartial G = \int_{\partial \Omega} F d^{p-1} \Bx G,

and expect a few terms that are variations of the RHS if we take derivatives.

## Simplest case: scalar function, one variable.

With
\label{eqn:LeibnizIntegralTheorem:60}
A(t) = \int_{a(t)}^{b(t)} f(u, t) du,

If we can find an antiderivative, such that
\label{eqn:LeibnizIntegralTheorem:80}
\PD{u}{F(u,t)} = f(u, t),

or
\label{eqn:LeibnizIntegralTheorem:90}
F(u, t) = \int f(u, t) du.

\label{eqn:LeibnizIntegralTheorem:100}
\begin{aligned}
A(t)
&=
\int_{a(t)}^{b(t)} f(u, t) du \\
&=
\int_{a(t)}^{b(t)} \PD{u}{F(u,t)} du \\
&= F( b(t), t ) – F( a(t), t ).
\end{aligned}

Should we attempt to take derivatives, we have a contribution from the first parameter that is entirely dependent on the boundary, and a contribution from the second parameter that is entirely independent of the boundary. That is
\label{eqn:LeibnizIntegralTheorem:120}
\begin{aligned}
\ddt{} \int_{a(t)}^{b(t)} f(u, t) du
&=
\PD{b}{ F } \PD{t}{b}
-\PD{a}{ F } \PD{t}{a}
+ \evalrange{\PD{t}{F(u, t)}}{u = a(t)}{b(t)} \\
&=
f(b(t), t) b'(t) –
f(a(t), t) a'(t)
+ \int_{a(t)}^{b(t)} \PD{t}{} f(u, t) du.
\end{aligned}

In the second step, the antiderivative function $$F$$ has been restated in it’s original integral form \ref{eqn:LeibnizIntegralTheorem:90}. We are able to take the derivative into the integral, since we first evaluate that derivative, independent of the boundary, and then evaluate the result at the respective end points of the boundary.

## Next simplest case: Multivector line integral (perfect derivative.)

Given an $$N$$ dimensional vector space, and a path parameterized by vector $$\Bx = \Bx(u)$$. The line integral special case of the fundamental theorem of calculus is found by evaluating
\label{eqn:LeibnizIntegralTheorem:140}
\int F(u) d\Bx \lrpartial G(u),

where $$F, G$$ are multivectors, and
\label{eqn:LeibnizIntegralTheorem:160}
\begin{aligned}
d\Bx &= \PD{u}{\Bx} du = \Bx_u du \\
\lrpartial &= \Bx^u \stackrel{ \leftrightarrow }{\PD{u}{}},
\end{aligned}

where $$\Bx_u \Bx^u = \Bx_u \cdot \Bx^u = 1$$.

Evaluating the integral, we have
\label{eqn:LeibnizIntegralTheorem:180}
\begin{aligned}
\int F(u) d\Bx \lrpartial G(u)
&=
\int F(u) \Bx_u du \Bx^u \stackrel{ \leftrightarrow }{\PD{u}{}} G(u) \\
&=
\int du \PD{u}{} \lr{ F(u) G(u) } \\
&=
F(u) G(u).
\end{aligned}

If we allow $$F, G, \Bx$$ to each have time dependence
\label{eqn:LeibnizIntegralTheorem:200}
\begin{aligned}
F &= F(u, t) \\
G &= G(u, t) \\
\Bx &= \Bx(u, t),
\end{aligned}

so we have
\label{eqn:LeibnizIntegralTheorem:220}
\ddt{} \int_{u = a(t)}^{b(t)} F(u, t) d\Bx \lrpartial G(u, t)
=
\evalrange{ \ddt{u} \PD{u}{} \lr{ F(u, t) G(u, t) } }{u = a(t)}{b(t)}
+ \evalrange{\ddt{} \lr{ F(u, t) G(u, t) } }{u = a(t)}{b(t)}
.

## General multivector line integral.

Now suppose that we have a general multivector line integral
\label{eqn:LeibnizIntegralTheorem:240}
A(t) = \int_{a(t)}^{b(t)} F(u, t) d\Bx G(u, t),

where $$d\Bx = \Bx_u du$$, $$\Bx_u = \partial \Bx(u, t)/\partial u$$. Writing out the integrand explicitly, we have
\label{eqn:LeibnizIntegralTheorem:260}
A(t) = \int_{a(t)}^{b(t)} du F(u, t) \Bx_u(u, t) G(u, t).

Following our logic with the first scalar case, let
\label{eqn:LeibnizIntegralTheorem:280}
\PD{u}{B(u, t)} = F(u, t) \Bx_u(u, t) G(u, t).

We can now evaluate the derivative
\label{eqn:LeibnizIntegralTheorem:300}
\ddt{A(t)} = \evalrange{ \ddt{u} \PD{u}{B} }{u = a(t)}{b(t)} + \evalrange{ \PD{t}{}B(u, t) }{u = a(t)}{b(t)}.

Writing \ref{eqn:LeibnizIntegralTheorem:280} in integral form, we have
\label{eqn:LeibnizIntegralTheorem:320}
B(u, t) = \int du F(u, t) \Bx_u(u, t) G(u, t),

so
\label{eqn:LeibnizIntegralTheorem:340}
\begin{aligned}
\ddt{A(t)}
&= \evalrange{ \ddt{u} \PD{u}{B} }{u = a(t)}{b(t)} +
\evalbar{ \PD{t’}{} \int_{a(t)}^{b(t)} du F(u, t’) d\Bx_u(u, t’) G(u, t’) }{t’ = t} \\
&= \evalrange{ \ddt{u} F(u, t) \Bx_u(u, t) G(u, t) }{u = a(t)}{b(t)} +
\int_{a(t)}^{b(t)} \PD{t}{} F(u, t) d\Bx(u, t) G(u, t),
\end{aligned}

so
\label{eqn:LeibnizIntegralTheorem:360}
\ddt{} \int_{a(t)}^{b(t)} F(u, t) d\Bx(u, t) G(u, t)
= \evalrange{ F(u, t) \ddt{\Bx}(u, t) G(u, t) }{u = a(t)}{b(t)} +
\int_{a(t)}^{b(t)} \PD{t}{} F(u, t) d\Bx(u, t) G(u, t).

This is perhaps clearer, if just written as:
\label{eqn:LeibnizIntegralTheorem:380}
\ddt{} \int_{a(t)}^{b(t)} F d\Bx G
= \evalrange{ F \ddt{\Bx} G }{u = a(t)}{b(t)} +
\int_{a(t)}^{b(t)} \PD{t}{} F d\Bx G.

As a check, it’s worth pointing out that we can recover the one dimensional result, writing $$\Bx = u \Be_1$$, $$f = F \Be_1^{-1}$$, and $$G = 1$$, for
\label{eqn:LeibnizIntegralTheorem:400}
\ddt{} \int_{a(t)}^{b(t)} f du
= \evalrange{ f(u) \ddt{u} }{u = a(t)}{b(t)} +
\int_{a(t)}^{b(t)} du \PD{t}{f}.

## Next steps.

I’ve tried a couple times on paper to do surface integral variations of this (allowing the surface to vary with time), and don’t think that I’ve gotten it right. Will try again (or perhaps just look it up and see what the result is supposed to look like, then see how that translates into the GC formalism.)

# References

[1] Wikipedia contributors. Leibniz integral rule — Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/index.php?title=Leibniz_integral_rule&oldid=1223666713, 2024. [Online; accessed 22-May-2024].

## Triangle area problem: REVISITED.

On LinkedIn, James asked for ideas about how to solve What is the total area of ABC? You should be able to solve this! using geometric algebra.

I found a couple ways, and this last variation is pretty cool.

fig. 1. Triangle with given areas.

To start with I’ve re-sketched the triangle with the areas slightly more to scale in fig. 1, where areas $$A_1 = 40, A_2 = 30, A_3 = 35, A_4 = 84$$ are given. The aim is to find the total area $$\sum A_i$$.

If we had the vertex and center locations as vectors, we could easily compute the total area, but we don’t. We also don’t know the locations of the edge intersections, but can calculate those, as they satisfy
\label{eqn:triangle_area_problem:20}
\begin{aligned}
\BD &= s_1 \BA = \BB + t_1 \lr{ \BC – \BB } \\
\BE &= s_2 \BC = \BA + t_2 \lr{ \BB – \BA } \\
\BF &= s_3 \BB = \BA + t_3 \lr{ \BC – \BA }.
\end{aligned}

It turns out that the problem is over specified, and we will only need $$\BD, \BE$$. To find those, we may eliminate the $$t_i$$’s by wedging appropriately (or equivalently, using Cramer’s rule), to find
\label{eqn:triangle_area_problem:40}
\begin{aligned}
s_1 \BA \wedge \lr{ \BC – \BB } &= \BB \wedge \lr{ \BC – \BB } \\
s_2 \BC \wedge \lr{ \BB – \BA } &= \BA \wedge \lr{ \BB – \BA },
\end{aligned}

or
\label{eqn:triangle_area_problem:60}
\begin{aligned}
s_1 &= \frac{\BB \wedge \BC }{\BA \wedge \lr{ \BC – \BB }} \\
s_2 &= \frac{\BA \wedge \BB }{\BC \wedge \lr{ \BB – \BA }}.
\end{aligned}

Now let’s introduce some scalar area variables, each pseudoscalar multiples of bivector area elements, with $$i = \Be_{1} \Be_2$$
\label{eqn:triangle_area_problem:81}
\begin{aligned}
X &= \lr{ \BA \wedge \BB } i^{-1} = \begin{vmatrix} \BA & \BB \end{vmatrix} \\
Y &= \lr{ \BC \wedge \BB } i^{-1} = \begin{vmatrix} \BC & \BB \end{vmatrix} \\
Z &= \lr{ \BA \wedge \BC } i^{-1} = \begin{vmatrix} \BA & \BC \end{vmatrix},
\end{aligned}

Note that the orientation of all of these has been picked to have a positive orientation matching the figure, and that the
triangle area that we seek for this problem is $$1/2 \Abs{ \BA \wedge \BB } = X/2$$.

The intersection parameters, after cancelling pseudoscalar factors, are
\label{eqn:triangle_area_problem:100}
\begin{aligned}
s_1 &= \frac{\BB \wedge \BC }{\BA \wedge \BC – \BA \wedge \BB } = \frac{-Y}{Z – X} \\
s_2 &= \frac{\BA \wedge \BB }{\BC \wedge \BB – \BC \wedge \BA } = \frac{X}{Y + Z},
\end{aligned}

so the intersection points are
\label{eqn:triangle_area_problem:120}
\begin{aligned}
\BD &= \BA \frac{Y}{X – Z} \\
\BE &= \BC \frac{X}{Y + Z}.
\end{aligned}

Observe that both scalar factors are positive (i.e.: $$X > Z$$.)

We may now express all the known areas in terms of our area variables
\label{eqn:triangle_area_problem:140}
\begin{aligned}
A_1 &= \inv{2} \lr{ \BD \wedge \BC } i^{-1} \\
A_1 + A_2 &= \inv{2} \lr{ \BA \wedge \BC } i^{-1} \\
A_1 + A_2 + A_3 &= \inv{2} \lr{ \BA \wedge \BE } i^{-1} \\
A_2 &= \inv{2} \lr{ \lr{\BA – \BD} \wedge \lr{ \BC – \BD } } i^{-1}\\
A_3 &= \inv{2} \lr{ \lr{\BA – \BC} \wedge \lr{ \BE – \BC } } i^{-1}\\
A_5 &= \inv{2} \lr{ \lr{\BB – \BC} \wedge \lr{ \BF – \BC } } i^{-1}.
\end{aligned}

As mentioned, the problem is over specified, and we can get away with just the first three of these relations to solve for total area. Eliminating $$\BD, \BE$$ from those, gives us
\label{eqn:triangle_area_problem:180}
A_1 = \inv{2} \frac{Y}{X – Z} \lr{ \BA \wedge \BC } i^{-1} = \frac{Z}{2} \lr{ \frac{Y}{X – Z} },

\label{eqn:triangle_area_problem:460}
A_1 + A_2 = \inv{2} \lr{ \BA \wedge \BC } i^{-1} = \frac{Z}{2},

and
\label{eqn:triangle_area_problem:400}
\begin{aligned}
A_1 + A_2 + A_3 &= \inv{2} \lr{ \BA \wedge \BE } i^{-1} \\
&= \inv{2} \lr{ \BA \wedge \BC } \frac{X}{Y + Z} \\
&= \frac{Z}{2} \frac{X}{Y + Z}.
\end{aligned}

Let’s eliminate $$Z$$ to start with, leaving
\label{eqn:triangle_area_problem:420}
\begin{aligned}
A_1 \lr{ X – 2 A_1 – 2 A_2 } &= Y \lr{ A_1 + A_2 } \\
\lr{ A_1 + A_2 + A_3 } \lr{ Y + 2 A_1 + 2 A_2 } &= \lr{ A_1 + A_2 } X.
\end{aligned}

Solving for $$Y$$ yields
\label{eqn:triangle_area_problem:380}
Y = – 2 A_1 – 2 A_2 + \frac{ \lr{A_1 + A_2} X }{ A_1 + A_2 + A_3 } = \lr{ A_1 + A_2 } \lr{ -2 + \frac{X}{A_1 + A_2 + A_3 } },

and back substution leaves us with a linear equation in $$X$$
\label{eqn:triangle_area_problem:480}
\lr{ A_1 + A_2}^2 \lr{ -2 + \frac{X}{A_1 + A_2 + A_3 } } = A_1 \lr{ X – 2 A_1 – 2 A_2 }.

This is easily solved to find
\label{eqn:triangle_area_problem:500}
\frac{X}{2} = \frac{ \lr{ A_1 + A_2} A_2 \lr{ A_1 + A_2 + A_3 } }{A_2 \lr{ A_1 + A_2} – A_1 A_3 }.

Plugging in the numeric values for the problem solves it, giving a total triangular area of $$\inv{2} \lr{\BA \wedge \BB } i^{-1} = X/2 = 315$$.

Now, I’ll have to watch the video and see how he solved it.

## Triangle area problem

On LinkedIn, James asked for ideas about how to solve What is the total area of ABC? You should be able to solve this! using geometric algebra.

I found one way, but suspect it’s not the easiest way to solve the problem.

To start with I’ve re-sketched the triangle with the areas slightly more to scale in fig. 1, where areas $$A_1, A_2, A_3, A_5$$ are given. The aim is to find the total area $$\sum A_i$$.

fig. 1. Triangle with given areas.

If we had the vertex and center locations as vectors, we could easily compute the total area, but we don’t. We also don’t know the locations of the edge intersections, but can calculate those, as they satisfy
\label{eqn:triangle_area_problem:20}
\begin{aligned}
\BD &= s_1 \BA = \BB + t_1 \lr{ \BC – \BB } \\
\BE &= s_2 \BC = \BA + t_2 \lr{ \BB – \BA } \\
\BF &= s_3 \BB = \BA + t_3 \lr{ \BC – \BA }.
\end{aligned}

Eliminating the $$t_i$$ constants by wedging appropriately (or equivalently, using Cramer’s rule), we find
\label{eqn:triangle_area_problem:40}
\begin{aligned}
s_1 \BA \wedge \lr{ \BC – \BB } &= \BB \wedge \lr{ \BC – \BB } \\
s_2 \BC \wedge \lr{ \BB – \BA } &= \BA \wedge \lr{ \BB – \BA } \\
s_3 \BB \wedge \lr{ \BC – \BA } &= \BA \wedge \lr{ \BC – \BA },
\end{aligned}

or
\label{eqn:triangle_area_problem:60}
\begin{aligned}
s_1 &= \frac{\BB \wedge \BC }{\BA \wedge \lr{ \BC – \BB }} \\
s_2 &= \frac{\BA \wedge \BB }{\BC \wedge \lr{ \BB – \BA }} \\
s_3 &= \frac{\BA \wedge \BC }{\BB \wedge \lr{ \BC – \BA }}.
\end{aligned}

Introducing bivector (signed-area) unknowns
\label{eqn:triangle_area_problem:80}
\begin{aligned}
\alpha &= \BA \wedge \BB = \begin{vmatrix} \BA & \BB \end{vmatrix} \Be_{12} \\
\beta &= \BB \wedge \BC = \begin{vmatrix} \BB & \BC \end{vmatrix} \Be_{12} \\
\gamma &= \BC \wedge \BA = \begin{vmatrix} \BC & \BA \end{vmatrix} \Be_{12}.
\end{aligned}

the intersection parameters are
\label{eqn:triangle_area_problem:100}
\begin{aligned}
s_1 &= \frac{\BB \wedge \BC }{\BA \wedge \BC – \BA \wedge \BB } = \frac{\beta}{-\gamma – \alpha} \\
s_2 &= \frac{\BA \wedge \BB }{\BC \wedge \BB – \BC \wedge \BA } = \frac{\alpha}{-\beta – \gamma} \\
s_3 &= \frac{\BA \wedge \BC }{\BB \wedge \BC – \BB \wedge \BA } = \frac{-\gamma}{\beta + \alpha},
\end{aligned}

so the intersection points are
\label{eqn:triangle_area_problem:120}
\begin{aligned}
\BD &= -\BA \frac{\beta}{\gamma + \alpha} \\
\BE &= -\BC \frac{\alpha}{\beta + \gamma} \\
\BF &= -\BB \frac{\gamma}{\beta + \alpha}.
\end{aligned}

We may now express the known areas in terms of these unknown vectors
\label{eqn:triangle_area_problem:140}
\begin{aligned}
A_1 &= \inv{2} \Abs{ \BD \wedge \BC } \\
A_2 &= \inv{2} \Abs{ \lr{\BC – \BA} \wedge \lr{ \BD – \BA } } \\
A_3 &= \inv{2} \Abs{ \lr{\BA – \BC} \wedge \lr{ \BE – \BC } } \\
A_5 &= \inv{2} \Abs{ \lr{\BB – \BC} \wedge \lr{ \BF – \BC } },
\end{aligned}

but
\label{eqn:triangle_area_problem:160}
\begin{aligned}
\BD – \BA &= -\BA \lr{ 1 + \frac{\beta}{\gamma + \alpha} } \\
\BE – \BC &= -\BC \lr{ 1 + \frac{\alpha}{\beta + \gamma} } \\
\BF – \BC &= -\BB \frac{\gamma}{\beta + \alpha} – \BC,
\end{aligned}

so
\label{eqn:triangle_area_problem:180}
\begin{aligned}
A_1 &= \inv{2} \Abs{ \BA \wedge \BC \frac{\beta}{\gamma + \alpha} } = \inv{2} \Abs{ \gamma} \Abs{ \frac{\beta}{\gamma + \alpha} } \\
A_2 &= \inv{2} \Abs{ \lr{\BC – \BA} \wedge \BA } \Abs{ 1 + \frac{\beta}{\gamma + \alpha} } = \inv{2} \Abs{\gamma} \Abs{ 1 + \frac{\beta}{\gamma + \alpha} } \\
A_3 &= \inv{2} \Abs{ \lr{\BA – \BC} \wedge \BC } \Abs{ 1 + \frac{\alpha}{\beta + \gamma} } = \inv{2} \Abs{\gamma} \Abs{ 1 + \frac{\alpha}{\beta + \gamma} },
\end{aligned}

and
\label{eqn:triangle_area_problem:200}
\begin{aligned}
A_5
&= \inv{2} \Abs{ \lr{\BB – \BC} \wedge \lr{ \BB \frac{\gamma}{\beta + \alpha} + \BC } } \\
&= \inv{2} \Abs{ \BB \wedge \BC – \BC \wedge \BB \frac{\gamma}{\beta + \alpha} } \\
&= \inv{2} \Abs{ \beta } \Abs{ 1 + \frac{\gamma}{\beta + \alpha} }.
\end{aligned}

This gives us four equations in two (bivector) unknowns
\label{eqn:triangle_area_problem:220}
\begin{aligned}
4 A_1^2 \lr{ \gamma + \alpha }^2 &= -\gamma^2 \beta^2 \\
4 A_2^2 \lr{ \gamma + \alpha }^2 &= -\gamma^2 \lr{ \alpha + \beta + \gamma }^2 \\
4 A_3^2 \lr{ \gamma + \beta }^2 &= -\gamma^2 \lr{ \alpha + \beta + \gamma }^2 \\
4 A_4^2 \lr{ \alpha + \beta }^2 &= -\beta^2 \lr{ \alpha + \beta + \gamma }^2.
\end{aligned}

Let’s recast this in terms of area determinants, to eliminate the bivector variables in these equations. To do so, write
\label{eqn:triangle_area_problem:240}
\begin{aligned}
X &= \begin{vmatrix} \BA & \BB \end{vmatrix} \\
Y &= \begin{vmatrix} \BB & \BC \end{vmatrix} \\
Z &= \begin{vmatrix} \BC & \BA \end{vmatrix}.
\end{aligned}

so
\label{eqn:triangle_area_problem:300}
\begin{aligned}
4 A_1^2 \lr{ Z + X }^2 &= Z^2 Y^2 \\
4 A_2^2 \lr{ Z + X }^2 &= Z^2 \lr{ X + Y + Z }^2 \\
4 A_3^2 \lr{ Z + Y }^2 &= Z^2 \lr{ X + Y + Z }^2 \\
4 A_4^2 \lr{ X + Y }^2 &= Y^2 \lr{ X + Y + Z }^2.
\end{aligned}

The goal is now to solve this system for $$X$$. That solution (courtesy of Mathematica), for the numeric values in the original problem $$A_1 = 40, A_2 = 30, A_3 = 35, A_4 = 84$$, is:

\label{eqn:triangle_area_problem:280}
\begin{aligned}
X &= \pm 630 \\
Y &= \mp 280 \\
Z &= \mp 140,
\end{aligned}

so the total area is $$315$$.

Now, I’ll have to watch the video and see how he solved it. I’d guess in a considerably simpler way.

## Bivector transformation, and reciprocal frame for column vectors of a transformation

The author of a book draft I am reading pointed out if a vector transforms as
\Bv \rightarrow M \Bv,

then cross products must transform as
\Ba \cross \Bb \rightarrow \lr{ \textrm{adj}\, M }^\T \lr{ \Ba \cross \Bb }.

Bivectors clearly must transform in the same fashion. We also noticed that the adjoint is related to the reciprocal frame vectors of the columns of $$M$$, but didn’t examine the reciprocal frame formulation of the adjoint in any detail.

Before we do that, let’s consider a slightly simpler case, the transformation of a pseudoscalar. That is
\begin{aligned}
M(\Ba) \wedge M(\Bb) \wedge M(\Bc)
&\rightarrow
\sum_{ijk}
\lr{ \Bm_i a_i } \wedge
\lr{ \Bm_j a_j } \wedge
\lr{ \Bm_k a_k } \\
&=
\sum_{ijk}
\lr{ \Bm_i \wedge \Bm_j \wedge \Bm_k } a_i b_j c_k \\
&=
\sum_{ijk}
\lr{ \Bm_1 \wedge \Bm_2 \wedge \Bm_3 } \epsilon_{ijk} a_i b_j c_k \\
&=
\Abs{M}
\sum_{ijk} \epsilon_{ijk} a_i b_j c_k \\
&=
\Abs{M} \lr{ \Ba \wedge \Bb \wedge \Bc }.
\end{aligned}

This is a well known geometric algebra result (called an outermorphism transformation.)

It’s somewhat amusing that an outermorphism transformation with two wedged vectors is a bit more complicated to express than the same for three. Let’s see if we can find a coordinate free form for such a transformation.
\begin{aligned}
M(\Ba) \wedge M(\Bb)
&=
\sum_{ij} \lr{ \Bm_i a_i } \wedge \lr{ \Bm_j b_j } \\
&=
\sum_{ij} \lr{ \Bm_i \wedge \Bm_j } a_i b_j \\
&=
\sum_{i < j} \lr{ \Bm_i \wedge \Bm_j }
\begin{vmatrix}
a_i & a_j \\
b_i & b_j
\end{vmatrix} \\
&=
\sum_{i < j} \lr{ \Bm_i \wedge \Bm_j } \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_j \wedge \Be_i } }.
\end{aligned}

Recall that the reciprocal frame with respect to the basis $$\setlr{ \Bm_1, \Bm_2, \Bm_3 }$$, assuming this is a non-degenerate basis, has elements of the form
\begin{aligned}
\Bm^1 &= \lr{ \Bm_2 \wedge \Bm_3 } \inv{ \Bm_1 \wedge \Bm_2 \wedge \Bm_3 } \\
\Bm^2 &= \lr{ \Bm_3 \wedge \Bm_1 } \inv{ \Bm_1 \wedge \Bm_2 \wedge \Bm_3 } \\
\Bm^3 &= \lr{ \Bm_1 \wedge \Bm_2 } \inv{ \Bm_1 \wedge \Bm_2 \wedge \Bm_3 }.
\end{aligned}

This can be flipped around as
\begin{aligned}
\Bm_2 \wedge \Bm_3 &= \Bm^1 \Abs{M} I \\
\Bm_3 \wedge \Bm_1 &= \Bm^2 \Abs{M} I \\
\Bm_1 \wedge \Bm_2 &= \Bm^3 \Abs{M} I \\
\end{aligned}

\begin{aligned}
M&(\Ba) \wedge M(\Bb) \\
&=
\lr{ \Bm_1 \wedge \Bm_2 } \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_2 \wedge \Be_1 } }
+
\lr{ \Bm_2 \wedge \Bm_3 } \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_3 \wedge \Be_2 } }
+
\lr{ \Bm_3 \wedge \Bm_1 } \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_1 \wedge \Be_3 } } \\
&=
I \Abs{M} \lr{
\Bm^3 \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_2 \wedge \Be_1 } }
+
\Bm^1 \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_3 \wedge \Be_2 } }
+
\Bm^2 \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_1 \wedge \Be_3 } }
}
\end{aligned}

Let’s see if we can simplify one of these double index quantities
\begin{aligned}
I \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_2 \wedge \Be_1 } }
&=
\gpgradethree{ I \lr{ \lr{ \Ba \wedge \Bb } \cdot \lr{ \Be_2 \wedge \Be_1 } } } \\
&=
\gpgradethree{ I \lr{ \Ba \wedge \Bb } \lr{ \Be_2 \wedge \Be_1 } } \\
&=
\gpgradethree{ \lr{ \Ba \wedge \Bb } \Be_{12321} } \\
&=
\gpgradethree{ \lr{ \Ba \wedge \Bb } \Be_{3} } \\
&=
\Ba \wedge \Bb \wedge \Be_3.
\end{aligned}

We have
M(\Ba) \wedge M(\Bb) = \Abs{M} \lr{
\lr{ \Ba \wedge \Bb \wedge \Be_1 } \Bm^1
+
\lr{ \Ba \wedge \Bb \wedge \Be_2 } \Bm^2
+
\lr{ \Ba \wedge \Bb \wedge \Be_3 } \Bm^3
}.

Using summation convention, we can now express the transformation of a bivector $$B$$ as just
B \rightarrow \Abs{M} \lr{ B \wedge \Be_i } \Bm^i.

If we are interested in the transformation of a pseudovector $$\Bv$$ defined implicitly as the dual of a bivector $$B = I \Bv$$, where
B \wedge \Be_i = \gpgradethree{ I \Bv \Be_i } = I \lr{ \Bv \cdot \Be_i }.

This leaves us with a transformation rule for cross products equivalent to the adjoint relation \ref{eqn:adjoint:780}
\lr{ \Ba \cross \Bb } \rightarrow \lr{ \Ba \cross \Bb } \cdot \Be_i \Abs{M} \Bm^i.

As intuited, the determinant weighted reciprocal frame vectors for the columns of the transformation $$M$$, are the components of the adjoint. That is
\lr{ \textrm{adj}\, M }^\T = \Abs{M}
\begin{bmatrix}
\Bm^1 & \Bm^2 & \Bm^3
\end{bmatrix}.

## Simplifying the previous adjoint matrix results.

We previously found determinant expressions for the matrix elements of the adjoint for 2D and 3D matrices $$M$$. However, we can extract additional structure from each of those results.

### 2D case.

Given a matrix expressed in block matrix form in terms of it’s columns
M =
\begin{bmatrix}
\Bm_1 & \Bm_2
\end{bmatrix},

we found that the adjoint $$A$$ satisfying $$M A = \Abs{M} I$$ had the structure
A =
\begin{bmatrix}
\begin{vmatrix} \Be_1 & \Bm_2 \end{vmatrix} & \begin{vmatrix} \Be_2 & \Bm_2 \end{vmatrix} \\
& \\
\begin{vmatrix} \Bm_1 & \Be_1 \end{vmatrix} & \begin{vmatrix} \Bm_1 & \Be_2 \end{vmatrix}
\end{bmatrix}.

We initially had wedge product expressions for each of these matrix elements, and can discover our structure by putting back those wedge products. Modulo sign, each of these matrix elemens has the form
\begin{aligned}
\begin{vmatrix} \Be_i & \Bm_j \end{vmatrix}
&=
\lr{ \Be_i \wedge \Bm_j } i^{-1} \\
&=
\lr{ \Be_i \wedge \Bm_j } i^{-1}
} \\
&=
\lr{ \Be_i \Bm_j – \Be_i \cdot \Bm_j } i^{-1}
} \\
&=
\Be_i \Bm_j i^{-1}
} \\
&=
\Be_i \cdot \lr{ \Bm_j i^{-1} },
\end{aligned}

where $$i = \Be_{12}$$. The adjoint matrix is
A =
\begin{bmatrix}
-\lr{ \Bm_2 i } \cdot \Be_1 & -\lr{ \Bm_2 i } \cdot \Be_2 \\
\lr{ \Bm_1 i } \cdot \Be_1 & \lr{ \Bm_1 i } \cdot \Be_2 \\
\end{bmatrix}.

If we use a column vector representation of the vectors $$\Bm_j i^{-1}$$, we can write the adjoint in a compact hybrid geometric-algebra matrix form
A =
\begin{bmatrix}
-\lr{ \Bm_2 i }^\T \\
\lr{ \Bm_1 i }^\T
\end{bmatrix}.

### Check:

Let’s see if this works, by multiplying with $$M$$
\begin{aligned}
A M &=
\begin{bmatrix}
-\lr{ \Bm_2 i }^\T \\
\lr{ \Bm_1 i }^\T
\end{bmatrix}
\begin{bmatrix}
\Bm_1 & \Bm_2
\end{bmatrix} \\
&=
\begin{bmatrix}
-\lr{ \Bm_2 i }^\T \Bm_1 & -\lr{ \Bm_2 i }^\T \Bm_2 \\
\lr{ \Bm_1 i }^\T \Bm_1 & \lr{ \Bm_1 i }^\T \Bm_2
\end{bmatrix}.
\end{aligned}

Those dot products have the form
\begin{aligned}
\lr{ \Bm_j i }^\T \Bm_i
&=
\lr{ \Bm_j i } \cdot \Bm_i \\
&=
\gpgradezero{ \lr{ \Bm_j i } \Bm_i } \\
&=
\gpgradezero{ -i \Bm_j \Bm_i } \\
&=
-i \lr{ \Bm_j \wedge \Bm_i },
\end{aligned}

so
\begin{aligned}
A M &=
\begin{bmatrix}
i \lr{ \Bm_2 \wedge \Bm_1 } & 0 \\
0 & -i \lr { \Bm_1 \wedge \Bm_2 }
\end{bmatrix} \\
&=
\Abs{M} I.
\end{aligned}

We find the determinant weighted identity that we expected. Our methods are a bit schizophrenic, switching fluidly between matrix and geometric algebra representations, but provided we are careful enough, this isn’t problematic.

### 3D case.

Now, let’s look at the 3D case, where we assume a column vector representation of the matrix of interest
M =
\begin{bmatrix}
\Bm_1 & \Bm_2 & \Bm_3
\end{bmatrix},

and try to simplify the expression we found for the adjoint
A =
\begin{bmatrix}
\begin{vmatrix} \Be_1 & \Bm_2 & \Bm_3 \end{vmatrix} & \begin{vmatrix} \Be_2 & \Bm_2 & \Bm_3 \end{vmatrix} & \begin{vmatrix} \Be_3 & \Bm_2 & \Bm_3 \end{vmatrix} \\
& & \\
\begin{vmatrix} \Be_1 & \Bm_3 & \Bm_1 \end{vmatrix} & \begin{vmatrix} \Be_2 & \Bm_3 & \Bm_1 \end{vmatrix} & \begin{vmatrix} \Be_3 & \Bm_3 & \Bm_1 \end{vmatrix} \\
& & \\
\begin{vmatrix} \Be_1 & \Bm_1 & \Bm_2 \end{vmatrix} & \begin{vmatrix} \Be_2 & \Bm_1 & \Bm_2 \end{vmatrix} & \begin{vmatrix} \Be_3 & \Bm_1 & \Bm_2 \end{vmatrix}
\end{bmatrix}.

As with the 2D case, let’s re-express these determinants in wedge product form. We’ll write $$I = \Be_{123}$$, and find
\begin{aligned}
\begin{vmatrix} \Be_i & \Bm_j & \Bm_k \end{vmatrix}
&=
\lr{ \Be_i \wedge \Bm_j \wedge \Bm_k } I^{-1} \\
&=
\gpgradezero{ \lr{ \Be_i \wedge \Bm_j \wedge \Bm_k } I^{-1} } \\
&=
\Be_i \lr{ \Bm_j \wedge \Bm_k }
\Be_i \cdot \lr{ \Bm_j \wedge \Bm_k }
} I^{-1} } \\
&=
\Be_i \lr{ \Bm_j \wedge \Bm_k }
I^{-1} } \\
&=
\Be_i \lr{ \Bm_j \cross \Bm_k } I
I^{-1} } \\
&=
\Be_i \cdot \lr{ \Bm_j \cross \Bm_k }.
\end{aligned}

We see that we can put the adjoint in block matrix form
A =
\begin{bmatrix}
\lr{ \Bm_2 \cross \Bm_3 }^\T \\
\lr{ \Bm_3 \cross \Bm_1 }^\T \\
\lr{ \Bm_1 \cross \Bm_2 }^\T \\
\end{bmatrix}.

### Check:

\begin{aligned}
A M
&=
\begin{bmatrix}
\lr{ \Bm_2 \cross \Bm_3 }^\T \\
\lr{ \Bm_3 \cross \Bm_1 }^\T \\
\lr{ \Bm_1 \cross \Bm_2 }^\T \\
\end{bmatrix}
\begin{bmatrix}
\Bm_1 & \Bm_2 & \Bm_3
\end{bmatrix} \\
&=
\begin{bmatrix}
\lr{ \Bm_2 \cross \Bm_3 }^\T \Bm_1 & \lr{ \Bm_2 \cross \Bm_3 }^\T \Bm_2 & \lr{ \Bm_2 \cross \Bm_3 }^\T \Bm_3 \\
\lr{ \Bm_3 \cross \Bm_1 }^\T \Bm_1 & \lr{ \Bm_3 \cross \Bm_1 }^\T \Bm_2 & \lr{ \Bm_3 \cross \Bm_1 }^\T \Bm_3 \\
\lr{ \Bm_1 \cross \Bm_2 }^\T \Bm_1 & \lr{ \Bm_1 \cross \Bm_2 }^\T \Bm_2 & \lr{ \Bm_1 \cross \Bm_2 }^\T \Bm_3
\end{bmatrix} \\
&=
\Abs{M} I.
\end{aligned}

Essentially, we found that the rows of the adjoint matrix are each parallel to the reciprocal frame vectors of the columns of $$M$$. This makes sense, as the reciprocal frame encodes a generalized inverse of sorts.