Maths - 1D Euclidean Space - Inner Product

Here we will use the definition of inner product as the values in the geometric product table such that : if gradeof(row)-gradeof(column) != gradeof(entry) then the entry is set to zero otherwise the entry is the same as the geometric product. Where a table entry is the sum of terms then this check is done on each term separately. For more information about the concept of an inner product see this page.

I can think of two ways of calculating the inner product for this null vector basis:

I'm not sure if these methods are equivalent? So we will use the first method but do some tests to see if the second method is equivalent.

table for: Inner Product

a*b b.1 b.n0 b.n b.n0∞ b.n1 b.n01 b.n∞1 b.n0∞1
a.1 1 0 0 0 0 0 0 0
a.n0 n0 0 0 0 0 0 0 0
a.n n 4 0 0 0 0 0 0
a.n0∞ n0∞ 2n0 0 0 0 0 0 0
a.n1 n1 0 0 0 1 0 0 0
a.n01 n01 0 0 0 n0 0 0 0
a.n∞1 n∞1 -4n1 0 0 n -4 0 0
a.n0∞1 n0∞1 -2n01 0 0 n0∞ -2n0 0 0

The inner product of two null vectors

Lets take x1 in Euclidean space, this gives,

P=(-n0+ x1² n + 2 x1 n1)

and we want to take the inner product with x2:

Q=(-n0+ x2² n + 2 x2 n1)

So the outer product is the scalar::

P•Q = (-n0+ x1² n + 2 x1 n1)•(-n0+ x2² n + 2 x2 n1)
P•Q = n0n0- x2² n0•n - 2 x2 n0•n1 - x1² n•n0+ x2² x1² n•n + 2 x2 x1² n•n1-2 x1 n1•n0+ x2² 2 x1 n1•n + 2 x2 2 x1 n1•n1

P•Q = 1 - 4 x1² + 2 x2 2 x1

so the inner product of two points is a scalar value.

Join

Two Points

In the above example, if x2 = x1 then:

P•Q = 1 - 4 x1² + 4 x1² = 1

Investigation of alternative way to calculate inner product

There are different ways to extend the dot product from vectors to the inner product of bivectors and all our basis. Here we will use the version represented by the following table:

a•b
b.e b.e1 b.e2 b.e12 b.e3 b.e13 b.e23 b.e123
a.e 1 e1 e2 e12 e3 e13 e23 e123
a.e1 e1 1 0 e2 0 e3 0 e23
a.e2 e2 0 -1 e1 0 0 -e3 e13
a.e12 e12 -e2 -e1 1 0 0 0 e3
a.e3 e3 0 0 0 1 -e1 -e2 e12
a.e13 e13 -e3 0 0 e1 -1 0 e2
a.e23 e23 0 -e3 0 e2 0 1 e1
a.e123 e123 e23 e13 e3 e12 e2 e1 1

We will then use this to derive the inner product table for our null vector basis.

a•b
b.n b.n0 b.n b.n0∞ b.n1 b.n01 b.n∞1 b.n0∞1
a.n 1 n0
n n0∞ n1 n01 n∞1 n0∞1
a.n0 n0 0 1/2 0 0 0 n1/2 -n01/2
a.n n 1/2 0 n 0 n1/2 0 n∞1/2
a.n0∞ n0∞ n0 0 n0∞ n1/2 n01/2 n∞1/2 n0∞1/2 +n1/4
a.n1 n1 0 0 n1/2 1 -n0 -n n0∞
a.n01 n01 -n1/2 0 n01/2 n0 0 -1/2 0
a.n∞1 n∞1 0 -n1/2 n0∞/2 n -1/2 0 n/2
a.n0∞1 n0∞1 -n01/2 n∞1/2 n0∞1/2 +n1/4 n0∞ -n0 0 n0∞

Each term in this table is calculated from:
n0= (e1 + e2)/2
n= (e1 - e2)/2
n1= e3

Unlike when we were calculating the geometric product table the bivector and higher terms are not generated by the dot product so we have to assume they have already been generated by the outer product to give:

n0∞ = (1-e12)/2

n01= (e13+e23)/2

n∞1 = (e13-e23)/2

n0∞1= (e3-e123)/2

So we just multiply out each term by converting to 'e' basis, doing inner product, then converting back to 'n' basis (see full working at the end of this page).

The inner product of two null vectors

Lets take x1 in Euclidean space, this gives,

p=(-1,x1²,x1)

and we want to take the inner product with x2:

q=(-1,x2²,x2)

So the inner product is the scalar:

inner product=1-x1²/2 -x2²/2 + x1x2

if p and q represent the same point then:

p•q = 1

Expansion of Inner Product

Note: work in progress ignore the following:

Our multiplcaition is represented by:

c=ab

Where a, b and c are multivectors which may contain scalar, vector and bivector and trivector components.

so multiplying out all the components gives:

(an an+an0 an0+an∞ an+an0 an1+an0∞ an0∞+an01 an01+an∞1 an∞1+an0∞1 an0∞1)•
(bn b n+bn0 bn0+bn∞ bn+bn1 bn1+bn0∞ b n0∞+bn01 b n01+bn∞1 b n∞1+bn0∞1 bn0∞1)

