Template:Short description Template:Distinguish
Template:More footnotes needed In the theory of three-dimensional rotation, Rodrigues' rotation formula, named after Olinde Rodrigues, is an efficient algorithm for rotating a vector in space, given an axis and angle of rotation. By extension, this can be used to transform all three basis vectors to compute a rotation matrix in Template:Math, the group of all rotation matrices, from an axis–angle representation. In terms of Lie theory, the Rodrigues' formula provides an algorithm to compute the exponential map from the Lie algebra Template:Math to its Lie group Template:Math.
This formula is variously credited to Leonhard Euler, Olinde Rodrigues, or a combination of the two. A detailed historical analysis in 1989 concluded that the formula should be attributed to Euler, and recommended calling it "Euler's finite rotation formula."<ref>Template:Cite journal</ref> This proposal has received notable support,<ref>Template:Cite journal</ref> but some others have viewed the formula as just one of many variations of the Euler–Rodrigues formula, thereby crediting both.<ref>Template:Cite journal</ref>
StatementEdit
If Template:Math is a vector in Template:Math and Template:Math is a unit vector describing an axis of rotation about which Template:Math rotates by an angle Template:Mvar according to the right hand rule, the Rodrigues formula for the rotated vector Template:Math is Template:Equation box 1
The intuition of the above formula is that the first term scales the vector down, while the second skews it (via vector addition) toward the new rotational position. The third term re-adds the height (relative to <math>\textbf{k}</math>) that was lost by the first term.
An alternative statement is to write the axis vector as a cross product Template:Math of any two nonzero vectors Template:Math and Template:Math which define the plane of rotation, and the sense of the angle Template:Math is measured away from Template:Math and towards Template:Math. Letting Template:Math denote the angle between these vectors, the two angles Template:Math and Template:Math are not necessarily equal, but they are measured in the same sense. Then the unit axis vector can be written
- <math>\mathbf{k} = \frac{\mathbf{a}\times\mathbf{b}}{|\mathbf{a}\times\mathbf{b}|} = \frac{\mathbf{a}\times\mathbf{b}}{|\mathbf{a}||\mathbf{b}|\sin\alpha}\,. </math>
This form may be more useful when two vectors defining a plane are involved. An example in physics is the Thomas precession which includes the rotation given by Rodrigues' formula, in terms of two non-collinear boost velocities, and the axis of rotation is perpendicular to their plane.
DerivationEdit
Let Template:Math be a unit vector defining a rotation axis, and let Template:Math be any vector to rotate about Template:Math by angle Template:Math (right hand rule, anticlockwise in the figure), producing the rotated vector <math>\mathbb{v}_{\text{rot}}</math>.
Using the dot and cross products, the vector Template:Math can be decomposed into components parallel and perpendicular to the axis Template:Math,
- <math> \mathbf{v} = \mathbf{v}_\parallel + \mathbf{v}_\perp \,, </math>
where the component parallel to Template:Math is called the vector projection of Template:Math on Template:Math,
- <math> \mathbf{v}_\parallel = (\mathbf{v} \cdot \mathbf{k}) \mathbf{k} </math>,
and the component perpendicular to Template:Math is called the vector rejection of Template:Math from Template:Math:
- <math>\mathbf{v}_{\perp} = \mathbf{v} - \mathbf{v}_{\parallel} = \mathbf{v} - (\mathbf{k} \cdot \mathbf{v}) \mathbf{k} = - \mathbf{k}\times(\mathbf{k}\times\mathbf{v})</math>,
where the last equality follows from the vector triple product formula: <math display="inline">\mathbf{a}\times (\mathbf{b} \times \mathbf{c}) = (\mathbf{a} \cdot \mathbf{c})\mathbf{b} - (\mathbf{a} \cdot \mathbf{b})\mathbf{c}</math>. Finally, the vector <math>\mathbf{k} \times \mathbf{v}_{\perp} = \mathbf{k} \times \mathbf{v}</math> is a copy of <math>\mathbf{v}_{\perp}</math> rotated 90° around <math>\mathbf{k}</math>. Thus the three vectors <math display="block">\mathbf{k}\,,\ \mathbf{v}_{\perp}\,,\, \mathbf{k} \times \mathbf{v}</math> form a right-handed orthogonal basis of <math>\mathbb{R}^3</math>, with the last two vectors of equal length.
Under the rotation, the component <math>\mathbf{v}_{\parallel}</math> parallel to the axis will not change magnitude nor direction:
- <math>\mathbf{v}_{\parallel\mathrm{rot}} = \mathbf{v}_\parallel \,;</math>
while the perpendicular component will retain its magnitude but rotate its direction in the perpendicular plane spanned by <math>\mathbf{v}_{\perp}</math> and <math>\mathbf{k} \times \mathbf{v}</math>, according to
- <math> \mathbf{v}_{\perp\mathrm{rot}}
= \cos(\theta) \mathbf{v}_\perp + \sin(\theta) \mathbf{k}\times\mathbf{v}_\perp = \cos(\theta) \mathbf{v}_\perp + \sin(\theta) \mathbf{k}\times\mathbf{v} \,,</math>
in analogy with the planar polar coordinates Template:Math in the Cartesian basis Template:Math, Template:Math:
- <math>\mathbf{r} = r\cos(\theta) \mathbf{e}_x + r\sin(\theta) \mathbf{e}_y \,. </math>
Now the full rotated vector is:
- <math> \mathbf{v}_{\mathrm{rot}}
= \mathbf{v}_{\parallel\mathrm{rot}} + \mathbf{v}_{\perp\mathrm{rot}} = \mathbf{v}_\parallel + \cos(\theta) \, \mathbf{v}_\perp + \sin(\theta) \mathbf{k}\times\mathbf{v} . </math>
Substituting <math>\mathbf{v}_{\perp } = \mathbf{v} - \mathbf{v}_{\|} </math> or <math>\mathbf{v}_{\| } = \mathbf{v} - \mathbf{v}_{\perp}</math> in the last expression gives respectively:
- <math display="block">\mathbf{v}_{\text{rot}}
= \cos(\theta) \, \mathbf{v} + \sin(\theta) \mathbf{k}\times\mathbf{v} + (1 - \cos\theta)(\mathbf{k} \cdot \mathbf{v})\mathbf{k}</math>
- <math display="block">\phantom{\mathbf{v}_{\text{rot}}}
= \mathbf{v} + \sin(\theta) \mathbf{k}\times\mathbf{v} + (1-\cos\theta)\mathbf{k}\times(\mathbf{k}\times\mathbf{v}).</math>
Matrix notationEdit
The linear transformation on <math>\mathbf{v}\isin\mathbb{R}^3 </math> defined by the cross product <math>\mathbf{v} \mapsto \mathbf{k} \times \mathbf{v} </math> is given in coordinates by representing Template:Math and Template:Math as column matrices:
- <math>\begin{bmatrix} (\mathbf{k}\times\mathbf{v})_x \\ (\mathbf{k}\times\mathbf{v})_y
\\ (\mathbf{k}\times\mathbf{v})_z \end{bmatrix} = \begin{bmatrix} k_y v_z - k_z v_y \\ k_z v_x - k_x v_z \\ k_x v_y - k_y v_x \end{bmatrix} = \left[\begin{array}{rrr} 0\ \, & -k_z & k_y \\ k_z & 0\ \, & -k_x \\ -k_y & k_x & 0\ \, \end{array}\right] \begin{bmatrix} v_x \\ v_y \\ v_z \end{bmatrix} \,. </math>
That is, the matrix of this linear transformation (with respect to standard coordinates) is the cross-product matrix:
- <math>\mathbf{K}=
\left[\begin{array}{rrr} 0\ \, & -k_z & k_y \\ k_z & 0\ \, & -k_x \\ -k_y & k_x & 0\ \, \end{array}\right]\,. </math> That is to say,
- <math>\mathbf{k}\times\mathbf{v}=\mathbf{K}\mathbf{v},
\qquad\qquad \mathbf{k}\times(\mathbf{k}\times\mathbf{v})=\mathbf{K}(\mathbf{K}\mathbf{v}) = \mathbf{K}^2\mathbf{v} \,. </math> The last formula in the previous section can therefore be written as:
- <math>\mathbf{v}_{\mathrm{rot}} = \mathbf{v} + (\sin\theta) \mathbf{K}\mathbf{v} + (1 - \cos\theta)\mathbf{K}^2\mathbf{v}\,.</math>
Collecting terms allows the compact expression
- <math>\mathbf{v}_\mathrm{rot} = \mathbf{R}\mathbf{v}</math>
where Template:Equation box 1 is the rotation matrix through an angle Template:Mvar counterclockwise about the axis Template:Math, and Template:Math the Template:Nowrap identity matrix.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This matrix Template:Math is an element of the rotation group Template:Math of Template:Math, and Template:Math is an element of the Lie algebra <math>\mathfrak{so}(3)</math> generating that Lie group (note that Template:Math is skew-symmetric, which characterizes <math>\mathfrak{so}(3)</math>).
In terms of the matrix exponential,
- <math>\mathbf{R} = \exp (\theta\mathbf{K})\,.</math>
To see that the last identity holds, one notes that
- <math>\mathbf{R}(\theta) \mathbf{R}(\phi) = \mathbf{R} (\theta+\phi), \quad \mathbf{R}(0) = \mathbf{I}\,, </math>
characteristic of a one-parameter subgroup, i.e. exponential, and that the formulas match for infinitesimal Template:Mvar.
For an alternative derivation based on this exponential relationship, see [[Axis–angle representation#Exponential map from so(3) to SO(3)|exponential map from <math>\mathfrak{so}(3)</math> to Template:Math]]. For the inverse mapping, see [[Axis–angle representation#Log map from SO(3) to so(3)|log map from Template:Math to <math>\mathfrak{so}(3)</math>]].
The above result can be written in index notation as follows. The elements of the matrix for an active rotation by an angle <math>\theta</math> about an axis Template:Math are given by
- <math>
R_{ij} = \cos\theta\, \delta_{ij} + (1 - \cos\theta) n_i n_j - \sin\theta\, \epsilon_{ijk} n_k. </math> Here, i, j, and k label the Cartesian components (x, y, z) or (1, 2, 3), <math>\delta_{ij}</math> and <math>\epsilon_{ijk}</math> are the Kronecker and Levi-Civita symbols, and there is an implicit sum on repeated indices.
The Hodge dual of the rotation <math>\mathbf{R}</math> is just <math>\mathbf{R}^* = -\sin(\theta)\mathbf{k}</math> which enables the extraction of both the axis of rotation and the sine of the angle of the rotation from the rotation matrix itself, with the usual ambiguity,
- <math>\begin{align}
\sin(\theta) &= \sigma \left|\mathbf{R}^*\right| \\[3pt] \mathbf{k} &= -\frac{\sigma\mathbf{R}^*}{\left|\mathbf{R}^*\right|}
\end{align}</math> where <math>\sigma = \pm 1</math>. The above simple expression results from the fact that the Hodge duals of <math>\mathbf{I}</math> and <math>\mathbf{K}^2</math> are zero, and <math>\mathbf{K}^* = -\mathbf{k}</math>.
See alsoEdit
ReferencesEdit
- Leonhard Euler, "Problema algebraicum ob affectiones prorsus singulares memorabile", Commentatio 407 Indicis Enestoemiani, Novi Comm. Acad. Sci. Petropolitanae 15 (1770), 75–106.
- Olinde Rodrigues, "Des lois géométriques qui régissent les déplacements d'un système solide dans l'espace, et de la variation des coordonnées provenant de ces déplacements considérés indépendants des causes qui peuvent les produire", Journal de Mathématiques Pures et Appliquées 5 (1840), 380–440. online.
- Richard M. Friedberg (2022) "Rodrigues, Olinde: "Des lois géométriques qui régissent les déplacements d'un systéme solide...", translation and commentary". arXiv:2211.07787.
- Don Koks, (2006) Explorations in Mathematical Physics, Springer Science+Business Media, LLC. Template:Isbn. Ch.4, pps 147 et seq. A Roundabout Route to Geometric Algebra
External linksEdit
- Johan E. Mebius, Derivation of the Euler-Rodrigues formula for three-dimensional rotations from the general formula for four-dimensional rotations., arXiv General Mathematics 2007.
- For another descriptive example see: http://chrishecker.com/Rigid_Body_Dynamics#Physics_Articles, Chris Hecker, physics section, part 4. "The Third Dimension" – on page 3, section ``Axis and Angle, http://chrishecker.com/images/b/bb/Gdmphys4.pdf