Maths - 1D Euclidean Space - Outer Product

Here we will use the definition of outer 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 outer product see this page.

I can think of two ways of calculating the outer 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: Outer Product

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

The outer 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+bivector

P^Q = (-n0+ x1² n + 2 x1 n1)^(-n0+ x2² n + 2 x2 n1)
P^Q = n0^n0- 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 - 2 x2² n0 - 2 x2 n01 +2 x1² n0∞ + 2 x2 x1² n1+2 x1 n01- x2² 2 x1n∞1

P^Q = 1 + 2 (x1² - x2² )n0 + 2 (x1-x2 ) n01+ 2 x2 x1(x1-x2) n1

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

Meet

Two Points

In the above example, if x2 = x1 then:

P^Q = 1

Investigation of alternative way to calculate inner product

The outer product for the conventional 'e' basis is represented by the following table (if an index occors more than one in the term then the term is zero):

a^b
b.e b.e1 b.e2 b.e3 b.e12 b.e31 b.e23 b.e123
a.e e e1 e2 e3 e12 e31 e23 e123
a.e1 e1 0 e12 -e31 0 0 e123 0
a.e2 e2 -e12 0 e23 0 e123 0 0
a.e3 e3 e31 -e23 0 e123 0 0 0
a.e12 e12 0 0 e123 0 0 0 0
a.e31 e31 0 e123 0 0 0 0 0
a.e23 e23 e123 0 0 0 0 0 0
a.e123 e123 0 0 0 0 0 0 0

We will then use this to derive the outer 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

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

-n0∞1+n1/2

n01/2 0 0 0 0
a.n∞1 n∞1 n0∞1-n1/2 0 n∞1/2 0 0 0 0
a.n0∞1 n0∞1 n01/2 n∞1/2 n0∞1-n1/2 0 0 0 0

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

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 outer 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 outer product is the bivector:

scalar = (x1² - x2²)/2
n0∞ = x2² - x1²
n01 = x1 - x2
n∞1 = x1²x2 - x2²x1 = x1x2(x1 - x2)

Meet

Two Points

In the above example if x1=x2 (and only if x1=x2) then:

scalar = 0
n0∞ = 0
n01 = 0
n∞1 = 0

So this gives us a way to test if x1 and x2 represent the same point since, if they do then,

p^q=0

This may not be specially useful in one dimensional Euclidean space but when we go to higher dimensions it will allow us to test if, a point lies on a line or a plane, or two lines intersect for example.

Two Points and Single Point

Above we calculated the outer product of two points p and q to give:

scalar
n0∞
n01
n∞1
=
(x1² - x2²)/2
x2² - x1²
x1 - x2
x1x2(x1 - x2)

r=(-1,x3²,x3)

n0
n
n1
=
-1
x3²
x3

So using the following table and multipling out the terms:

a^b
b.n0
-1
b.n
x3²
b.n1
x3
a.n =(x1² - x2²)/2 n0
n n1
a.n0∞=x2² - x1² n0/2 n/2 n0∞1
a.n01=x1 - x2 0

-n0∞1+n1/2

0
a.n∞1=x1x2(x1 - x2) n0∞1-n1/2 0 0

(p^q)^r =

n0
n
n1
n0∞1
=
-(x1² - x2²)/2 - (x2² - x1²)/2 =0
(x1² - x2²)x3²/2 +(x2² - x1²)x3²/2 = 0
(x1² - x2²)x3/2 + (x1 - x2)x3²/2+x1x2(x1 - x2)/2
=(x1²x3 - x2²x3)/2 + (x1 - x2)(x3²+x1x2)/2
=(x1²x3 - x2²x3+x1x3²+x1²x2- x2x3²-x1x2²)/2
(x2² - x1²)x3 - (x1 - x2)x3² - x1x2(x1 - x2)
= x2²x3 - x1²x3 - x1x3² + x2x3² - x1²x2 + x1x2²

If x3 = x1 we get:

n0
n
n1
n0∞1
=
0
0
(x1²x1 - x2²x1+x1x1²+x1²x2- x2x1²-x1x2²)/2
=(2*x1²x1 - 2*x2²x1)/2
=x13 - x2²x1
x2²x1 - x1²x1 - x1x1² + x2x1² - x1²x2 + x1x2²
=2*x2²x1 - 2*x13

If x3 = x2 we get:

n0
n
n1
n0∞1
=
0
0
(x1²x2 - x2²x2+x1x2²+x1²x2- x2x2²-x1x2²)/2
= (2*x1²x2 - 2*x2²x2)/2
= x1²x2 - x23
x2²x2 - x1²x2 - x1x2² + x2x2² - x1²x2 + x1x2²
=2*x23 - 2*x1²x2

If we normalise to set n0= -1 this will give n1 = ∞ with an additional n0∞1 component. I don't know how to interpret this? perhaps If x1≠x2 then meet will not be zero for any x3

Join

So instead try join: (p^q)•r by multiplying out the following terms:

a•b
b.n0
-1
b.n
x3²
b.n1
x3
a.n =(x1² - x2²)/2 n0
n n1
a.n0∞=x2² - x1² n0 0 n1/2
a.n01=x1 - x2 -n1/2 0 n0
a.n∞1=x1x2(x1 - x2) 0 -n1/2 n

(p^q)•r =

