Maths - Calculations 2D Euclidean Space

Multiplication

Doubling up the table for the 1D case (this page) by adding the additinal basis n2 which squares to positive:

a*bb.1b.n0b.nb.n0∞b.n1b.n01b.n∞1b.n0∞1b.n2b.n02b.n∞2b.n0∞2b.n12b.n012b.n∞12b.n0∞12
a.11n0nn0∞n1n01n∞1n0∞1n2n02n∞2n0∞2n12n012n∞12n0∞12
a.n0n00n0∞*20n010n0∞1*20n020n0∞2*20n0120n0∞12*20
a.nn1*4-n0∞*20n*2n∞1n1*4-n0∞1*20n∞1*2n∞2n2*4-n0∞2*20n∞2*2n∞12n12*4-n0∞12*20n∞12*2
a.n0∞n0∞n0*20n0∞*2n0∞1n01*20n0∞1*2n0∞2n02*20n0∞2*2n0∞12n012*20n0∞12*2
a.n1n1-n01-n∞1n0∞11-n0-nn0∞n12-n012-n∞12n0∞12n2-n02-n∞2n0∞2
a.n01n010-n0∞1*20n00-n0∞*20n0120-n0∞12*20n020-n0∞2*20
a.n∞1n∞1-n1*4+n0∞1*20n∞1*2n-1*4+n0∞*20n*2n∞12-n12*4+n0∞12*20n∞12*2n∞2-n2*4+n0∞2*20n∞2*2
a.n0∞1n0∞1-n01*20n0∞1*2n0∞-n0*20n0∞*2n0∞12-n012*20n0∞12*2n0∞2-n02*20n0∞2*2
a.n2n2-n02-n∞2n0∞2-n12n012n∞12-n0∞121-n0-nn0∞-n1n01n∞1-n0∞1
a.n02n020-n0∞2*20-n0120n0∞12*20n00-n0∞*20-n010n0∞1*20
a.n∞2n∞2-n2*4+n0∞2*20n∞2*2-n∞12n12*4-n0∞12*20-n∞12*2n-1*4+n0∞*20n*2-n∞1n1*4-n0∞1*20-n∞1*2
a.n0∞2n0∞2-n02*20n0∞2*2-n0∞12n012*20-n0∞12*2n0∞-n0*20n0∞*2-n0∞1n01*20-n0∞1*2
a.n12n12n012n∞12n0∞12-n2-n02-n∞2-n0∞2n1n01n∞1n0∞1-1-n0-n-n0∞
a.n012n0120n0∞12*20-n020-n0∞2*20n010n0∞1*20-n00-n0∞*20
a.n∞12n∞12n12*4-n0∞12*20n∞12*2-n∞2-n2*4+n0∞2*20-n∞2*2n∞1n1*4-n0∞1*20n∞1*2-n-1*4+n0∞*20-n*2
a.n0∞12n0∞12n012*20n0∞12*2-n0∞2-n02*20-n0∞2*2n0∞1n01*20n0∞1*2-n0∞-n0*20-n0∞*2

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    

Inverse

With geometric algebra we cannot guarantee that the inverse of any multivector exists. So here we will concentrate on the even subalgebra, to do this we will follow the usual trick of multiplying numerator and denominator by the reversal (similar concept to conjugate). See this page for explanation of these terms.

So we want to find the inverse of:

an an+an0∞ an0∞+an01 an01+an∞1 an∞1

the result is:

a-1= (an an-an0∞ an0∞-an01 an01-an∞1 an∞1)/(an² + an*an0∞ + an∞1*an01)

This is calculated by multiplying numerator and denominator by the reverse. The reverse is:

an an+an0∞(1-an0∞) -an01 an01-an∞1 an∞1

multiplying these gives:

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

substituting the reverse for the 'b' terms gives:

cn=an*(an+an0∞) + an∞1*an01
cn0=0
cn=0
cn1=0
cn0∞= -an*an0∞+an0∞*(an+an0∞)-an0∞*an0∞+an01*an∞1-an∞1*an01
cn01= -an*an01-an0∞*an01+an01*(an+an0∞)
cn∞1= -an*an∞1+an∞1*(an+an0∞)-an∞1*an0∞
cn0∞1=0

expanding out:

