Note: The math on this page is progressively rendered. It can take up to 45 seconds before the final rendering is complete.
Remembering that and , the following matrix is the three-dimensional Givens Rotation from the -axis to the -axis (rotation counter-clockwise around the -axis):
This matrix rotates three-dimensional column vectors about the origin of the plane:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Similarly, the following is the three-dimensional Givens Rotation from the -axis to the -axis (rotation clockwise around the -axis):
This matrix rotates three-dimensional column vectors about the origin of the plane:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notice that this is not the same as the traditional rotation matrix where we rotate around the axis using the right-hand rule (i.e. where we rotate in the opposite direction about the origin of the plane). In other words, given and remembering that and , we have the following:
Lastly, the following is the three-dimensional Givens Rotation from the -axis to the -axis (rotation counter-clockwise around the -axis):
This matrix rotates three-dimensional column vectors about the origin of the plane:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Observe that given dimensions, we have the following number of distinct Givens Rotation matrices:
For instance, when we’re in three dimensions, we have and distinct Givens Rotation matrices:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Moreover, notice the order in which we’re considering these distinct Givens Rotation matrices:
We’ll leverage this order in a moment. Before that, let’s see what happens when we rotate the unit column vector using each of these Givens Rotations:
,
| ,
|
and
|
.
|
As expected, this simply extracts the first column vector from each Givens Rotation matrix. Because we’re extracting the first column vector, we’ll only see in those vectors … we’ll never see ; so for the Givens Rotation matrices that modify , will always be in the position and will walk its way up the remaining dimensions based on the order established above. For the Givens Rotation matrices that do not modify (it’s just that first matrix in three dimensions), those rotations do not impact the position. Looking back at our established order:
we see that the non- rows cannot impact the position. In this three-dimensional case, we see that the Givens Rotation matrix associated with the row cannot modify the position. To make this a little clearer, let’s rotate the arbitrarily positioned column vector :
,
| ,
|
and
|
.
|
We immediately see that rotating about the plane (multiplying by the first Givens Rotation matrix) does not impact the position … and only impacts the and positions if or … which only happens when we have a column vector off of the -axis. For the column vector on the -axis, rotating about the plane (multiplying by that first Givens Rotation matrix) has no effect … we’ll still have after that multiplication.
This brings up the question: given the column vector where and , can all column vectors be recovered using just these Givens Rotation matrices?
First, we’ll start by using all the Givens Rotation matrices in our established order … and notice that the first Givens Rotation matrix doesn’t really help out that much:
Then, we have:
For , implies , , and , so given , we have:
So, we can recover the column vector .
Given with and , we have:
Moreover, since , we also have:
Remember: is atan2( y, x ) in C/C++ and ArcTan[ x, y ] in Mathematica.
Given with , , and remembering that and , if , we have:
| and
| .
|
Given with and , since , if , we have:
Moreover, since , we also have:
Given with , , and remembering that and , we have:
| and
|
|
Given with , , and , since and , if and , we have:
So, we have .
Obviously, since , , and , if and , we also have:
| and
| .
|
So, we also have and such that:
Therefore, all column vectors can be recovered by applying the Givens Rotation matrices associated with the row to the column vector where and :
Notice that the coordinate system implied here is not the same as the traditional spherical coordinate system. In the traditional spherical coordinate system, we have:
where , where is the angle measured from the positive -axis (toward the positive -axis), and where is the angle measured from the positive -axis (toward the negative -axis); however, what we have here is the following:
where , where is the angle measured from the positive -axis (toward the positive -axis), and where is the angle measured from the positive -axis (toward the positive -axis).
Now, let’s rotate a column vector back to the -axis so that we get the column vector . In order to do that, let’s first take a look at each inverse of these Givens Rotation matrices using augmentation and finding the reduced row echelon forms … which as you’ll see is very similar for each matrix. Remembering that which implies that , we have:
Therefore, the inverse of each three-dimensional Givens Rotation matrix is simply the transpose of that matrix:
and it shouldn’t be too hard to see that the inverse of each -dimensional Givens Rotation matrix is also the transpose of that matrix … like it is for any other -dimensional rotation matrix.
Also, if we consider rotations in the opposite direction where while remembering that and , then we have:
We see that each inverse amounts to just rotating in the opposite direction. In other words, since and implies that and , we have:
Now, let’s use those inverse Givens Rotation matrices to rotate a column vector in those opposite directions back to the -axis so that we get the column vector .
First, we’ll start by using all the Givens Rotation matrices in our established order … and get rid of the ones that don’t matter here:
Next, remembering that the inverse of a rotation matrix is its transpose, then we have:
Keeping in mind that and , we have:
Since implies , we also have:
In other words, given a column vector , we can rotate that vector back to the -axis by applying Givens Rotation matrices in the opposite order using the opposite angles. Instead of the following:
repeated again with subscripts to keep things clear:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
we now have the following:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In terms of this new backward ordering and keeping in mind that , we now have the following:
So, we have:
Given , we choose , , and .
After applying , we have:
Then after applying and , since , , , and , we have:
Therefore, since , we have: