## Tuesday, July 15, 2008

### Exploring triple product

While working on physics engine, I have to deal with a lot of analytical and computational geometry. Sometimes interesting things arise.

Consider, for example, triple product of three 3-dimensional vectors: (a,b,c)=a·(b × c). Although it doesn’t look symmetric, in fact it has some sort of symmetry: it’s cyclic, i.e. (a,b,c)=(c,a,b)=(b,c,a).

This follows from different interpretations of triple product. For example, from geometric point of view, triple product is the signed volume of the parallelepiped defined by these three vectors.

On the other hand, triple product is the determinant of the 3-by-3 matrix having the three vectors as rows.

None of these interpretations, however, is obvious from the definition of the triple product, given above. If you don’t know them, the only way to prove cyclicity is to expand both sides using coordinates and to see that they are identical. In this case it looks like magical coincidence (at least it looked so for me when I was studying it for the first time).

Today I discovered very straightforward justification of this property, which, I think, explains its algebraic nature and connections with dot and cross products.

Cross product is linear transformation from ℝ3 space to itself, and thus can be represented by 3-by-3 matrix.

a × b = A b =

 0 −a3 a2 a3 0 −a1 −a2 a1 0

 b1 b2 b3

As you can see, matrix A is skew-symmetric, i.e. AT=−A. Then adjoint matrix A* also equals −A.

Now we have all that we need. Here ( , ) represents dot product and B is cross product matrix for b.

 (a,b,c)=a · (b × c)=(a, B c)=(B* a, c)=(− b × a, c)=(a × b, c)=(c, a × b) = (c,a,b).