In engineering we often want to transform quantities such as forces from one coordinate system into another. So consider an arbitrary right-handed coordinate system

relative to a fixed

coordinate system. We know the components of the unit vectors

,

, and

along the

,

, and

axes. Then, any vector

given in the

system can be resolved in the

system using simple matrix inversion. That is, if we assemble the matrix of components

and if the vector

is given in the

system as

,

then the same vector

is given in the

system by

.

However, matrix inversion only tells us the start and end states of the vector and not the process of rotation from one coordinate system to another, namely, the axis

about which the

system is rotated to bring it to the

system, the angle of rotation

, and the sense of the rotation (clockwise or counterclockwise).

The process [1] involves finding the eigenvalues and eigenvectors of

. The eigenvector corresponding to the eigenvalue of 1 gives the axis

; it is the only eigenvector whose components are all real. The two other eigenvalues are

and

, whose eigenvectors are complex.

Therefore, by suitably ordering the eigenvalues and eigenvectors with the real part of the eigenvalues, the vector

can be deduced. That is,

is the eigenvector of the eigenvalue whose real part is the maximum.

The value

is given by

.

Suppose the sense of rotation is defined in the direction of

using the value

defined as follows:

.

Take one of the complex eigenvectors

and let

. Then

.

In this Demonstration, a random right-handed

coordinate system with gray planes is first generated. (You can generate a new

system to see different cases.) The fixed

system (red axes and planes) is generated by taking the inverse of the column matrix

. Use the

slider to continuously rotate the

system (blue axes and planes) about the vector

(purple) into the

system.