Матрица поворота

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Матрицей поворота (или матрицей направляющих косинусов) называется ортогональная матрица, которая используется для выполнения собственного ортогонального преобразования в евклидовом пространстве. При умножении любого вектора на матрицу поворота длина вектора сохраняется. Определитель матрицы поворота равен единице.

Обычно считают, что в отличие от матрицы перехода при повороте системы координат (базиса), при умножении на матрицу поворота вектора-столбца координаты вектора преобразуются в соответствии с поворотом самого вектора (а не поворотом координатных осей; то есть при этом координаты повернутого вектора получаются в той же, неподвижной системе координат). Однако отличие той и другой матрицы лишь в знаке угла поворота, и одна может быть получена из другой заменой угла поворота на противоположный; та и другая взаимно обратны и могут быть получены друг из друга транспонированием.

Матрица поворота в двумерном пространстве[править | править вики-текст]

В двумерном пространстве поворот можно описать одним углом \;\theta со следующей матрицей линейного преобразования в декартовой системе координат:


  M(\theta) = \begin{pmatrix} 
    \cos{\theta} & \mp \sin{\theta} \\
    \pm\sin{\theta} & \cos{\theta} 
  \end{pmatrix}

Поворот выполняется путём умножения матрицы поворота на вектор-столбец, описывающий вращаемую точку:


\begin{bmatrix}
x' \\
y' \\
\end{bmatrix} = \begin{bmatrix}
\cos \theta & \mp \sin \theta \\
\pm \sin \theta & \cos \theta \\
\end{bmatrix}\begin{bmatrix}
x \\
y \\
\end{bmatrix}.

Координаты (x',y') в результате поворота точки (x, y) имеют вид:

x' = x \cos \theta \mp y \sin \theta\,,
y' = \pm x \sin \theta + y \cos \theta\,.

Конкретные знаки в формулах зависят от того, является ли система координат правосторонней или левосторонней, и выполняется ли вращение по или против часовой стрелки. Верхний знак указан для обычного соглашения: правосторонняя система координат и положительное направление вращения против часовой стрелки (тот же знак верен для левосторонней координатной системы при выборе положительного направления вращения по часовой стрелке; в оставшихся двух комбинациях - нижний знак).

Матрица поворота в трёхмерном пространстве[править | править вики-текст]

Любое вращение в трехмерном пространстве может быть представлено как композиция поворотов вокруг трех ортогональных осей (например, вокруг осей декартовых координат). Этой композиции соответствует матрица, равная произведению соответствующих трех матриц поворота.

Матрицами вращения вокруг оси декартовой системы координат на угол α в трёхмерном пространстве являются:

  • Вращение вокруг оси x (приведена матрица поворота от результирующей системы координат к исходной):
 M_x(\alpha) = 
\begin{pmatrix} 
1 &   0           & 0           \\
0 & \cos \alpha   &  -\sin \alpha \\
0 & \sin \alpha & \cos \alpha
\end{pmatrix} 
,
  • Вращение вокруг оси y (приведена матрица поворота от результирующей системы координат к исходной):
M_y(\alpha) = 
\begin{pmatrix} 
\cos \alpha   & 0 & \sin \alpha \\
   0          & 1 &  0          \\
 -\sin \alpha & 0 & \cos \alpha
\end{pmatrix} 
,
  • Вращение вокруг оси z (приведена матрица поворота от результирующей системы координат к исходной):
M_z(\alpha) =
\begin{pmatrix} 
\cos  \alpha  &  -\sin \alpha & 0 \\
\sin \alpha & \cos \alpha & 0 \\
   0          & 0           & 1
\end{pmatrix} 
.

Положительным углам при этом соответствует вращение вектора против часовой стрелки в правой системе координат, и по часовой стрелке в левой системе координат, если смотреть против направления соответствующей оси[1]. Правая система координат связана с выбором правого базиса (см. правило буравчика).

Матрица поворота в n-мерном пространстве[править | править вики-текст]

Совершенно аналогично могут быть записаны матрицы поворота конечномерного пространства любой более высокой размерности.

Надо только иметь в виду, что для размерностей пространства, не равных трём, невозможно указать единственную прямую, ортогональную двум данным прямым, а поэтому нельзя говорить о вращении вокруг какой-то оси, можно же говорить о вращении в какой-то плоскости[2]. Все точки при повороте в пространстве любой размерности, начиная с 2, всегда движутся параллельно некоторой (двумерной) плоскости.