n0
n
n1
=
-(x1² - x2²)/2 -(x2² - x1²)+(x1 - x2)x3
= (x1² - x2²)/2 +(x1 - x2)x3
(x1² - x2²)x3²/2 + x1x2x3(x1 - x2)
(x1² - x2²)x3/2 +(x2² - x1²)x3/2 +(x1 - x2)/2-x1x2x3²(x1 - x2)/2
=(x1 - x2)/2-x1x2x3²(x1 - x2)/2

If x3 = x1 we get:

n0
n
n1
=
(x1² - x2²)/2 +(x1 - x2)x1
=x1²/2 - x2²/2 +x1² - x2x1
(x1² - x2²)x1²/2 + x1x2x1(x1 - x2)
=x1²x1²/2 - x2²x1²/2 + x1x2x1x1 - x2²x1²
(x1 - x2)/2-x1x2x1²(x1 - x2)/2
=(x1 - x2)/2-x1x2x1²x1/2 - x1x2x1²x2/2

If x3 = x2 we get:

n0
n
n1
=
(x1² - x2²)/2 +(x1 - x2)x2
=(x1² - x2²)/2 + x1x2 - x2²
x1²x2²/2 - x2²x2²/2 + x1²x2² - x1x2x2²
= x2²(1.5*x1² - x2²/2 - x1x2x)
(x1 - x2)/2-x1x2x2²(x1 - x2)/2
=(x1 - x2)/2-x1²x2x2²/2 + x1x2²x2²/2

If we normalise so n0= -1 this will give:

n0
n
n1
=
-1
x1²x2²/2 - x2²x2²/2 + x1²x2² - x1x2x2²
= x2²(1.5*x1² - x2²/2 - x1x2x) /
(x1² - x2²)/2 + x1x2 - x2²
(x1 - x2)/2-x1x2x2²(x1 - x2)/2
=(x1 - x2-x1²x2x2² + x1x2²x2²)/
x1² - x2² + 2*x1x2 - 2*x2²

I'm sure about the definition of • so this needs checking

Line

Above we calculated the outer product of two points p and q to give:

scalar
n0∞
n01
n∞1
=
(x1² - x2²)/2
x2² - x1²
x1 - x2
x1x2(x1 - x2)

∞=n

So using the following table and multipling out the terms:

a^b
b.n
a.n =(x1² - x2²)/2 n
a.n0∞=x2² - x1² n/2
a.n01=x1 - x2

-n0∞1+n1/2

a.n∞1=x1x2(x1 - x2) 0

(p^q)^∞ =

n0
n
n1
n0∞1
=
0
(x1² - x2²)/2 +(x2² - x1²)/2 = 0
(x1 - x2)/2
-(x1 - x2)

If we normalise to set n0= -1 this will give n1 = ∞ with an additional n0∞1 component. I don't know how to interpret this?

Expansion of Outer Product

Note: work in progress ignore the following

Our multiplcaition is represented by:

c=a^b

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 Outer 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

(e11+e12+e21+e22)/4
=0

(e11-e12+e21-e22)/4
=-e12/2
=n0∞ - 1/2
(e1+e2-e112-e212)/4
=(e1+e2)/4
=n0/2
(e13+e23)/2
=n01
(e113+e123+e213+e223)/4
=0
(e113-e123+e213-e223)/4
=-e123/2
=n0∞1-n1/2
(e13+e23-e1231-e2123)/4
=n01/2
(e1-e2)/2
a.n
n (e11+e12-e21-e22)/4
=e12/2
= -n0∞+ 1/2
(e11-e12-e21+e22)/4
=0
(e1-e2-e112+e212)/4
=(e1-e2)/4
=n/2
(e13-e23)/2
=n∞1
(e113+e123-e213-e223)/4
=e123/2
=-n0∞1+n1/2
(e113-e123-e213+e223)/4
=0
(e13-e23-e1231+e2123)/4
=n∞1/2
(1-e12)/2
a.n0∞
n0∞ (e1+e2-e121-e122)/4
=(e1+e2)/4
=n0/2
(e1-e2-e121+e122)/4
=(e1-e2)/4
=n/2
(1-e12-e12+e1212)/4
=n0∞-1/4
(e3-e123)/2
=n0∞1
(e13+e23-e1213-e1223)/4
=(e13+e23)/4
=n01/2
(e13-e23-e1213+e1223)/4
=(e13-e23)/4
=n∞1/2
(e3-e123-e123+e12123)/4
=n0∞1-n1/2
e3
a.n1
n1 (-e13-e23)/2
= -n01
(-e13+e23)/2
= -n∞1
(e3-e123)/2
=n0∞1
0 0 0 0
(e13+e23)/2
a.n01
n01 (e131+e132+e231+e232)/4
=0

(e131-e132+e231-e232)/4
=2e123/4
=-n0∞1+n1/2

(e13+e23-e1312-e2312)/4
=(e13+e23)/4
=n01/2
0 0 0 0
(e13-e23)/2
a.n∞1
n∞1 (e131+e132-e231-e232)/4
=-e123/2
=n0∞1-n1/2
(e131-e132-e231+e232)/4
=0
(e13-e23-e1312+e2312)/4
=(e13-e23)/4
=n∞1/2
0 0 0 0
(e3-e123)/2
a.n0∞1
n0∞1 (e31+e32+e1231+e1232)/4
=n01/2
(e31-e32+e1231-e1232)/4
=n∞1/2
(e3-e123-e312+e12312)/4
=n0∞1-n1/2
0 0 0 0

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.