logo back up home forward   further reading more topics »

Maths - Skew Symmetric Matrix

A matrix is skew symmetric if its elements meet the following rule:

aij = - aji

The leading diagonal terms must be zero since in this case a= -a which is only true when a=0.

We can express this as:

[A]t = -[A]

Representing Vector cross Multiplication

We want to find a 3x3 matrix which is equivalent to vector cross multiplication (as described here). Note: cross multiplication only applies to 3 dimensional vectors and represents a vector which is perpendicular to both the vectors being multiplied.

In other words, if,

C = A × B

where:

Then we want to find:

C = [~A] B

where:

[~A] = 3x3 Skew Symmetric Matrix which we want to find

The components of the cross product are (as described here):

Cx = Ay * Bz - By * Az
Cy = Az * Bx - Bz * Ax
Cz = Ax * By - Bx * Ay

So [~A] is equivalent to A x

[~A] =
0 -Az Ay
Az 0 -Ax
-Ay Ax 0

Properties of Skew Symmetric Matrix

Jacobis theorem

There is no inverse of skew symmetric matrix in the form used to represent cross multiplication (or any odd dimension skew symmetric matrix), if there were then we would be able to get an inverse for the vector cross product but this is not possible.

To demonstrate this we can try to calculate its inverse as follows:

We can use the expression for inverse given here and apply it to skew symmetric matrix to get:

[~A] =1/det[m] *
Ax*Ax Ay*Ax Az*Ax
Ax*Ay Ay*Ay Az*Ay
Ax*Az Ay*Az Az*Az

where det = Ay*Az*Ax -Az*Ax*Ay = 0

So all terms tend towards 1/0 = infinity


'tilde' matrix

If we have a vector cross multiplication, for instance:

v = r x w

We can replace this expession by an equivilant matrix transform:

v = [~r]w

Where [~r] is a square matrix derived as follows, if we expand out the terms for vector cross multiplation we get:

vx = ry * wz - wy * rz
vy = rz * wx - wz * rx
vz = rx * wy - wx * ry

we can rearange these terms to be in matrix form as follows:

vx = 0 * wx - rz* wy + ry * wz
vy = rz * wx + 0 * wy - rx * wz
vz =-ry * wx + rx * wy + 0 * wz

which gives:

v =
0 - rz ry
rz 0 - rx
-ry rx 0
w

so

[~r] =
0 - rz ry
rz 0 - rx
-ry rx 0

If instead of r we want to turn w into the matrix, then we can use the following identiy for vectors (reversing the order of operands changes the sign) :

r x w = - (w x r)

Therefore if v = r x w

then v = -[~w]r, where:

-[~w] =
0 wz -wy
-wz 0 wx
wy -wx 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.

cover Mathematics for 3D game Programming - Includes introduction to Vectors, Matrices, Transforms and Trigonometry. (But no euler angles or quaternions). Also includes ray tracing and some linear & rotational physics also collision detection (but not collision response).

Other Math Books

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to the software project, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

Matlab.

Can you help?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

Terminology and Notation

Specific to this page here:

 

program

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

http://sourceforge.net/projects/mjbworld/

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2008 Martin John Baker - All rights reserved - privacy policy.