Итак, совершенно аналогично трехмерному случаю (с приведенной оговоркой) можем написать матрицу поворота в любой координатной плоскости для любой размерности пространства.

Например:

M_{1,2}(\alpha) =
\begin{pmatrix} 
\cos \alpha & -\sin \alpha  & 0          & 0           & 0 \\
\sin \alpha &  \cos \alpha  & 0          & 0           & 0 \\
   0          & 0           & 1          & 0           & 0 \\
   0          & 0           & 0          & 1           & 0 \\
   0          & 0           & 0          & 0           & 1
\end{pmatrix}

- матрица поворота в 5-мерном пространстве в плоскости x_1 x_2,

M_{2,4}(\alpha) =
\begin{pmatrix} 
   1          & 0           & 0          & 0           & 0           & 0           & 0 \\
   0          & \cos \alpha & 0          & -\sin \alpha & 0          & 0           & 0 \\
   0          & 0           & 1          & 0           & 0           & 0           & 0 \\
   0          & \sin \alpha & 0          & \cos \alpha & 0           & 0           & 0 \\
   0          & 0           & 0          & 0           & 1           & 0           & 0 \\
   0          & 0           & 0          & 0           & 0           & 1           & 0 \\
   0          & 0           & 0          & 0           & 0           & 0           & 1
\end{pmatrix}

- матрица поворота в 7-мерном пространстве в плоскости x_2 x_4.

  • При таком подходе знаки перед синусами расставлять даже легче, поскольку они определяются порядком перечисления осей плоскости вращения: какая названа первой, в той строке перед синусом минус.
  • Легко видеть, что матрица поворота в плоскости x_1 x_2 совпадает (что естественно) с матрицей поворота в плоскости x_2 x_1 и т.д. с точность до замены угла поворота на противоположный.
  • Поэтому такие матрицы с переставленными индексами очевидно не независимы, и для получения произвольного поворота достаточно включить в композицию каждую плоскость только один раз, т.е., скажем, только M_{1,2}(\alpha_{1,2}), а не M_{1,2}(\alpha_{1,2}) и M_{2,1}(\alpha_{2,1}).
  • И исходя из этого нетрудно сосчитать их общее количество: n(n-1)/2, где n - размерность пространства.

Изменение оси поворота[править | править вики-текст]

Пусть \;M — матрица поворота вокруг оси с ортом \;n на угол \;\alpha, \;M' — матрица поворота вокруг оси с ортом \;n' на тот же угол, причем

\;n' = M'' \cdot \; n,

где \;M'' — матрица поворота, изменяющая орт оси поворота \;n. Тогда

M' = M'' \cdot M \cdot M''^{\;T} ,

где \;M''^{\;T} — транспонированная матрица \;M''.

Перестановочность поворотов[править | править вики-текст]

Если \;M_1 — матрица поворота вокруг оси с ортом \;n на угол \;\alpha, \;M_2 — матрица поворота вокруг оси с ортом \;m на угол \;\beta, то M_2 \cdot M_1 — матрица, описывающая поворот, являющийся результатом двух последовательно осуществленных поворотов (\;M_1 и \;M_2), поскольку

(M_2 \cdot M_1) \cdot r = M_2 \cdot (M_1 \cdot r).

При этом последовательность поворотов можно поменять, видоизменив поворот \;M_1:

M_2 \cdot M_1 = M'_1 \cdot M_2,

где матрица \;M'_1 — матрица поворота на угол \;\alpha вокруг оси c ортом \;n', повернутым с помощью поворота \;M_2:

n' = M_2 \cdot n, \qquad M'_1 = M_2 \cdot M_1 \cdot M_2^T,

поскольку M_2^T \cdot M_2 = E, так как матрица поворота является ортогональной матрицей (\;E — единичная матрица). Заметим, что коммутативности поворотов в обычном смысле нет, то есть

M_2 \cdot M_1 \neq M_1 \cdot M_2.

Выражение матрицы поворота через углы Эйлера[править | править вики-текст]

Последовательные повороты около осей \;Z, X', Z'' на угол прецессии (\;\alpha), угол нутации (\;\beta) и на угол собственного вращения (\;\gamma) приводят к следующему выражению для матрицы поворота:

 M(\alpha,\beta,\gamma) = \begin{pmatrix} 
    \cos \alpha \cos \gamma - \sin \alpha \cos \beta \sin \gamma
&  -\cos \alpha \sin \gamma - \sin \alpha \cos \beta \cos \gamma
&   \sin \alpha \sin \beta \\
    \sin \alpha \cos \gamma + \cos \alpha \cos \beta \sin \gamma
