2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Матрицы поворота
Сообщение21.02.2018, 16:31 


18/05/15
679
Всем доброго времени суток!

Такая задача. Есть уравнение $$ABC=D,$$ где $A,B,C,D$ ортогональные матрицы 3x3. Матрица $D$ известна. Про $A,B$ и $C$ известно только то, что каждая из них образуется из единичной матрицы поворотом вокруг своей оси на угол соответственно $\alpha, \beta$ и $\gamma$. Оси поворотов пересекаются в начале координат, но в принципе могут быть любыми. Верно ли то, что, независимо от ориентации осей поворотов, всегда существуют значения $\alpha, \beta$ и $\gamma$, при которых это уравнение удовлетворяется. И если да, то единственны ли эти значения (по модулю $2\pi$).

Я сам столкнулся с этой задачей в частной постановке, когда оси поворотов для $A$ и $B$ ортогональны. Если при этом ось поворота для $C$ либо совпадает с одой из осей поворотов $A$ и $B$, либо ортогональна им обеим, то такие $\alpha, \beta$ и $\gamma$ находятся сразу. В общем же случае получается что-то страшное, много уравнений, плюс условия ортогональности.. Хочется верить, что на эту тему должно быть что-то в литературе, статья или книга. Или если есть какие-нибудь наводящие соображения. За всё заранее благодарен:)

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение21.02.2018, 17:24 
Заслуженный участник


27/04/09
28128
ihq.pl в сообщении #1293595 писал(а):
Оси поворотов пересекаются в начале координат, но в принципе могут быть любыми.
Вы уж определитесь. Линейными операторами являются только повороты в плоскости, проходящей через ноль. Если это не такой поворот, это аффинный (или там проективный) оператор, по которым, конечно, можно получить линейный, описывающий его полностью, но это будет оператор в пространстве размерности на 1 выше (и для трёхмерного случая порядок матрицы будет 4, а не 3).

ihq.pl в сообщении #1293595 писал(а):
Верно ли то, что, независимо от ориентации осей поворотов, всегда существуют значения $\alpha, \beta$ и $\gamma$, при которых это уравнение удовлетворяется. И если да, то единственны ли эти значения (по модулю $2\pi$).
Ну вот в частном случае взаимно ортогональных осей ответы да и нет соответственно. Конкретный контрпример: поворачиваем на 90° вокруг исковой, потом на 90° вокруг игрековой; в другом случае поворачиваем вокруг игрековой, а затем зетовой. Если не было каких-то проблем с несоответствующими ориентациями, получится одно и то же.

С произвольной тройкой осей вопрос интереснее. Можно воспользоваться кватернионами: поворот $\mathbf v$ вокруг оси с единичным вектором $\mathbf n$ на угол $\varphi$ — это (с точностью до перепутанного знака) $e^{-\mathbf n\varphi/2}\mathbf ve^{\mathbf n\varphi/2}$, где $e^{\mathbf nt} = \cos t + \mathbf n\sin t$, когда $\mathbf n^2 = -1$ (если это единичный чисто векторный кватернион). Теперь можно рассмотреть композицию двух поворотов, задаваемых элементами $c_i + s_i\mathbf n_i, i\in1..2$ — получится, что ось результата кратна $s_1s_2\mathbf n_2\times\mathbf n_1 + c_2s_1\mathbf n_1 + c_1s_2\mathbf n_2$. Это можно как-то проанализировать, а потом попытаться добавить третий поворот.

-- Ср фев 21, 2018 19:29:33 --

А можно поинтересоваться, откуда пришла задача?

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение21.02.2018, 20:17 
Заслуженный участник


26/05/14
981
Если все три оси совпадают, то ответ - нет. Из соображений непрерывности можно показать, что если все три оси достаточно близки, то ответ тоже - нет.
Тогда задача формулируется так: придумать удобное понятие близости и найти границу ниже которой ответ - нет, выше - да.

-- 21.02.2018, 20:23 --

arseniiv правильно подсказывает что матрицы можно заменить на кватернионы. Тогда задача переформулируется так: есть три оси, вокруг каждой строим кватернион (менять можно только угол). При каких условиях произведение этих трёх кватернионов покрывает всё множество нормированных кватернионов?

-- 21.02.2018, 21:11 --

Есть работа 2001 года, которая решает эту задачу. Но на платная. И правила раздела запрещают мне приводить её здесь.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 02:19 


