2014 dxdy logo

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

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


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


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



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


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

Такая задача. Есть уравнение $$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
680
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
5011
ФТИ им. Иоффе СПб
Без кватернионов можно так попробовать. Вращение задаётся осью $\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
680
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
680
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
680
arseniiv,

(Оффтоп)

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

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


27/04/09
28128

(Оффтоп)

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

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

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

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



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

Сейчас этот форум просматривают: Marasorty


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

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