2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 10:03 
Итак, нужно получить сабж. Диагоналей четыре штуки, вокруг каждой из них интересуют два поворота (на 120 и 240 градусов), которые совмещают куб с самим собой. Знаю, что в результате поменяются местами координаты вершин куба и/или поменяются знаки у двух из них. Хочу получить этот результат строго. Рассуждаю так. Оси системы координат: х - вправо, у - вверх, z - на нас. Рассмотрим пространственную диагональ, которая имеет положительные проекции на Ox и Oy и отрицательную - на Oz. Поворотом на -45 градусов вокруг Oy добьёмся совпадения проекции диагонали на плоскость XZ с осью Ox. Далее, поворотом на 45 градусов вокруг Oz совместим диагональ с осью Oy. Теперь производим поворот вокруг Oy на 120 градусов. Далее в обратном порядке возвращаем оси в исходное положение. В соответствии с этим у меня получается такое произведение матриц:

$
\begin{pmatrix}
  \sqrt{2}/2 & 0 & -\sqrt{2}/2 \\
  0 & 1 & 0 \\
  \sqrt{2}/2 & 0 & \sqrt{2}/2
\end{pmatrix}
\begin{pmatrix}
  \sqrt{2}/2 & -\sqrt{2}/2 & 0 \\
  \sqrt{2}/2 & \sqrt{2}/2 & 0 \\
  0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
  -1/2 & 0 & -\sqrt{3}/2 \\
  0 & 1 & 0 \\
  \sqrt{3}/2 & 0 & -1/2
\end{pmatrix}\times\\
\times\begin{pmatrix}
  \sqrt{2}/2 & \sqrt{2}/2 & 0  \\
  -\sqrt{2}/2 & \sqrt{2}/2 & 0 \\
  0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
  \sqrt{2}/2 & 0 & \sqrt{2}/2 \\
  0 & 1 & 0 \\
  -\sqrt{2}/2 & 0 & \sqrt{2}/2
\end{pmatrix}.
$

Здесь (справа налево):
1) поворот вокруг Y на -45;
2) поворот вокруг Z на 45;
3) поворот вокруг Y на 120;
4) поворот вокруг Z на -45;
5) поворот вокруг Y на 45.

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

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 10:41 
Аватара пользователя
Есть два подхода. Один - копаться и выяснять, что тут не так, а другой - выкинуть и сделать сразу нормально.
Одна из этих штук (та, которая торчит в первом октанте) переводит X в Y, Y в Z, а Z в X. Можете написать её матрицу?

-- Чт, 2012-02-23, 11:43 --

А, так Вы это уже знаете. Ну а зачем тогда всё?

-- Чт, 2012-02-23, 11:46 --

Просто для интереса, что ли?
Ну, второй угол там не 45° (ведь это, по сути, угол между большой диагональю и дном).

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 11:53 
Хочу разобраться с матричными преобразованиями на этом примере. Так я ошибся в значениях углов? Какие значения будут правильными?

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 14:16 
Аватара пользователя
Может, будет полезной такая информация. Пусть матрица $A$ преобразует вектор $p$ в вектор $q=Ap$. Запишем в компонентах:
$$\begin{bmatrix}q_1\\q_2\\q_3\end{bmatrix}=\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix}$$
Возьмем в качестве вектора $p$ базисный вектор (орт) $e_x$. Он имеет компоненты $(1, 0, 0)$. Подставляя, получим:$$\begin{bmatrix}q_1\\q_2\\q_3\end{bmatrix}=\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\begin{bmatrix}1\\0\\0\end{bmatrix}=\begin{bmatrix}a_{11}\\a_{21}\\a_{31}\end{bmatrix}$$
Аналогично можно проделать с другими базисными векторами. Получается, что матрица преобразует векторы $e_x, e_y, e_z$ соответственно в $$\begin{bmatrix}a_{11}\\a_{21}\\a_{31}\end{bmatrix}\,,\;\begin{bmatrix}a_{12}\\a_{22}\\a_{32}\end{bmatrix}\,,\;\begin{bmatrix}a_{13}\\a_{23}\\a_{33}\end{bmatrix}$$Отсюда следует потрясающий вывод: столбцы матрицы -- это векторы, в которые переходят $e_x, e_y, e_z$ при преобразовании. При этом преобразование не обязано быть поворотом.