cn= an*an + an*an0∞ + an∞1*an01
cn0∞= -an*an0∞+an0∞*an+an0∞*an0∞-an0∞*an0∞+an01*an∞1-an∞1*an01
cn01= -an*an01-an0∞*an01+an01*an+an01*an0∞
cn∞1= -an*an∞1+an∞1*an+an∞1*an0∞-an∞1*an0∞

and cancelling out:

cn= an*an + an*an0∞ + an∞1*an01
cn0∞= 0
cn01= 0
cn∞1= 0

which gives the pure scalar: an*an + an*an0∞ + an∞1*an01

Transform using Sandwich Product

Transforms using sandwich product

c=a*b*a-1

so multiplying out all the components gives:

c=(1 an+ an0∞ an0∞+an01 an01+an∞1 an∞1)*
(bn0 b n0+bn∞ b n∞+bn1 b n1)*
(1 an+ an0∞ an0∞+an01 an01+an∞1 an∞1)-1

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

)*(1 an-an0∞ an0∞ -an01 an01 -an∞1 an∞1)/(an² + an*an0∞ + an∞1*an01)

To try to simplify this a bit we will not bother to write down the scalar common denominator: an² + an*an0∞ + an∞1*an01

Multiplying out the second product gives:

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

sustituting above for a:

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

unbracketing terms:

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

combining 'b' terms:

cn= bn*(an*an+an∞1*an01) +bn∞*(an0*an-an1*an01) + bn1*(an∞*an01 + an1*an)
cn0= bn*(an0*an+ an1*an01) + bn0*(an*an+an0∞*an)- bn∞*(an01*an01)+ bn1*(2*an01*an + an0∞*an01)
cn= bn*(an∞*an - an∞*an0∞+ an1*an∞1) - bn0*(an∞1*an∞1)+ bn∞*(an*an- an*an0∞) + bn1*(2*an∞1*an - an∞1*an0∞)
cn1= bn*(an1*an- an∞*an01)- bn0*an∞1*an - bn∞*an*an01 +bn1*(an*an- an∞1*an01)
cn0∞= bn*(an0∞*an0∞)+bn0*(-an∞*an+an∞*an0∞-an1*an∞1) +bn∞*(-2*an0*an0∞+an0*an+an1*an01) +bn1*(- an1*an0∞+an0*an∞1-an∞*an01)
cn01= bn*(-an0∞*an01)+bn0*(an∞*an01-an1*an)+bn∞*(-2*an0*an01) +bn1*(-an1*an01 +an0*an)
cn∞1= bn*(-an∞1*an0∞) +bn∞*(-an0*an∞1-an1*an+an1*an0∞)+bn1*(an∞*an- an1*an∞1- an∞*an0∞)
cn0∞1= bn*(-an0*an∞1+ an∞*an01- an1*an0∞)

Now let:

bn=0
bn0=1
bn∞= u²
bn1= 2u

which gives:

cn= u²*(an0*an-an1*an01) + 2u*(an∞*an01 + an1*an)
cn0= (an*an+an0∞*an)- u²*(an01*an01)+ 2u*(2*an01*an + an0∞*an01)
cn= -(an∞1*an∞1)+ u²*(an*an- an*an0∞) + 2u*(2*an∞1*an - an∞1*an0∞)
cn1= - an∞1*an - u²*an*an01 +2u*(an*an- an∞1*an01)
cn0∞= (-an∞*an+an∞*an0∞-an1*an∞1) +u²*(-2*an0*an0∞+an0*an+an1*an01) +2u*(- an1*an0∞+an0*an∞1-an∞*an01)
cn01= (an∞*an01-an1*an)+u²*(-2*an0*an01) +2u*(-an1*an01 +an0*an)
cn∞1= u²*(-an0*an∞1-an1*an+an1*an0∞)+2u*(an∞*an- an1*an∞1- an∞*an0∞)
cn0∞1= 0

For translation let:

an=1
an0=0
an∞=0
an1=0
an0∞=0
an01=0
an∞1=t

which gives:

cn= 0
cn0= 1
cn= -t²+ u²+ 2u*2*t :::almost: (t +u)²=t²+ u²+ 2u*t
cn1= -t +2u
cn0∞= 0
cn01= 0
cn∞1= 0
cn0∞1= 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.