In order to calculate how a point moves when being rotated in 3D we can use the 'sandwich product' as discussed on this page.
But where does this sandwich product come from? It seems arbitrary, why this function? Is this something that is specific to quaternions or something about rotations that needs this form?
It turns out that the 'sandwich product' is not only used for quaternions. It can be used to represent many other types of transform ... see the pages about geometric algebra, rotors, conformal space and so on.
But the 'sandwich product' is still more general than that, it turns up in group theory and set theory, in this form it is known as a 'conjugacy' (not to be confused with the conjugate of a complex number or quaternion, here a conjugacy is the whole sandwich product).
I think that if we really want to understand where this comes from then we need to delve into this branch of mathematics.
In set theory conjugacy is a way to determine whether two sets (with a multipication operation - typically a group) are for pactical purposes equivalent, that is, isomorphic.
Here we will try to explain this in terms of quaternions:
We define some mapping φ from G to G'. We want G and G' to be equivalent to each other, this means that G and G' are isomorphic. This isomorphism means that:
φ(q1*q2) = φ(q1) * φ(q2)
where:
- q1and q2 are quaternions in G
- φ is a one to one mapping from a quaternion to an orientation (lets forget that there is a two to one mapping for now)
So what is this mapping φ? We can use:
φ(v) = q v q-1
so
| φ(q1*q2) = q q1 q2 q-1 = q q1 q-1 q q2 q-1 = φ(q1)*φ(q2) |
(since q-1 q =1) |
So we can see that this sandwich product (conjugacy) has the right properties for an isomorphism (I have investigated what functions form an isomrphism on this page).
What would happen if instead of the sandwich product we tried a simple product:
φ(v) = q v
in this case we would have:
φ(q1*q2) = q q1 q2
but
φ(q1)*φ(q2) = q q1 q q2
which is different so a simple product does not form an isomorphism.
So what about matrix algebra? We can use the mutiplication of a matrix by a vector to rotate a point, why does this work?