&  -\sin \alpha \sin \gamma + \cos \alpha \cos \beta \cos \gamma
&  -\cos \alpha \sin \beta \\
   \sin \beta \sin \gamma
&   \sin \beta \cos \gamma
&   \cos \beta
\end{pmatrix}

Ось \;X' — ось X, повернутая первым поворотом (на \;\alpha), \;Z'' — ось Z, повернутая первым и вторым поворотом (на \;\alpha и \;\beta). Вследствие перестановочности поворотов приведенная матрица соответствует поворотам на углы \;\gamma, \;\beta, \;\alpha вокруг осей Z, X, Z:

M(\alpha,\beta,\gamma) = M_z(\alpha) \cdot M_x(\beta) \cdot M_z(\gamma).

В случае, если повороты задаются в другой последовательности, матрица поворота находится перемножением матриц для вращения вокруг соответствующих декартовых осей координат, например:

  • 1) Поворот около осей: X, Y, X
  • 2) Соответственно: X, Y, Z
  • 3) X, Z, X
  • 4) X, Z, Y
  • 5) Y, X, Y
  • 6) Y, X, Z
  • 7) Y, Z, X
  • 8) Y, Z, Y
  • 9) Z, X, Y
  • 10) Z, X, Z
  • 11) Z, Y, X
  • 12) Z, Y, Z

Матрица поворота вокруг произвольной оси[править | править вики-текст]

Пусть ось вращения задана единичным вектором \hat{\mathbf{v}} = (x,y,z), а угол поворота \theta.

Тогда матрица поворота в декартовых координатах имеет вид:

 M(\hat{\mathbf{v}},\theta) = \begin{pmatrix}
   \cos \theta + (1 - \cos \theta) x^2
 & (1 - \cos \theta) x y - (\sin \theta) z 
 & (1 - \cos \theta) x z + (\sin \theta) y  
\\
   (1 - \cos \theta) y x + (\sin \theta) z 
 & \cos \theta + (1 - \cos \theta) y^2
 & (1 - \cos \theta) y z - (\sin \theta) x
\\
   (1 - \cos \theta) z x - (\sin \theta) y
 & (1 - \cos \theta) z y + (\sin \theta) x
 & \cos \theta + (1 - \cos \theta) z^2 
\end{pmatrix}

Выражение матрицы поворота через кватернион[править | править вики-текст]

Если задан кватернион q = (w,x,y,z), то соответствующая матрица поворота имеет вид:

 Q = \begin{bmatrix}
    1 - 2 y^2 - 2 z^2 & 2 x y - 2 z w & 2 x z + 2 y w \\
    2 x y + 2 z w & 1 - 2 x^2 - 2 z^2 & 2 y z - 2 x w \\
    2 x z - 2 y w & 2 y z + 2 x w & 1 - 2 x^2 - 2 y^2
\end{bmatrix} .

Свойства матрицы поворота[править | править вики-текст]

Если \mathbf{M} — матрица, задающая поворот вокруг оси \vec n на угол \phi, то:

  • Для трехмерного пространства (матриц 3\times 3): если строки (или столбцы матрицы) рассматривать как координаты векторов \vec a, \vec b, \vec c, то верны следующие соотношения):
    • |\vec a| = |\vec b| = |\vec c| = 1
    • \vec a \cdot \vec b = 0, \vec b \cdot \vec c = 0, \vec c \cdot \vec a = 0
    • \vec a \times \vec b = \vec c, \vec b \times \vec c = \vec a, \vec c \times \vec a = \vec b
  • Первые два свойства[3], означающие условие ортогональности матрицы, верны и для произвольной размерности пространства (размера матрицы).

Примечания[править | править вики-текст]

  1. То есть если смотреть на плоскость вращении со стороны полупространства, где значения координат оси, вокруг которой осуществляется поворот, положительные.
  2. О вращении в плоскости можно говорить и для трехмерного пространства, например, вращение вокруг оси z - есть вращение в плоскости xy; однако для трехмерного пространства возможно то и другое представление, и поэтому обычно, если вопрос сводится к случаю только этой размерности, выбирают представление (и обозначения) вращения вокруг оси как интуитивно несколько более простое.
  3. Для всех n строк (столбцов).

См. также[править | править вики-текст]

Литература[править | править вики-текст]

  • Лурье А. И. Аналитическая механика — М.:Физматлит — 1961 г. — 824 с.

Ссылки[править | править вики-текст]