А ведь несложно понять, во что перейдет, скажем, $e_y$ при каком-то из интересующих Вас поворотов. Значит, и матрицу можно выписать "в уме". Возьмем пример, рекомендованный ИСН:$$e_x\mapsto e_y\,,\; e_y\mapsto e_z\,,\; e_z\mapsto e_x$$Тогда матрица будет такой:$$A=\begin{bmatrix}0&0&1\\1&0&0\\0&1&0\end{bmatrix}$$

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 15:15 
svv
Спасибо, но это мне известно.

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

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 16:00 
Аватара пользователя
physchemist писал(а):
Общеизвестно, что для поворота точки вокруг произвольной оси, проходящей через начало координат, вначале производят поворот (или, вообще говоря, два поворота) с целью совместить ось с какой-либо из осей координат, затем поворачивают точку вокруг этой оси, а потом возвращают систему координат на место.
Не хотелось бы, чтобы Вы думали, что этот сложный способ -- единственный. Я описал выше другой, а вот ещё третий.

Пусть ось вращения задается единичным вектором $\mathbf n$. Требуется повернуть вектор $\mathbf p$ вокруг оси $\mathbf n$ на угол $\alpha$.
Разложим $\mathbf p$ на параллельную $\mathbf n$ и перпендикулярную $\mathbf n$ части:
$\mathbf p=\mathbf p_{\parallel}+\mathbf p_{\perp}$
$\mathbf p_{\parallel}=\mathbf n(\mathbf n\cdot\mathbf p)$
$\mathbf p_{\perp}=\mathbf p-\mathbf n(\mathbf n\cdot \mathbf p)$
Построим вектор $\mathbf s$, получаемый поворотом $\mathbf p_{\perp}$ вокруг оси $\mathbf n$ на $\pi/2$ (против часовой стрелки, если смотреть навстречу оси):
$\mathbf s=\mathbf n\times \mathbf p_{\perp}=\mathbf n\times \mathbf p$
Тогда поворот $\mathbf p_{\perp}$ на произвольный угол $\alpha$ даст
$\mathbf p_{\perp}\cos\alpha+\mathbf s\sin\alpha$
Складывая с не изменившейся параллельной частью, найдем результат:
$\mathbf q=\mathbf p_{\parallel}+\mathbf p_{\perp}\cos\alpha+\mathbf s\sin\alpha$
$\mathbf q=\mathbf p\cos\alpha+\mathbf n(\mathbf n\cdot \mathbf p)(1-\cos\alpha)+\mathbf n\times \mathbf p\sin\alpha$

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение23.02.2012, 21:01 
physchemist в сообщении #541937 писал(а):
Общеизвестно, что для поворота точки вокруг произвольной оси, проходящей через начало координат, вначале производят поворот (или, вообще говоря, два поворота) с целью совместить ось с какой-либо из осей координат, затем поворачивают точку вокруг этой оси, а потом возвращают систему координат на место.
Ну, это кто-то однажды проделал, потом выписал людям получившуюся формулу, и люди ей пользуются, безо всяких "вначале... затем... а потом". Здесь, например, я её приводил, формулу для матрицы поворота.

-- 23 фев 2012, 22:09:24 --

physchemist, чисто с учётом Вашего ника (что учитывать на форуме категорически запрещается :-) ) отмечу, что в анналах имеется тема Матрица поворота для молекулы. О её (не)информативности ничего не помню.

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение25.02.2012, 14:43 
svv
Хм... Это формула Родрига? Спасибо, буду разбираться.

Алексей К.
И Вам спасибо.

 
 
 
 Re: Матрица поворота вокруг пространственной диагонали куба
Сообщение26.02.2012, 02:36 
Аватара пользователя
$\mathbf q=\mathbf p\cos\alpha+\mathbf n(\mathbf n\cdot \mathbf p)(1-\cos\alpha)+\mathbf n\times \mathbf p\sin\alpha$
Не знал, что у этой формулы может быть специальное название.
Несложно перебросить мостик от неё к той формуле, что привёл Алексей К.

Запишем сначала в индексных ("тензорных") обозначениях:
$q_i=p_i\cos\alpha+n_i n_k p_k (1-\cos\alpha)+\varepsilon_{ijk}n_j p_k\sin\alpha$ ,
где $\varepsilon_{ijk}$ -- символ Леви-Чивита.

Отсюда компоненты матрицы преобразования равны
$a_{ik}=\delta_{ik}\cos\alpha+n_i n_k (1-\cos\alpha)+\varepsilon_{ijk}n_j \sin\alpha$ .
Это сумма трех матриц:
$\cos\alpha\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}\;+\;(1-\cos\alpha)\begin{bmatrix}n_1 n_1&n_1 n_2&n_1 n_3\\n_2 n_1&n_2 n_2&n_2 n_3\\n_3 n_1&n_3 n_2&n_3 n_3\end{bmatrix}\;+\;\sin\alpha\begin{bmatrix}0&-n_3&+n_2\\+n_3&0&-n_1\\-n_2&+n_1&0\end{bmatrix}$
Складывая матрицы, получим результат, который привёл Алексей К., лишь в иных обозначениях.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group