18/05/15
679
arseniiv в сообщении #1293615 писал(а):
Ну вот в частном случае взаимно ортогональных осей ответы да и нет соответственно. Конкретный контрпример: поворачиваем на 90° вокруг исковой, потом на 90° вокруг игрековой; в другом случае поворачиваем вокруг игрековой, а затем зетовой. Если не было каких-то проблем с несоответствующими ориентациями, получится одно и то же.

Да, в этом случае решений несколько, но не учитывается последовательность поворотов. Поэтому, это по-моему не совсем то. Лучше наверно сформулировать условие так. Скажем, есть твердое тело, закрепленное в точке $O$, и есть три оси, жестко связанные с ним. Оси конечно проходят через $O$. Пусть оси будут ориентированы произвольно, но не совпадают. Тогда $ABC$ - это три последовательных поворота тела вокруг этих осей на углы $\gamma,\beta$ и $\alpha$. Вопрос тот же. Больше всего, конечно, интересуют условия единственности решения. С кватернионами никогда не имел дела. Нужно будет время, чтобы освоить. Но идея отличная, спасибо! Задача из области восстановления геометрически характеристик проектирующих устройств (например,радиографов) по нескольким проекциям одной точки в разных положениях.

slavav Было бы интересно почитать эту статью 2001 года. Жаль, что нет ссылки. Я бы все-таки сначала попробовал найти способ получить ее бесплатно:)

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 02:29 
Заслуженный участник


26/05/14
981
Задача популярная. Есть ещё работы в 70х и 90х годах. Но все платные и только на английском. Так что я везде только рефераты прочитал.
Без кватернионов вы её не решите.
Решение иногда не единственное. Почитайте про gimbal lock/Складывание рамок. В общем положении решение, видимо, единственное (когда оно есть).

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 03:22 
Заслуженный участник
Аватара пользователя


04/09/14
5003
ФТИ им. Иоффе СПб
Без кватернионов можно так попробовать. Вращение задаётся осью $\mathbf{n}$ (единичный вектор) и углом поворота вокруг этой оси $\phi.$ Матрицу поворота можно записать как $R_{ik}(\mathbf{n},\phi)=\delta_{ik}-\epsilon_{ikl}n_l\sin\phi+\epsilon_{isl}n_l\epsilon_{skt}n_t(1-\cos\phi)$ (если не соврал). Здесь $\delta_{ik}$ - символ Кронекера, $\epsilon_{ikl}$ - антисимметричный тензор, по повторяющимся значкам предполагается суммирование. Фактически это те же кватернионы, только слов таких не надо знать. Задача сведется к вопросу о разрешимости неких уравнений, и там - решай кто сможет.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 11:39 
Заслуженный участник
Аватара пользователя


06/10/08
6422
slavav в сообщении #1293657 писал(а):
Есть работа 2001 года, которая решает эту задачу. Но на платная. И правила раздела запрещают мне приводить её здесь.
Задача достаточно нетривиальная, так что можно и привести. Но я нашел только 2003, J. Wittenburg, L. Lilov. Decomposition of a Finite Rotation into Three Rotations about Given Axes // Multibody System Dynamics 9(4), p.353-375. 2003. https://doi.org/10.1023/A:1023389218547

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 13:21 
Заслуженный участник


26/05/14
981
Спасибо, Xaositect. Да, это она.
ihq.pl, список ссылок на этой же странице содержит другие работы решающие задачу. Есть русский автор.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение22.02.2018, 14:22 
Заслуженный участник


27/04/09
28128
ihq.pl в сообщении #1293708 писал(а):
Да, в этом случае решений несколько, но не учитывается последовательность поворотов. Поэтому, это по-моему не совсем то.
Это то, потому что в первом случае в конце можно повернуть вокруг $z$ на 0°, а в последнем перед всеми сделать поворот вокруг $x$ на 0°. :-) Вот то, что случай ортогональных осей специальный и так просто не обобщается, гораздо лучшее возражение.

(Про исходную задачу)

ihq.pl в сообщении #1293708 писал(а):
Задача из области восстановления геометрически характеристик проектирующих устройств (например,радиографов) по нескольким проекциям одной точки в разных положениях.
Понятно (и тут я вообще не в курсе, чтобы что-то говорить). Но если у вас там оси не с самого начала появляются и нужны только для того, чтобы задать ориентацию тела числами (теми углами), то есть способы, которыми удобнее манипулировать (те же единичные кватернионы вида $c + s\mathbf n$), и при этом не такие пространственно затратные (если, конечно, это вообще важно) как ортогональные матрицы.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение23.02.2018, 10:13 


18/05/15
679
Xaositect, спасибо за ссылку!

