2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Приближенная матрица поворота
Сообщение14.05.2019, 23:12 


12/03/17
686
Есть три плоскости с линейно независимыми нормалями $\vec{N_1}^A, \vec{N_2}^A, \vec{N_3}^A$. Известно, что достаточно малым поворотом они перешли в три плоскости $\vec{N_1}^B, \vec{N_2}^B, \vec{N_3}^B$. Для поиска приближенной матрицы поворота вначале была составлена ошибочная переопределенная система уравнений:

$\begin{bmatrix}
 0& N_{iz}^A  &-N_{iy}^A \\
 -N_{iz}^A&  0&N_{ix}^A \\
 N_{iy}^A&  -N_{ix}^A& 0
\end{bmatrix}\cdot\begin{bmatrix}
  W_x\\
  W_y\\
  W_z
\end{bmatrix}=\begin{bmatrix}
 N_{ix}^B\\
 N_{iy}^B\\
 N_{iz}^B 
\end{bmatrix}$

Потом, в ходе следующих рассуждений:

$\begin{bmatrix}
 1& -W_z  &W_y \\
 W_z&  1&-W_x \\
 -W_y&  W_x& 1
\end{bmatrix}\cdot\begin{bmatrix}
  N_{ix}^A\\
  N_{iy}^A\\
  N_{iz}^A
\end{bmatrix}=\begin{bmatrix}
 N_{ix}^B\\
 N_{iy}^B\\
 N_{iz}^B 
\end{bmatrix}$

