Norm of a Multivector in $\wedge \mathbb{R}^3$ for calculating the arrea of a polygon.

35 Views Asked by At

I am writing some code to explore some interesting things in Geometric Algebra. The general element of my code is multivector $\wedge \mathbb{R}^3$ that forms an 8-dimensional block vector with components

$${\bf x} = \pmatrix{ s \text{ : scalar} \\ \boldsymbol{v} \text{ : vector} \\ \boldsymbol{\omega} \text{ : antivector} \\ \sigma \text{ : antiscalar}} $$

Note that I am using the term anti-vector for the bivectors, and the term anti-scalar for the pseudoscalar.

and corresponding basis vectors:

$$ {\rm basis} = \pmatrix{ \{ 1 \} \\ \{ \boldsymbol{e}_1, \boldsymbol{e}_2,\boldsymbol{e}_3\} \\ \{ \overline{ \boldsymbol{e}}_{1}, \overline{\boldsymbol{e}}_{2},\overline{\boldsymbol{e}}_{3}\} \\ \{ \mathtt{i} \}} $$

where $\overline{\boldsymbol{e}}_{k} \equiv \boldsymbol{e}_i \wedge \boldsymbol{e}_j$ and $\mathtt{i} \equiv \boldsymbol{e}_1\wedge\boldsymbol{e}_2\wedge\boldsymbol{e}_3$ for brevity.

I have the geometric and wedge products between multivectors defined according to available literature, and I also have the dot product defined as follows

$$ {\bf x}_1 \cdot {\bf x}_2 = \begin{bmatrix}s_{1}\\ \boldsymbol{v}_{1}\\ \boldsymbol{\omega}_{1}\\ \sigma_{1} \end{bmatrix} \cdot \begin{bmatrix}s_{2}\\ \boldsymbol{v}_{2}\\ \boldsymbol{\omega}_{2}\\ \sigma_{2} \end{bmatrix}=\begin{bmatrix}s_{1}s_{2}+\boldsymbol{v}_{1}\cdot\boldsymbol{v}_{2}-\boldsymbol{\omega}_{1}\cdot\boldsymbol{\omega}_{2}-\sigma_{1}\sigma_{2}\\ \boldsymbol{v}_{1}s_{2}+s_{1}\boldsymbol{v}_{2}-\sigma_{1}\boldsymbol{\omega}_{2}-\boldsymbol{\omega}_{1}\sigma_{2}\\ \boldsymbol{\omega}_{1}s_{2}+\sigma_{1}\boldsymbol{v}_{2}+s_{1}\boldsymbol{\omega}_{2}+\boldsymbol{v}_{1}\sigma_{2}\\ \sigma_{1}s_{2}+\boldsymbol{\omega}_{1}\cdot\boldsymbol{v}_{2}+\boldsymbol{v}_{1}\cdot\boldsymbol{\omega}_{2}+s_{1}\sigma_{2} \end{bmatrix} $$

The problem arises when I need to define the magnitude of ${\bf x}$ as

$$\|{\bf x}\| = \sqrt{ \left( {\bf x}\cdot{\bf x} \right)_{\rm scalar} } = \sqrt{ s^2+\boldsymbol{v}\cdot\boldsymbol{v}-\boldsymbol{\omega}\cdot\boldsymbol{\omega}-\sigma^2} $$

The problem I have is that if I am getting the magnitude of an anti-vector (bivector) the result will be an imaginary number (anti-scalar).

So I have a situation where I want to calculate the area of a triangle defined by three verices ${\bf x}_i = \pmatrix{ 0 & \boldsymbol{v}_i & \boldsymbol{0} & 0}$ with $i=1\ldots 3$. The area of a convex polygon is Geometric Algebra is defined as

Geometric Algebra for Physicists, Doran, Lasenby, 2003. $$ {\rm area}({\bf x}_0,\,{\bf x}_1,\ldots,{\bf x}_n) = \tfrac{1}{2} \| {\bf x}_0 \wedge {\bf x}_1 + {\bf x}_1 \wedge {\bf x}_2 + \ldots + {\bf x}_n \wedge {\bf x}_0 \| $$

In the case of a triangle, or any polygon, any ${\bf x}_i \wedge {\bf x}_{i+1}$ term results in an anit-vector, since the only non-zero parts of the multivector ${\bf x}_i$ is the vector $\boldsymbol{v}_i$

So you end up with an area formula

$$\require{cancel} {\rm area} = \tfrac{1}{2} \| \boldsymbol{\omega} \| = \sqrt{ \cancel{s^2}+\cancel{\boldsymbol{v}\cdot\boldsymbol{v}}-\boldsymbol{\omega}\cdot\boldsymbol{\omega}-\cancel{\sigma^2}} = \tfrac{1}{2} \sqrt{ - \boldsymbol{\omega}\cdot \boldsymbol{\omega} } $$

where $\boldsymbol{\omega} = \sum_{i=0}^n \boldsymbol{v}_i \wedge \boldsymbol{v}_{i+1}$ is entirely in the bi-vector space.

So area is obviously not a real number.

This kind of surprised me, and less to ask where in the above chain of thinking I might have gone wrong.

In summary, calculating the area of a triangle using geometric algebra yields an imaginary number. My best guess is the calculation of the norm of a multivector, and honestly, I have found conflicting information on this online.