Prerequisites
This page compares quaternion multiplication and orthogonal matrix multiplication
as a means to represent rotation.
If you are not familiar with this subject you may like to look at the following
pages first:
Description
We want rotation and translation, these are reversible so we need a mathematical algebra that is also reversible, that is we need to always find the inverse, so:
if ,
multivector a translates b into c
then we need to be able to find the inverse a-1 which translates c into b
one condition which meets this requirement is:
a a†=scalar
as explained here.
So using the multiplication table here and multiplying out the terms of a a† gives:
e = +e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14
+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45+e123*e123+e214*e214+e125*e125+e134*e134+e315*e315+e145*e145+e324*e324+e235*e235+e425*e425+-e12*e345+e1234*e1234+e1253*e1253+e1245*e1245+e3145*e3145+e2345*e2345+e12345*e12345
e1 = +e*e1+e1*e+e2*e12+e3*e13+e4*e14+e5*e15+e12*e2+e13*e3+e14*e4
+e15*e5+e23*e123-e24*e214+e25*e125+e34*e134-e35*e315+e45*e145+e123*e23-e214*e24+e125*e25+e134*e34-e315*e35+e145*e45-e324*e1234-e235*e1253-e425*e1245-e345*e3145-e1234*e324-e1253*e235-e1245*e425-e3145*e345+e2345*e12345+e12345*e2345
e2 = +e*e2-e1*e12+e2*e+e3*e23+e4*e24+e5*e25-e12*e1-e13*e123+e14*e214
-e15*e125+e23*e3+e24*e4+e25*e5-e34*e324+e35*e235-e45*e425-e123*e13+e214*e14-e125*e15-e134*e1234-e315*e1253-e145*e1245-e324*e34+e235*e35-e425*e45+e345*e2345-e1234*e134-e1253*e315-e1245*e145+e3145*e12345+e2345*e345+e12345*e3145
e3 = +e*e3-e1*e13-e2*e23+e3*e+e4*e34+e5*e35+e12*e123-e13*e1-e14*e134
+e15*e315-e23*e2+e24*e324-e25*e235+e34*e4+e35*e5+e45*e345+e123*e12-e214*e1234-e125*e1253-e134*e14+e315*e15+e145*e3145+e324*e24-e235*e25+e425*e2345+e345*e45-e1234*e214-e1253*e125+e1245*e12345+e3145*e145+e2345*e425+e12345*e1245
e4 = +e*e4-e1*e14-e2*e24-e3*e34+e4*e+e5*e45-e12*e214+e13*e134-e14*e1
-e15*e145-e23*e324-e24*e2+e25*e425-e34*e3-e35*e345+e45*e5-e123*e1234-e214*e12+e125*e1245+e134*e13+e315*e3145-e145*e15-e324*e23+e235*e2345+e425*e25-e345*e35-e1234*e123+e1253*e12345+e1245*e125+e3145*e315+e2345*e235+e12345*e1253
e5 = +e*e5-e1*e15-e2*e25-e3*e35-e4*e45+e5*e+e12*e125-e13*e315+e14*e145
-e15*e1+e23*e235-e24*e425-e25*e2+e34*e345-e35*e3-e45*e4+e123*e1253+e214*e1245+e125*e12+e134*e3145-e315*e13+e145*e14+e324*e2345+e235*e23-e425*e24+e345*e34+e1234*e12345+e1253*e123+e1245*e214+e3145*e134+e2345*e324+e12345*e1234
e12 = -e*e12+e1*e2-e2*e1-e3*e123+e4*e214-e5*e125+e12*e+e13*e23+e14*e24
+e15*e25-e23*e13-e24*e14-e25*e15-e34*e1234+e35*e1253-e45*e1245+e123*e3-e214*e4+e125*e5-e134*e324-e315*e235-e145*e425+e324*e134+e235*e315+e425*e145-e345*e12345+e1234*e34-e1253*e35+e1245*e45-e3145*e2345+e2345*e3145+e12345*e345
e13 = -e*e13+e1*e3+e2*e123-e3*e1-e4*e134+e5*e315-e12*e23+e13*e+e14*e34
+e15*e35+e23*e12+e24*e1234-e25*e1253-e34*e14-e35*e15+e45*e3145-e123*e2-e214*e324-e125*e235+e134*e4-e315*e5+e145*e345+e324*e214+e235*e125-e425*e12345-e345*e145-e1234*e24+e1253*e25-e1245*e2345-e3145*e45+e2345*e1245+e12345*e425
e14 = -e*e14+e1*e4-e2*e214+e3*e134-e4*e1-e5*e145-e12*e24-e13*e34+e14*e
+e15*e45-e23*e1234+e24*e12+e25*e1245+e34*e13-e35*e3145-e45*e15-e123*e324+e214*e2+e125*e425-e134*e3+e315*e345+e145*e5+e324*e123-e235*e12345-e425*e125-e345*e315+e1234*e23-e1253*e2345-e1245*e25+e3145*e35+e2345*e1253+e12345*e235
e15 = -e*e15+e1*e5+e2*e125-e3*e315+e4*e145-e5*e1-e12*e25-e13*e35-e14*e45
+e15*e+e23*e1253-e24*e1245+e25*e12+e34*e3145+e35*e13+e45*e14+e123*e235+e214*e425-e125*e2+e134*e345+e315*e3-e145*e4-e324*e12345-e235*e123-e425*e214-e345*e134-e1234*e2345-e1253*e23+e1245*e24-e3145*e34+e2345*e1234+e12345*e324
e23 = -e*e23-e1*e123+e2*e3-e3*e2+e4*e324-e5*e235+e12*e13-e13*e12-e14*e1234
+e15*e1253+e23*e+e24*e34+e25*e35-e34*e24-e35*e25-e45*e2345+e123*e1-e214*e134-e125*e315+e134*e214+e315*e125-e145*e12345-e324*e4+e235*e5-e425*e345+e345*e425+e1234*e14-e1253*e15-e1245*e3145+e3145*e1245+e2345*e45+e12345*e145
e24 = -e*e24+e1*e214+e2*e4-e3*e324-e4*e2+e5*e425+e12*e14+e13*e1234-e14*e12
-e15*e1245-e23*e34+e24*e+e25*e45+e34*e23+e35*e2345-e45*e25-e123*e134-e214*e1+e125*e145+e134*e123-e315*e12345-e145*e125+e324*e3-e235*e345-e425*e5+e345*e235-e1234*e13-e1253*e3145+e1245*e15+e3145*e1253-e2345*e35+e12345*e315
e25 = -e*e25-e1*e125+e2*e5+e3*e235-e4*e425-e5*e2+e12*e15-e13*e1253+e14*e1245
-e15*e12-e23*e35-e24*e45+e25*e-e34*e2345+e35*e23+e45*e24+e123*e315+e214*e145+e125*e1-e134*e12345-e315*e123-e145*e214-e324*e345-e235*e3+e425*e4+e345*e324-e1234*e3145+e1253*e13-e1245*e14+e3145*e1234+e2345*e34+e12345*e134
e34 = -e*e34-e1*e134+e2*e324+e3*e4-e4*e3-e5*e345-e12*e1234+e13*e14-e14*e13
+e15*e3145+e23*e24-e24*e23-e25*e2345+e34*e+e35*e45-e45*e35-e123*e214+e214*e123-e125*e12345+e134*e1-e315*e145+e145*e315-e324*e2-e235*e425+e425*e235+e345*e5+e1234*e12-e1253*e1245+e1245*e1253-e3145*e15+e2345*e25+e12345*e125
e35 = -e*e35+e1*e315-e2*e235+e3*e5+e4*e345-e5*e3+e12*e1253+e13*e15-e14*e3145
-e15*e13+e23*e25+e24*e2345-e25*e23-e34*e45+e35*e+e45*e34+e123*e125-e214*e12345-e125*e123-e134*e145-e315*e1+e145*e134-e324*e425+e235*e2+e425*e324-e345*e4-e1234*e1245-e1253*e12+e1245*e1234+e3145*e14-e2345*e24+e12345*e214
e45 = -e*e45-e1*e145+e2*e425-e3*e345+e4*e5-e5*e4-e12*e1245+e13*e3145+e14*e15
-e15*e14-e23*e2345+e24*e25-e25*e24+e34*e35-e35*e34+e45*e-e123*e12345-e214*e125+e125*e214-e134*e315+e315*e134+e145*e1-e324*e235+e235*e324-e425*e2+e345*e3-e1234*e1253+e1253*e1234+e1245*e12-e3145*e13+e2345*e23+e12345*e123
e123 = -e*e123-e1*e23+e2*e13-e3*e12-e4*e1234+e5*e1253+e12*e3-e13*e2+e14*e324
-e15*e235+e23*e1+e24*e134-e25*e315+e34*e214-e35*e125-e45*e12345+e123*e-e214*e34+e125*e35-e134*e24+e315*e25-e145*e2345-e324*e14+e235*e15+e425*e3145-e345*e1245+e1234*e4-e1253*e5+e1245*e345-e3145*e425+e2345*e145+e12345*e45
e214 = -e*e214+e1*e24-e2*e14-e3*e1234+e4*e12+e5*e1245-e12*e4+e13*e324+e14*e2
-e15*e425+e23*e134-e24*e1-e25*e145-e34*e123-e35*e12345+e45*e125+e123*e34+e214*e-e125*e45-e134*e23+e315*e2345+e145*e25-e324*e13-e235*e3145+e425*e15+e345*e1253+e1234*e3-e1253*e345-e1245*e5+e3145*e235-e2345*e315+e12345*e35
e125 = -e*e125-e1*e25+e2*e15-e3*e1253+e4*e1245-e5*e12+e12*e5+e13*e235-e14*e425
-e15*e2+e23*e315-e24*e145+e25*e1-e34*e12345+e35*e123-e45*e214-e123*e35+e214*e45+e125*e-e134*e2345-e315*e23+e145*e24+e324*e3145-e235*e13+e425*e14-e345*e1234+e1234*e345+e1253*e3-e1245*e4-e3145*e324+e2345*e134+e12345*e34
e134 = -e*e134-e1*e34-e2*e1234+e3*e14-e4*e13+e5*e3145+e12*e324+e13*e4-e14*e3
-e15*e345-e23*e214-e24*e123-e25*e12345+e34*e1+e35*e145+e45*e315+e123*e24+e214*e23-e125*e2345+e134*e-e315*e45-e145*e35-e324*e12+e235*e1245-e425*e1253+e345*e15+e1234*e2+e1253*e425-e1245*e235-e3145*e5+e2345*e125+e12345*e25
e315 = -e*e315+e1*e35-e2*e1253-e3*e15+e4*e3145+e5*e13+e12*e235-e13*e5-e14*e345
+e15*e3-e23*e125-e24*e12345+e25*e123+e34*e145-e35*e1-e45*e134-e123*e25+e214*e2345+e125*e23+e134*e45+e315*e-e145*e34-e324*e1245-e235*e12+e425*e1234+e345*e14-e1234*e425+e1253*e2+e1245*e324-e3145*e4-e2345*e214+e12345*e24
e145 = -e*e145-e1*e45-e2*e1245+e3*e3145+e4*e15-e5*e14+e12*e425-e13*e345+e14*e5
-e15*e4-e23*e12345+e24*e125+e25*e214-e34*e315-e35*e134+e45*e1-e123*e2345-e214*e25-e125*e24+e134*e35+e315*e34+e145*e+e324*e1253-e235*e1234-e425*e12+e345*e13+e1234*e235-e1253*e324+e1245*e2-e3145*e3+e2345*e123+e12345*e23
e324 = -e*e324-e1*e1234+e2*e34-e3*e24+e4*e23+e5*e2345-e12*e134-e13*e214-e14*e123
-e15*e12345-e23*e4+e24*e3+e25*e345-e34*e2+e35*e425+e45*e235+e123*e14+e214*e13+e125*e3145+e134*e12-e315*e1245+e145*e1253+e324*e-e235*e45-e425*e35-e345*e25+e1234*e1-e1253*e145+e1245*e315-e3145*e125-e2345*e5+e12345*e15
e235 = -e*e235-e1*e1253-e2*e35+e3*e25+e4*e2345-e5*e23-e12*e315-e13*e125-e14*e12345
+e15*e123+e23*e5+e24*e345-e25*e3+e34*e425+e35*e2-e45*e324-e123*e15-e214*e3145+e125*e13+e134*e1245+e315*e12-e145*e1234+e324*e45+e235*e-e425*e34-e345*e24+e1234*e145+e1253*e1-e1245*e134+e3145*e214-e2345*e4+e12345*e14
e425 = -e*e425-e1*e1245+e2*e45+e3*e2345-e4*e25+e5*e24-e12*e145-e13*e12345+e14*e125
+e15*e214+e23*e345-e24*e5+e25*e4-e34*e235-e35*e324-e45*e2+e123*e3145-e214*e15-e125*e14-e134*e1253+e315*e1234+e145*e12+e324*e35+e235*e34+e425*e-e345*e23-e1234*e315+e1253*e134+e1245*e1-e3145*e123-e2345*e3+e12345*e13
e345 = -e*e345-e1*e3145+e2*e2345-e3*e45+e4*e35-e5*e34-e12*e12345+e13*e145+e14*e315
+e15*e134-e23*e425-e24*e235-e25*e324+e34*e5-e35*e4+e45*e3-e123*e1245+e214*e1253-e125*e1234-e134*e15-e315*e14-e145*e13+e324*e25+e235*e24+e425*e23+e345*e+e1234*e125-e1253*e214+e1245*e123+e3145*e1-e2345*e2+e12345*e12
e1234 = +e*e1234+e1*e324+e2*e134+e3*e214+e4*e123+e5*e12345-e12*e34+e13*e24-e14*e23
-e15*e2345-e23*e14+e24*e13-e25*e3145-e34*e12-e35*e1245-e45*e1253+e123*e4+e214*e3-e125*e345+e134*e2+e315*e425-e145*e235+e324*e1-e235*e145+e425*e315-e345*e125+e1234*e-e1253*e45-e1245*e35-e3145*e25-e2345*e15+e12345*e5
e1253 = +e*e1253+e1*e235+e2*e315+e3*e125+e4*e12345-e5*e123+e12*e35-e13*e25-e14*e2345
+e15*e23+e23*e15-e24*e3145-e25*e13-e34*e1245+e35*e12+e45*e1234-e123*e5+e214*e345+e125*e3-e134*e425+e315*e2+e145*e324+e324*e145+e235*e1-e425*e134+e345*e214+e1234*e45+e1253*e-e1245*e34-e3145*e24-e2345*e14+e12345*e4
e1245 = +e*e1245+e1*e425+e2*e145+e3*e12345-e4*e125-e5*e214-e12*e45-e13*e2345+e14*e25
-e15*e24-e23*e3145-e24*e15+e25*e14+e34*e1253+e35*e1234-e45*e12-e123*e345-e214*e5-e125*e4+e134*e235-e315*e324+e145*e2-e324*e315+e235*e134+e425*e1-e345*e123+e1234*e35+e1253*e34+e1245*e-e3145*e23-e2345*e13+e12345*e3
e3145 = +e*e3145+e1*e345+e2*e12345-e3*e145-e4*e315-e5*e134-e12*e2345+e13*e45-e14*e35
+e15*e34+e23*e1245+e24*e1253+e25*e1234+e34*e15-e35*e14+e45*e13+e123*e425-e214*e235+e125*e324-e134*e5-e315*e4-e145*e3+e324*e125-e235*e214+e425*e123+e345*e1+e1234*e25+e1253*e24+e1245*e23+e3145*e-e2345*e12+e12345*e2
e2345 = +e*e2345+e1*e12345-e2*e345-e3*e425-e4*e235-e5*e324+e12*e3145+e13*e1245+e14*e1253
+e15*e1234-e23*e45+e24*e35-e25*e34-e34*e25+e35*e24-e45*e23-e123*e145+e214*e315-e125*e134-e134*e125+e315*e214-e145*e123-e324*e5-e235*e4-e425*e3-e345*e2+e1234*e15+e1253*e14+e1245*e13+e3145*e12+e2345*e+e12345*e1
e12345 = +e*e12345+e1*e2345+e2*e3145+e3*e1245+e4*e1253+e5*e1234-e12*e345-e13*e425-e14*e235
-e15*e324-e23*e145-e24*e315-e25*e134-e34*e125-e35*e214-e45*e123-e123*e45-e214*e35-e125*e34-e134*e25-e315*e24-e145*e23-e324*e15-e235*e14-e425*e13-e345*e12+e1234*e5+e1253*e4+e1245*e3+e3145*e2+e2345*e1+e12345*e
simplifying, by combining and canceling out terms, we get:
e = scalar = +e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45+e123*e123+e214*e214+e125*e125+e134*e134+e315*e315+e145*e145+e324*e324+e235*e235+e425*e425+e345*e345+e1234*e1234+e1253*e1253+e1245*e1245+e3145*e3145+e2345*e2345+e12345*e12345
0 = e1 = e*e1+e2*e12+e3*e13+e4*e14+e5*e15+e23*e123-e24*e214+e25*e125+e34*e134-e35*e315+e45*e145-e324*e1234-e235*e1253-e425*e1245-e345*e3145+e2345*e12345
0 = e2 = e*e2-e1*e12+e3*e23+e4*e24+e5*e25-e13*e123+e14*e214-e15*e125-e34*e324+e35*e235-e45*e425-e134*e1234-e315*e1253-e145*e1245+e345*e2345+e3145*e12345
0 = e3 = e*e3-e1*e13-e2*e23+e4*e34+e5*e35+e12*e123-e14*e134+e15*e315+e24*e324-e25*e235+e45*e345-e214*e1234-e125*e1253+e145*e3145+e425*e2345+e1245*e12345
0 = e4 = e*e4-e1*e14-e2*e24-e3*e34+e5*e45-e12*e214+e13*e134-e15*e145-e23*e324+e25*e425-e35*e345-e123*e1234+e125*e1245+e315*e3145+e235*e2345+e1253*e12345
0 = e5 = e*e5-e1*e15-e2*e25-e3*e35-e4*e45+e12*e125-e13*e315+e14*e145+e23*e235-e24*e425+e34*e345+e123*e1253+e214*e1245+e134*e3145+e324*e2345+e1234*e12345
0 = e1234 = e*e1234+e1*e324+e2*e134+e3*e214+e4*e123+e5*e12345-e12*e34+e13*e24-e14*e23-e15*e2345-e25*e3145-e35*e1245-e45*e1253-e125*e345+e315*e425-e145*e235
0 = e1253 = e*e1253+e1*e235+e2*e315+e3*e125+e4*e12345-e5*e123+e12*e35-e13*e25-e14*e2345+e15*e23-e24*e3145-e34*e1245+e45*e1234+e214*e345-e134*e425+e145*e324
0 = e1245 = e*e1245+e1*e425+e2*e145+e3*e12345-e4*e125-e5*e214-e12*e45-e13*e2345+e14*e25-e15*e24-e23*e3145+e34*e1253+e35*e1234-e123*e345+e134*e235-e315*e324
0 = e3145 = e*e3145+e1*e345+e2*e12345-e3*e145-e4*e315-e5*e134-e12*e2345+e13*e45-e14*e35+e15*e34+e23*e1245+e24*e1253+e25*e1234+e123*e425-e214*e235+e125*e324
0 = e2345 = e*e2345+e1*e12345-e2*e345-e3*e425-e4*e235-e5*e324+e12*e3145+e13*e1245+e14*e1253+e15*e1234-e23*e45+e24*e35-e25*e34-e123*e145+e214*e315-e125*e134
0 = e12345 = e*e12345+e1*e2345+e2*e3145+e3*e1245+e4*e1253+e5*e1234-e12*e345-e13*e425-e14*e235-e15*e324-e23*e145-e24*e315-e25*e134-e34*e125-e35*e214-e45*e123
all the other equations cancel out completely.
How do we solve these equations?
One possibility is to do the same as we did with the 3D case and let a*=a as follows:
e = e12345
e1 = e2345
e2 = e3145
e3 = e1245
e4 = e1253
e5 = e1234
e12 = -e345
e13 = -e425
e14 = -e235
e15 = -e324
e23 = -e145
e24 = -e315
e25 = -e134
e34 = -e125
e35 = -e214
e45 = -e123
then:
scalar = e = 2*(e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45)
0 = e*e1+e2*e12+e3*e13+e4*e14+e5*e15-e23*e45+e24*e35-e25*e34
0 = e*e2-e1*e12+e3*e23+e4*e24+e5*e25-e13*-e45+e14*-e35-e15*-e34
0 = e*e3-e1*e13-e2*e23+e4*e34+e5*e35+e12*-e45-e14*-e25+e15*-e24
e4 = e*e4-e1*e14-e2*e24-e3*e34+e5*e45-e12*-e35+e13*-e25-e15*-e23-e23*-e15+e25*-e13-e35*-e12+e45*e5-e34*e3-e24*e2-e14*e1+e4*e
e5 = e*e5-e1*e15-e2*e25-e3*e35-e4*e45+e12*-e34-e13*-e24+e14*-e23+e23*-e14-e24*-e13+e34*-e12-e45*e4-e35*e3-e25*e2-e15*e1+e5*e
-e1234 = +e*e5+e1*-e15+e2*-e25+e3*-e35+e4*-e45+e5*e-e12*e34+e13*e24-e14*e23-e15*e1-e25*e2-e35*e3-e45*e4+e34*-e12-e24*-e13+e23*-e14
-e1253 = +e*e4+e1*-e14+e2*-e24+e3*-e34+e4*e-e5*-e45+e12*e35-e13*e25-e14*e1+e15*e23-e24*e2-e34*e3+e45*e5-e35*-e12+e25*-e13-e23*-e15
e1245 = +e*e3+e1*-e13+e2*-e23+e3*e-e4*-e34-e5*-e35-e12*e45-e13*e1+e14*e25-e15*e24-e23*e2+e34*e4+e35*e5+e45*-e12-e25*-e14+e24*-e15
e3145 = +e*e2+e1*-e12+e2*e-e3*-e23-e4*-e24-e5*-e25-e12*e1+e13*e45-e14*e35+e15*e34+e23*e3+e24*e4+e25*e5-e45*-e13+e35*-e14-e34*-e15
e2345 = +e*e1+e1*e-e2*-e12-e3*-e13-e4*-e14-e5*-e15+e12*e2+e13*e3+e14*e4+e15*e5-e23*e45+e24*e35-e25*e34+e45*-e23-e35*-e24+e34*-e25
e12345 = e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45
So again the vector and the pseudovector are equal?
what is the problem???
lets try:
e = -e12345
e1 = e2345
e2 = e3145
e3 = e1245
e4 = e1253
e5 = e1234
e12 = e345
e13 = e425
e14 = e235
e15 = e324
e23 = e145
e24 = e315
e25 = e134
e34 = e125
e35 = e214
e45 = e123
this gives:
e = scalar = +e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45+e45*e45+e35*e35+e34*e34+e25*e25+e24*e24+e23*e23+e15*e15+e14*e14+e13*e13+e12*e12+e5*e5+e4*e4+e3*e3+e2*e2+e1*e1+e*e
0 = e1 = e*e1+e2*e12+e3*e13+e4*e14+e5*e15+e23*e45-e24*e35+e25*e34+e34*e25-e35*e24+e45*e23-e15*e5-e14*e4-e13*e3-e12*e2-e1*e
0 = e2 = e*e2-e1*e12+e3*e23+e4*e24+e5*e25-e13*e45+e14*e35-e15*e34-e34*e15+e35*e14-e45*e13-e25*e5-e24*e4-e23*e3+e12*e1-e2*e
0 = e3 = e*e3-e1*e13-e2*e23+e4*e34+e5*e35+e12*e45-e14*e25+e15*e24+e24*e15-e25*e14+e45*e12-e35*e5-e34*e4+e23*e2+e13*e1-e3*e
0 = e4 = e*e4-e1*e14-e2*e24-e3*e34+e5*e45-e12*e35+e13*e25-e15*e23-e23*e15+e25*e13-e35*e12-e45*e5+e34*e3+e24*e2+e14*e1-e4*e
0 = e5 = e*e5-e1*e15-e2*e25-e3*e35-e4*e45+e12*e34-e13*e24+e14*e23+e23*e14-e24*e13+e34*e12+e45*e4+e35*e3+e25*e2+e15*e1-e5*e
0 = e1234 = e*e5+e1*e15+e2*e25+e3*e35+e4*e45-e5*e-e12*e34+e13*e24-e14*e23-e15*e1-e25*e2-e35*e3-e45*e4-e34*e12+e24*e13-e23*e14
0 = e1253 = e*e4+e1*e14+e2*e24+e3*e34-e4*e-e5*e45+e12*e35-e13*e25-e14*e1+e15*e23-e24*e2-e34*e3+e45*e5+e35*e12-e25*e13+e23*e15
0 = e1245 = e*e3+e1*e13+e2*e23-e3*e-e4*e34-e5*e35-e12*e45-e13*e1+e14*e25-e15*e24-e23*e2+e34*e4+e35*e5-e45*e12+e25*e14-e24*e15
0 = e3145 = e*e2+e1*e12-e2*e-e3*e23-e4*e24-e5*e25-e12*e1+e13*e45-e14*e35+e15*e34+e23*e3+e24*e4+e25*e5+e45*e13-e35*e14+e34*e15
0 = e2345 = e*e1-e1*e-e2*e12-e3*e13-e4*e14-e5*e15+e12*e2+e13*e3+e14*e4+e15*e5-e23*e45+e24*e35-e25*e34-e45*e23+e35*e24-e34*e25
0 = e12345 = -e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5-e12*e12-e13*e13-e14*e14-e15*e15-e23*e23-e24*e24-e25*e25-e34*e125-e35*e35-e45*e45
cancelling out gives:
e = scalar = +e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5+e12*e12+e13*e13+e14*e14+e15*e15+e23*e23+e24*e24+e25*e25+e34*e34+e35*e35+e45*e45+e45*e45+e35*e35+e34*e34+e25*e25+e24*e24+e23*e23+e15*e15+e14*e14+e13*e13+e12*e12+e5*e5+e4*e4+e3*e3+e2*e2+e1*e1+e*e
0 = e1 = e23*e45-e24*e35+e25*e34+e34*e25-e35*e24+e45*e23
0 = e2 = -e13*e45+e14*e35-e15*e34-e34*e15+e35*e14-e45*e13
0 = e3 = +e12*e45-e14*e25+e15*e24+e24*e15-e25*e14+e45*e12
0 = e4 = -e12*e35+e13*e25-e15*e23-e23*e15+e25*e13-e35*e12
0 = e5 = e12*e34-e13*e24+e14*e23+e23*e14-e24*e13+e34*e12
0 = e1234 = -e12*e34+e13*e24-e14*e23-e34*e12+e24*e13-e23*e14
0 = e1253 = e12*e35-e13*e25+e15*e23+e35*e12-e25*e13+e23*e15
0 = e1245 = -e12*e45+e14*e25-e15*e24-e45*e12+e25*e14-e24*e15
0 = e3145 = e13*e45-e14*e35+e15*e34+e45*e13-e35*e14+e34*e15
0 = e2345 = -e23*e45+e24*e35-e25*e34-e45*e23+e35*e24-e34*e25
0 = e12345 = -e*e+e1*e1+e2*e2+e3*e3+e4*e4+e5*e5-e12*e12-e13*e13-e14*e14-e15*e15-e23*e23-e24*e24-e25*e25-e34*e34-e35*e35-e45*e45
Pure Rotation
If all ex, ey, ez and exyz input terms set to zero gives:
e = |
a.e * b.e |
0 |
0 |
0 |
- a.exy * b.exy |
- a.ezx * b.ezx |
- a.eyz * b.eyz |
0 |
ex = |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
ey = |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
ez = |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
exy = |
a.exy * b.e |
0 |
0 |
0 |
+ a.e * b.exy |
+ a.eyz * b.ezx |
- a.ezx * b.eyz |
0 |
ezx = |
a.ezx * b.e |
0 |
0 |
0 |
- a.eyz * b.exy |
+ a.e * b.ezx |
+ a.exy * b.eyz |
0 |
eyz = |
a.eyz * b.e |
0 |
0 |
0 |
+ a.ezx * b.exy |
- a.exy * b.ezx |
+ a.e * b.eyz |
0 |
exyz = |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
If we include exyz back in we get:
e = |
a.e * b.e |
0 |
0 |
0 |
- a.exy * b.exy |
- a.ezx * b.ezx |
- a.eyz * b.eyz |
- a.exyz * b.exyz |
ex = |
0 |
0 |
0 |
0 |
0 |
-0 |
- a.exyz * b.eyz |
- a.eyz * b.exyz |
ey = |
0 |
0 |
0 |
0 |
0 |
- a.exyz * b.ezx |
0 |
- a.ezx * b.exyz |
ez = |
0 |
0 |
0 |
0 |
- a.exyz * b.exy |
0 |
0 |
- a.exy * b.exyz |
exy = |
a.exy * b.e |
0 |
0 |
0 |
+ a.e * b.exy |
+ a.eyz * b.ezx |
- a.ezx * b.eyz |
0 |
ezx = |
a.ezx * b.e |
0 |
0 |
0 |
- a.eyz * b.exy |
+ a.e * b.ezx |
+ a.exy * b.eyz |
0 |
eyz = |
a.eyz * b.e |
0 |
0 |
0 |
+ a.ezx * b.exy |
- a.exy * b.ezx |
+ a.e * b.eyz |
0 |
exyz = |
a.exyz * b.e |
0 |
0 |
0 |
0 |
0 |
0 |
+ a.e * b.exyz |
Pure Translation
If all exy, ezx and eyz input terms set to zero gives:
e = |
a.e * b.e |
+ a.ex * b.ex |
+ a.ey * b.ey |
+ a.ez * b.ez |
0 |
0 |
0 |
- a.exyz * b.exyz |
ex = |
a.ex * b.e |
+ a.e * b.ex |
0 |
0 |
0 |
0 |
0 |
0 |
ey = |
a.ey * b.e |
0 |
+ a.e * b.ey |
0 |
0 |
0 |
0 |
0 |
ez = |
a.ez * b.e |
0 |
0 |
+ a.e * b.ez |
0 |
0 |
0 |
0 |
exy = |
0 |
+ a.ey * b.ex |
- a.ex * b.ey |
+ a.exyz * b.ez |
0 |
0 |
0 |
+ a.ez * b.exyz |
ezx = |
0 |
- a.ez * b.ex |
+ a.exyz * b.ey |
+ a.ex * b.ez |
0 |
0 |
0 |
+ a.ey * b.exyz |
eyz = |
0 |
+ a.exyz * b.ex |
+ a.ez * b.ey |
- a.ey * b.ez |
0 |
0 |
0 |
+ a.ex * b.exyz |
exyz = |
a.exyz * b.e |
0 |
0 |
0 |
0 |
0 |
0 |
+ a.e * b.exyz |
Further Reading
This site may have errors. Don't use for critical systems.