Guest
Новичок
|
Возникла необходимость найти матрицу поворота в н-мерном пространстве. Поворот должен быть такой, чтобы центральная ось (например, в 3-х мерном пр-ве (1, 1, 1) перешла в (0, 0, 1), и соответственно плоскость перпендикулярная оси (1, 1, 1) стала плоскостью перпендикулярной оси (0, 0, 1) или параллельна пл-ти (x, y, 0)). По идее, эта результирующая матрица, должна быть произведением матриц простых поворотов (вокруг одной оси), на подобии |а –а 0 | |а а 0 | |0 0 1 | Где а = 1/корень(2) Т.е. поворот вокруг оси Ox на 45 градусов, далее поворот вокруг Oz на 45 градусов, ну и т.д. Но почему-то таким путем, мне не удалось найти результирующую матрицу. Стал искать методом от обратного (зная какой вид должна иметь результирующая матрица). И для 3-х мерного случая нашел: | 1 0 -1 | | 1/кор(3) -2/кор(3) 1/кор(3) | | кор(2)/кор(3) кор(2)/кор(3) кор(2)/кор(3)| И для 4-х мерного: | -a a a -a | | -a a -a a | | a a -a -a | | a a a a | Где а = 1/корень(4) Правильны ли эти матрицы? Т.е. удовлетворяют ли они поставленной задаче? И как найти матрицу для 6-ти мерного случая, т.к. исходно нужна была именно для 6? И почему матрицы для 3-х и для 4-х мерных случаев, не описывается произведением матриц простых поворотов (вокруг одной оси)? Был бы очень благодарен, если кто поможет разобраться в этом. Заранее большое спасибо.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 4 апр. 2007 13:18 | IP
|
|
MEHT
Долгожитель
|
Попробуйте исходить из общего. Хотя не избежать громозкости... Каждый из поворотов можно рассматривать как последовательные повороты в координатных плоскостях. Например, поворот на угол a в плоскости XOY осуществляется матрицей cos(a) sin(a) -sin(a) cos(a) Поворот в трехмерном пространстве OXYZ можно рассматривать как 3 последовательных поворота на углы a, b, c, соответственно, в плоскостях YOZ (поворот вокруг оси X на угол a), ZOX (поворот вокруг оси Y на угол b), XOY (поворот вокруг оси Z на угол c). Соответствующие матрицы будут для первого поворота: 1 0 0 0 cos(a) sin(a) 0 -sin(a) cos(a) для второго поворота: cos(b) 0 sin(b) 0 1 0 -sin(b) 0 cos(b) для третьего поворота: cos(с) sin(с) 0 -sin(с) cos(с) 0 0 0 1 Последовательное перемножение дает матрицу поворота в 3-х мерном пространстве. (Обратите внимание, - именно последовательное перемножение, ибо матрицы конечных поворотов не коммутируют). Аналогично строится матрица поворота в n-мерном пространстве. В частности, для 4-х мерного пространства нужно рассмотреть повороты в 6 плоскостях, для 5-мерного - в 10 плоскостях, для 6-мерного - в 15 плоскостях, ------ для n-мерного - в n!/[(n-2)!*2] плоскостях. Перемножать 15 матриц размера 6 на 6 дело довольно муторное... хотя можете попробовать (Сообщение отредактировал MEHT 7 апр. 2007 3:08)
|
Всего сообщений: 1548 | Присоединился: июнь 2005 | Отправлено: 7 апр. 2007 3:07 | IP
|
|
|