The result is:

cn=an*bn + an0*bn1 + an0*bn∞ - an∞1*bn01
cn0=an*bn0 + an0*bn + an0∞*bn0- an0*bn01+ an01*bn1- an0∞1*bn01
cn=an*bn∞ + an∞*bn + an∞*bn0∞ - an0*bn∞1+ an∞1*bn1 + an∞1*bn0∞1
cn1=an*bn1 + an0*bn+ an∞*bn01- an∞1*bn0
cn0∞=an*bn0∞+an0*bn∞-an∞*bn0+an0∞*bn+an0∞*bn0∞+an0*bn0∞1-an01*bn∞1+an∞1*bn01+an0∞1*bn1+an0∞1*bn0∞1
cn01=an*bn01+an0*bn1+an0∞*bn01-an0*bn0+an01*bn-an0∞1*bn0
cn∞1=an*bn∞1+an∞*bn1+an∞*bn0∞1-an0*bn∞+an∞1*bn+an∞1*bn0∞
cn0∞1=an*bn0∞1+an0*bn∞1-an∞*bn01+an0∞*bn1+an0*bn0∞-an01*bn∞+an∞1*bn0+an0∞1*bn

Multivector Calculator

The following calculator allows you to calculate the multivector arithmetic of our rotated basis. Enter the values into the top two multivectors and then press "+ - or * " to display the result in the bottom multivector:

scalar n    
vector n0 n∞ n1
bivector n0∞ n01 n∞1
tri-vector n0∞1    
scalar n    
vector n0 n n1
bivector n0∞ n01 n∞1
tri-vector n0∞1    
=
scalar n    
vector n0 n n1
bivector n0∞ n01 n∞1
tri-vector n0∞1    

Derivation of Inner Prodict Table for Null Basis

a•b
b.n (e1+e2)/2
b.n0
(e1-e2)/2
b.n
(1-e12)/2
b.n0∞
e3
b.n1
(e13+e23)/2
b.n01
(e13-e23)/2
b.n∞1
(e3-e123)/2
b.n0∞1
a.n 1 n0
n n0∞ n1 n01 n∞1 n0∞1
(e1+e2)/2
a.n0
n0 0

(e11+e21-e12-e22)/4
=(1+0+0+1)/4
=1/2

(e1+e2-e2-e1)/4
=0
0 (e3+0 + 0 -e3)/4
0
(e3+0-0+e3)/4
n1/2
(0-e23-0-e13)/4
-n01/2
(e1-e2)/2
a.n
n (e11+e12-e21-e22)/4
=(1+0+0+1)/4
=1/2
0 (e1-e2-e2+e1)/4
n
0 (e3+0 + 0 +e3)/4
n1/2
(e3+0-0-e3)/4
0
(0-e23-0+e13)/4
n∞1/2
(1-e12)/2
a.n0∞
n0∞ (e1+e2+e2+e1)/4
n0
(e1+e2-e2-e1)/4
0
(1-e12-e12+1)/4
n0∞
(e3-0)/2
n1/2
(e13+e23+0+0)/4
n01/2
(e13-e23+0-0)/4
n∞1/2
(e3-e123+0+e3)/4
n0∞1/2 +n1/4
e3
a.n1
n1 0 0 (e3+0)/2
n1/2
1 (-e1-e2)/2
-n0
(-e1-e2)/2
-n
(1-e12)/2
n0∞
(e13+e23)/2
a.n01
n01 (-e3+0 + 0 -e3)/4
-n1/2
(-e3+0 + 0 +e3)/4
0
(e13+e23+0+0)/4
n01/2
(e1+e2)/2
n0
(-1+0+0+1)/4
0
(-1-0 + 0 -1)/4
= -1/2
(e1-e2+e2-e1)/4
0
(e13-e23)/2
a.n∞1
n∞1 (-e3+0-0+e3)/4
0
(-e3+0 + 0 -e3)/4
-n1/2
n0∞/2 (e1-e2)/4
n
(-1+0+0-1)/4
-1/2
(-1+0+0+1)/4
0
(e1-e2-e2+e1)/4
n/2
(e3-e123)/2
a.n0∞1
n0∞1 (0-0-e23-e13)/4
-n01/2
(0+0-e23+e13)/4
n∞1/2
(e3-e123+0+e3)/4
n0∞1/2 +n1/4
(1-e12)/2
n0∞
(-e1-e2-e2-e1)/4
-n0
(-e1+e2-e2+e1)/4
0
(1-e12-e12+1)/4
n0∞

metadata block
see also:

 

Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

flag flag flag flag flag flag Geometric Algebra for Computer Science: An Object-oriented Approach to Geometry. This book stresses the Geometry in Geometric Algebra, although it is still very mathematically orientated. Programmers using this book will need to have a lot of mathematical knowledge. Its good to have a Geometric Algebra book aimed at computer scientists rather than physicists. There is more information about this book here.

 

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2017 Martin John Baker - All rights reserved - privacy policy.