$$\left\{
\begin{array}{rcl}
  1\cdot N_{ix}^A -W_z\cdot N_{iy}^A  +W_y\cdot N_{iz}^A = N_{ix}^B\\
 W_z\cdot N_{ix}^A  +1\cdot N_{iy}^A -W_x\cdot N_{iz}^A = N_{iy}^B \\
 -W_y\cdot N_{ix}^A  +W_x\cdot N_{iy}^A +1\cdot N_{iz}^A = N_{iz}^B
\end{array}
\right.$$

$$\left\{
\begin{array}{rcl}
  1\cdot N_{ix}^A  +W_y\cdot N_{iz}^A -W_z\cdot N_{iy}^A = N_{ix}^B\\
 -W_x\cdot N_{iz}^A  +1\cdot N_{iy}^A +W_z\cdot N_{ix}^A  = N_{iy}^B \\
 W_x\cdot N_{iy}^A  -W_y\cdot N_{ix}^A  +1\cdot N_{iz}^A = N_{iz}^B
\end{array}
\right.$$

система была подправлена:

$\begin{bmatrix}
 0& N_{iz}^A  &-N_{iy}^A \\
 -N_{iz}^A&  0&N_{ix}^A \\
 N_{iy}^A&  -N_{ix}^A& 0
\end{bmatrix}\cdot\begin{bmatrix}
  W_x\\
  W_y\\
  W_z
\end{bmatrix}=\begin{bmatrix}
 N_{ix}^B - N_{ix}^A\\
 N_{iy}^B - N_{iy}^A\\
 N_{iz}^B - N_{iz}^A 
\end{bmatrix}$

К моему удивлению она дала точно такой же результат (с точностью до всех отображенных в консоли знаков после запятой), как и предыдущая. Причем это происходило на разных тройках плоскостей. Я так и не понял почему так происходит. И, собственно, и хочу задать этот вопрос.

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение15.05.2019, 00:26 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Запишем системы в векторной форме. Индекс $i$ нормали я не буду указывать.

Первая система — это матричная запись векторного произведения $\mathbf W\times\mathbf N^A=\mathbf N^B$. Решение системы должно дать неизвестный вектор $\mathbf W$ по известным $\mathbf N^A$ и $\mathbf N^B$.
Домножим скалярно обе части равенства на $\mathbf N^A$, получим $\mathbf N^A\cdot(\mathbf W\times\mathbf N^A)=\mathbf N^A\cdot\mathbf N^B$. Левая часть тождественный нуль, следовательно, имеем условие совместности $\mathbf N^A\cdot\mathbf N^B=0$. Геометрически оно означает, что результат векторного произведения всегда ортогонален каждому из сомножителей.

Пусть условие совместности выполнено и $\mathbf N^A\neq 0$. Тогда равенство $\mathbf N^A\cdot(\mathbf W\times\mathbf N^A)=\mathbf N^A\cdot\mathbf N^B$ говорит о линейной зависимости первой системы (если умножить уравнения соответственно на $N^A_x, N^A_y, N^A_z$ и сложить, получим нуль слева и справа). Система имеет бесконечное число решений, и какое из них выбирает Ваша программа — одному Богу известно.

Теперь Вы поколдовали над системой и получили новый вариант: $\mathbf W\times\mathbf N^A=\mathbf N^B-\mathbf N^A$. Вновь домножим скалярно обе части на $\mathbf N^A$. Слева по-прежнему нуль. А справа
$\mathbf N_A\cdot(\mathbf N_B-\mathbf N_A)=\mathbf N_A\cdot\mathbf N_B-\mathbf N_A\cdot\mathbf N_A$
Первое слагаемое равно нулю в силу выполнения условия совместности исходной системы. Зато второе в силу $\mathbf N^A\neq 0$ точно ненулевое. Поэтому вторая система несовместна. Что в таком случае будет выдавать Ваша программа — опять-таки загадка.

Я здесь не касаюсь вопроса о правильности составления самих систем уравнений.

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение15.05.2019, 02:07 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
Есть легко проверяемая гипотеза по поводу работы чёрного ящика. Обозначим через $S$ общую матрицу первой и второй системы. Она не имеет обратной, но имеет псевдообратную $S^+$ (имеется в виду псевдообращение Мура-Пенроуза). Матрица $S^+$ в нашем конкретном случае просто выражается через $S$:
$S^+=-\dfrac{1}{\mathbf N^A\cdot\mathbf N^A}S$

Гипотеза: Ваша программа для любой правой части $\mathbf N^B$ выдаёт в качестве решения вектор
$\mathbf W=S^+\mathbf N^B=\dfrac{\mathbf N^A\times\mathbf N^B}{\mathbf N^A\cdot\mathbf N^A}$
Отсюда легко получить, что для правых частей $\mathbf N^B$ и $\mathbf N^B-\mathbf N^A$ программа выдаст один и тот же результат.

Проверим, что при выполнении условия совместности это действительно решение:
$\mathbf W\times\mathbf N^A=\dfrac{\mathbf N^A\times\mathbf N^B}{\mathbf N^A\cdot\mathbf N^A}\times \mathbf N^A=\dfrac{\mathbf N^B(\mathbf N^A\cdot\mathbf N^A)-\mathbf N^A(\mathbf N^A\cdot\mathbf N^B)}{\mathbf N^A\cdot\mathbf N^A}=\mathbf N^B$
Среди бесконечного множества всех решений оно выделяется тем, что ортогонально не только $\mathbf N^B$, но и $\mathbf N^A$.

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение15.05.2019, 06:43 


12/03/17
686
svv в сообщении #1393041 писал(а):
Система имеет бесконечное число решений, и какое из них выбирает Ваша программа — одному Богу известно

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

-- 15.05.2019, 06:55 --

svv в сообщении #1393041 писал(а):
Я здесь не касаюсь вопроса о правильности составления самих систем уравнений

А можно ли всё-таки коснуться этого вопроса? Буду Вам весьма признателен.

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


23/07/08
10908
Crna Gora
Да, я Вас не совсем понял и подумал, что для разных значений $i$ системы решаются независимо.
Но даже при том, что Вы всё решаете совместно, всё равно многое остаётся в силе.
Первая система:
$\mathbf W\times\mathbf N^A_i=\mathbf N^B_i$
Матрица системы, зависящая от $\mathbf N^A_i$, по-прежнему вырождена и обратной не имеет.
Условия совместности (теперь лишь необходимые, но недостаточные):
$\mathbf N^A_i\cdot\mathbf N^B_i=0$
Вторая система:
$\mathbf W\times\mathbf N^A_i=\mathbf N^B_i-\mathbf N^A_i$
Умножаем каждое векторное уравнение на $\mathbf N^A_i$. Учитывая тождество $\mathbf a\cdot (\mathbf w\times\mathbf a)=0$, получаем:
$0=(\mathbf N^B_i-\mathbf N^A_i)\cdot\mathbf N^A_i$
Если выполнены условия совместности для первой системы, это даёт $\mathbf N^A_i=0$.
Итак, вторая система точно несовместна. И раз Вы и при её решении что-то получаете, скорее всего, используется псевдообратная матрица Пенроуза.

-- Ср май 15, 2019 11:45:10 --

granit201z в сообщении #1393055 писал(а):
А можно ли всё-таки коснуться этого вопроса?
Тогда поясните, пожалуйста, какое определение Вы даёте вектору $\mathbf W$, каким геометрическим смыслом его наделяете. И как он у Вас связан с матрицей поворота (с самой матрицей всё ясно и однозначно). А я подумаю, как его найти.

Могу сразу сказать, что вектор $\mathbf w$, направленный вдоль оси вращения, будет ортогонален разности любого вектора после поворота и его же до поворота. В том числе, конечно, и всем $\mathbf N^B_i-\mathbf N^A_i$. И в случае общего положения достаточно двух пар $(\mathbf N^A_i, \mathbf N^B_i)$ для нахождения оси вращения: ось коллинеарна векторному произведению
$(\mathbf N^B_1-\mathbf N^A_1)\times(\mathbf N^B_2-\mathbf N^A_2)$

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение15.05.2019, 15:10 


12/03/17
686
svv в сообщении #1393094 писал(а):
Тогда поясните, пожалуйста, какое определение Вы даёте вектору $\mathbf W$, каким геометрическим смыслом его наделяете. И как он у Вас связан с матрицей поворота (с самой матрицей всё ясно и однозначно). А я подумаю, как его найти.

Физический смысл $W$ - это угловая скорость.
Я исхожу из предположения, что при малых углах поворота, матрица:

$\begin{bmatrix}
 1& -W_z  &W_y \\
 W_z&  1&-W_x \\
 -W_y&  W_x& 1
\end{bmatrix}$

является хорошим приближением настоящей матрицы поворота.

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение16.05.2019, 01:03 
Заслуженный участник


27/04/09
28128
Если у вас какая-то матрица обозначает поворот чего-то равномерно вращающегося за единицу времени, угловая скорость это просто угол поворота и её можно найти, преобразовав матрицу поворота в axis-angle. Формулы известны.

-- Чт май 16, 2019 03:07:30 --

Если вместо матриц (до того как пора поворачивать ими что-то конкретное — в этом матрицы быстрее) оперировать кватернионами, для этого надо будет брать их логарифм, и получится ось поворота, умноженная на угол (выбирая угол в каком-то определённом интервале, можно уберём неоднозначность логарифма).

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение16.05.2019, 02:05 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora
granit201z в сообщении #1393131 писал(а):
Я исхожу из предположения, что при малых углах поворота, матрица:
$\begin{bmatrix}1& -W_z  &W_y \\W_z&  1&-W_x \\-W_y&  W_x& 1\end{bmatrix}$
является хорошим приближением настоящей матрицы поворота.
Да, это верно, если $\mathbf W=\mathbf n \varphi$, где вектор $\mathbf n$ — это единичный вектор, направленный вдоль оси вращения (в правильную сторону), а $\varphi$ — малый угол поворота.

Тогда произвольный вектор $\mathbf N^A$ после поворота будет равен
$\mathbf N^B\approx\mathbf N^A+\mathbf W\times\mathbf N^A$,
откуда получается Ваша вторая система.

Условия совместности для неё:
$\mathbf N^A_i\cdot\mathbf N^A_k=\mathbf N^B_i\cdot\mathbf N^B_k$
Эти условия выражают требование, что поворот не должен менять длины векторов и углы между ними.

 Профиль  
                  
 
 Re: Приближенная матрица поворота
Сообщение16.05.2019, 22:43 


12/03/17
686
Большое спасибо всем за ответы

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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



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

Сейчас этот форум просматривают: Евгений Машеров


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

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