Using Eigenvalue Analysis to Rotate in 3D

​
generate new axes
angle ϕ, start to finish
0
The continuous rotation of one right-handed coordinate system into another depends on the axis of rotation, the angle, and the sense of rotation. All these can be obtained from the eigenvalues and vectors of the change of basis matrix. (The matrix inverse gives only the end state of the rotation.) This Demonstration shows the axis of rotation and a slider that governs the rotation.

Details

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
xyz
relative to a fixed
XYZ
coordinate system. We know the components of the unit vectors

x
,

y
, and

z
along the
X
,
Y
, and
Z
axes. Then, any vector
R
given in the
XYZ
system can be resolved in the
xyz
system using simple matrix inversion. That is, if we assemble the matrix of components
A=
x
X
x
Y
x
Z
y
X
y
Y
y
Z
z
X
z
Y
z
Z

and if the vector
R
is given in the
XYZ
system as
R
=
R
X
R
Y
R
Z
,
then the same vector
R
is given in the
xyz
system by
R
=
R
x
R
y
R
z
=
-1
A
R
X
R
Y
R
Z
.
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

a
about which the
xyz
system is rotated to bring it to the
XYZ
system, the angle of rotation
θ
, and the sense of the rotation (clockwise or counterclockwise).
The process[1] involves finding the eigenvalues and eigenvectors of
A
. The eigenvector corresponding to the eigenvalue of 1 gives the axis

a
; it is the only eigenvector whose components are all real. The two other eigenvalues are
iθ
e
and
-iθ
e
, whose eigenvectors are complex.
Therefore, by suitably ordering the eigenvalues and eigenvectors with the real part of the eigenvalues, the vector

a
can be deduced. That is,

a
is the eigenvector of the eigenvalue whose real part is the maximum.
The value
θ
is given by
θ=
-1
cos
trA-1
2
.
Suppose the sense of rotation is defined in the direction of

a
using the value
d
defined as follows:
d=
+1,counterclockwise
-1,clockwise
.
Take one of the complex eigenvectors

α
+i

β
and let

b
=

β


α
. Then
d=sgn

a
·

b

.
In this Demonstration, a random right-handed
X
0
Y
0
Z
0
coordinate system with gray planes is first generated. (You can generate a new
X
0
Y
0
Z
0
system to see different cases.) The fixed
X
1
Y
1
Z
1
system (red axes and planes) is generated by taking the inverse of the column matrix
X
0
Y
0
Z
0
. Use the
ϕ
slider to continuously rotate the
X
0
Y
0
Z
0
system (blue axes and planes) about the vector

a
(purple) into the
X
1
Y
1
Z
1
system.

References

[1] L. Sadun. Rotation in 3 Dimensions[Video]. (Nov 21, 2014) www.youtube.com/watch?v=5BtDR25TE8k.

External Links

Rotation Matrix (Wolfram MathWorld)

Permanent Citation

Raja Kountanya
​
​"Using Eigenvalue Analysis to Rotate in 3D"​
​http://demonstrations.wolfram.com/UsingEigenvalueAnalysisToRotateIn3D/​
​Wolfram Demonstrations Project​
​Published: December 3, 2014