Формула поворота Родрига — формула , связывающая два вектора с общим началом, один из которых получен поворотом другого на известный угол вокруг оси, проходящей через их общее начало:
R → 2 − tan ( χ / 2 ) [ e → × R → 2 ] = R → 1 + tan ( χ / 2 ) [ e → × R → 1 ] {\displaystyle {\vec {R}}_{2}-\tan(\chi /2)[{\vec {e}}\times {\vec {R}}_{2}]={\vec {R}}_{1}+\tan(\chi /2)[{\vec {e}}\times {\vec {R}}_{1}]} где R → 1 {\displaystyle {\vec {R}}_{1}} — исходный вектор, R → 2 {\displaystyle {\vec {R}}_{2}} — результирующий вектор, e → {\displaystyle {\vec {e}}} — единичный вектор оси поворота, χ {\displaystyle \chi } — угол поворота. Также формула может быть записана в виде:
R → 2 = ( e → ⋅ R → 1 ) ( 1 − cos χ ) e → + ( e → × R → 1 ) sin χ + R → 1 ⋅ cos χ {\displaystyle {\vec {R}}_{2}=({\vec {e}}\cdot {\vec {R}}_{1})(1-\cos \chi ){\vec {e}}+({\vec {e}}\times {\vec {R}}_{1})\sin \chi +{\vec {R}}_{1}\cdot \cos \chi } Лежит в основе векторной теории конечных поворотов и сложения вращений .[источник не указан 753 дня ] Получена О. Родригом в 1840 г.[ 1]
Без потери общности, направим ось z → {\displaystyle {\vec {z}}} вдоль единичного вектора e → {\displaystyle {\vec {e}}} , а вектор R → 1 {\displaystyle {\vec {R}}_{1}} — лежащим в плоскости OXZ, тогда:
R → 1 x = R → 1 − R → 1 z {\displaystyle {\vec {R}}_{1x}={\vec {R}}_{1}-{\vec {R}}_{1z}} R → 1 y = 0 {\displaystyle {\vec {R}}_{1y}=0} R → 1 z = ( e → ⋅ R → 1 ) e → {\displaystyle {\vec {R}}_{1z}=({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}} Откуда:
R → 1 x = R → 1 − ( e → ⋅ R → 1 ) e → {\displaystyle {\vec {R}}_{1x}={\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}} Положим вектор w → {\displaystyle {\vec {w}}} , равный:
w → = e → × R → 1 {\displaystyle {\vec {w}}={\vec {e}}\times {\vec {R}}_{1}} Заметим, что:
| w → | = | e → × R → 1 | = | e → | | R → 1 | sin ϕ = | R → 1 | sin ϕ {\displaystyle |{\vec {w}}|=|{\vec {e}}\times {\vec {R}}_{1}|=|{\vec {e}}|\,|{\vec {R}}_{1}|\sin \phi \ =|{\vec {R}}_{1}|\sin \phi } | R → 1 x | = | R → 1 | cos ( π / 2 − ϕ ) = | R → 1 | sin ϕ . {\displaystyle |{\vec {R}}_{1x}|=|{\vec {R}}_{1}|\cos(\pi /2-\phi )=|{\vec {R}}_{1}|\sin \phi .} Тогда вектор R → 2 x {\displaystyle {\vec {R}}_{2x}} можно выразить через векторы w → {\displaystyle {\vec {w}}} и R → 1 x {\displaystyle {\vec {R}}_{1x}} и угол χ {\displaystyle \chi } :
R → 2 x = R → 1 x cos χ + w → sin χ = ( R → 1 − ( e → ⋅ R → 1 ) e → ) cos χ + ( e → × R → 1 ) sin χ {\displaystyle {\vec {R}}_{2x}={\vec {R}}_{1x}\cos \chi +{\vec {w}}\sin \chi =({\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}})\cos \chi +({\vec {e}}\times {\vec {R}}_{1})\sin \chi } Результирующий вектор R → 2 {\displaystyle {\vec {R}}_{2}} выражается через векторы R → 2 x {\displaystyle {\vec {R}}_{2x}} и R → 1 z {\displaystyle {\vec {R}}_{1z}} :
R → 2 = R → 2 x + R → 1 z = ( R → 1 − ( e → ⋅ R → 1 ) e → ) cos χ + ( e → × R → 1 ) sin χ + ( e → ⋅ R → 1 ) e → {\displaystyle {\vec {R}}_{2}={\vec {R}}_{2x}+{\vec {R}}_{1z}=({\vec {R}}_{1}-({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}})\cos \chi +({\vec {e}}\times {\vec {R}}_{1})\sin \chi +({\vec {e}}\cdot {\vec {R}}_{1}){\vec {e}}} Приведя подобные, получим формулу поворота Родрига:
R → 2 = ( e → ⋅ R → 1 ) ( 1 − cos χ ) e → + ( e → × R → 1 ) sin χ + R → 1 ⋅ cos χ {\displaystyle {\vec {R}}_{2}=({\vec {e}}\cdot {\vec {R}}_{1})(1-\cos \chi ){\vec {e}}+({\vec {e}}\times {\vec {R}}_{1})\sin \chi +{\vec {R}}_{1}\cdot \cos \chi } Векторное умножение на вектор k можно представить в виде умножения на матрицу K :
k × v = [ ( k × v ) x ( k × v ) y ( k × v ) z ] = [ k y v z − k z v y k z v x − k x v z k x v y − k y v x ] = [ 0 − k z k y k z 0 − k x − k y k x 0 ] [ v x v y v z ] = K v . {\displaystyle \mathbf {k} \times \mathbf {v} ={\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}}={\begin{bmatrix}0&-k_{z}&k_{y}\\k_{z}&0&-k_{x}\\-k_{y}&k_{x}&0\end{bmatrix}}{\begin{bmatrix}v_{x}\\v_{y}\\v_{z}\end{bmatrix}}=\mathbf {K} \mathbf {v} \,.} Вектор v при повороте вокруг единичного вектора k перейдет в вектор
v r o t = v + ( sin θ ) K v + ( 1 − cos θ ) K 2 v = R v , {\displaystyle \mathbf {v} _{\mathrm {rot} }=\mathbf {v} +(\sin \theta )\mathbf {K} \mathbf {v} +(1-\cos \theta )\mathbf {K} ^{2}\mathbf {v} =\mathbf {R} \mathbf {v} \,,} где K ( K v ) = K 2 v = k × ( k × v ) . {\displaystyle \mathbf {K} (\mathbf {K} \mathbf {v} )=\mathbf {K} ^{2}\mathbf {v} =\mathbf {k} \times (\mathbf {k} \times \mathbf {v} )\,.}
Таким образом получается, что матрица поворота вокруг единичного вектора k на угол θ {\displaystyle \theta }
R = I + ( sin θ ) K + ( 1 − cos θ ) K 2 . {\displaystyle \mathbf {R} =\mathbf {I} +(\sin \theta )\mathbf {K} +(1-\cos \theta )\mathbf {K} ^{2}~.} где
K = [ 0 − k z k y k z 0 − k x − k y k x 0 ] . {\displaystyle \mathbf {K} =\left[{\begin{array}{ccc}0&-k_{z}&k_{y}\\k_{z}&0&-k_{x}\\-k_{y}&k_{x}&0\end{array}}\right]~.}