arseniiv

(Оффтоп)

Там такая картина. Допустим, есть сканер, микроскоп, томограф, энцефалограф, неважно, такой, с помощью которого измеряют какую-нибудь характеристику объекта и по полученным данным потом реконструируют распределение этой характеристики в пространстве. Алгоритмы реконструкции очень чувствительны к геометрическим параметрам, например, координатам линий скана, которые присваиваются данным измерения по умолчанию на основе знания геометрии самого сканера. Эта геометрия со временем сбивается. Поэтому, файл, в котором хранится соответствующая информация, надо периодически обновлять. Предусмотрены специальные калибровочные процедуры. Как правило, берут объект, про который всё известно, например, решетку, внутри которой все строго перпендикулярно, шаг решетки известен и т.д., и решают обратную задачу, т.е. наоборот, по известной геометрии объекта восстанавливается геометрия сканера. Ну вот, про решетку то всё известно, но как она лежит относительно сканера - нет. И возникают матрицы поворотов. На эту тему много разного написано, но чтобы в кватернионах.. такого еще не видел.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение23.02.2018, 10:38 
Заслуженный участник


26/05/14
981
Я отреагирую на офтопик. Вашу задачу можно решить численно. Определим $f(\alpha, \beta, \gamma) = \left\lVert A(\alpha)B(\beta)C(\gamma) - D\right\rVert$. Здесь $A, B, C, D$ - матрицы или кватернионы. Отыщите минимум $f$. Если он близок к нулю, то задача разрешима и у вас есть решение.
С инженерной точки зрения это самый короткий путь к цели. Есть много пакетов минимизирующих функции.

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение26.02.2018, 11:13 


18/05/15
679
slavav в сообщении #1293880 писал(а):
Я отреагирую на офтопик. Вашу задачу можно решить численно. Определим $f(\alpha,\beta,\gamma)$

На сам деле функционал зависит не только от трех углов. Оси поворотов то неизвестны, во всяком случае, одна ось точно неизвестна. Извиняюсь за неясную формулировку:) Если бы оси были известны, задачу можно было бы решить аналитически. Интересны прежде всего условия, при которых задача имеет единственное решение. Какой смысл искать минимум функционала $f$, если решение существует для каждого положения неизвестной оси? Прежде чем браться за численные методы, надо как-то корректно поставить задачу. Вот я и хочу выяснить, а вдруг существует только одно единственное положение оси, в котором уравнение разрешается относительно $\alpha,\beta,\gamma$? Тогда можно было б построить какай-нить итеративный процесс, который сходился бы к решению... наверно

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение26.02.2018, 20:52 
Заслуженный участник


27/04/09
28128
Теперь я окончательно запутался. Я подумал, вам известны, скажем, углы между главными направлениями решётки, которой вы калибруете прибор, или что-то такое, и вы поворачиваете её вокруг этих направлений каким-то манипулятором на углы и т. п.. Так что вам известно и что вы хотите определить? А то мне опять показалось, что углы и оси лишние… :?

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение27.02.2018, 09:55 


18/05/15
679
arseniiv,

(Оффтоп)

решетка может лежать как угодно. В идеале всё должно работать примерно так: в назначенное время решетку кладут перед прибором, вернее, как водится, бросают как попало. Нажимают кнопку, всё остальное делает машина. Никаких супер дорогих манипуляторов, способных перемещать или вращать предметы с точностью до нанометра. Юзер или технический персонал, которому по барабану, правильно он положил или нет, главное, положил. Я знаю, что одной проекции небрежно брошенного на рабочий столик кубика достаточно для определения ну как минимум трех важных параметра проектора - расстояние от источника до экрана и две координаты ортогональной проекции источника на экран. При этом совершенно неважно, как ориентирован экран и его система координат. Но величин, описывающих его геометрию, восемь, и поэтому вместо кубика надо использовать что-то другое, но такое, чтобы всё работало точно и в два-три клика, а лучше - в один. В задаче оси матриц $A$ и $B$ известны, а ось матрицы $C$ описывает положение решетки и она неизвестна. А вообще, я пока сам толком не прояснил для себя картину происходящего. Пока только пытаюсь выяснить, что возможно в принципе. Кватернионы пробую.. всё ок:) Потихонечку что-нибудь придумаю

 Профиль  
                  
 
 Re: Матрицы поворота
Сообщение27.02.2018, 19:10 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Да чего мы всё в оффтопе-то, раз вы не против обсуждения. :-)

Тогда кажется, что углы поворота могут быть действительно лишними.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group