2014 dxdy logo

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

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


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


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



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


12/03/17
709
Есть три плоскости с линейно независимыми нормалями $\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
10910
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
10910
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
709
svv в сообщении #1393041 писал(а):
Система имеет бесконечное число решений, и какое из них выбирает Ваша программа — одному Богу известно

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

-- 15.05.2019, 06:55 --

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

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

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


23/07/08
10910
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
709
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
10910
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
709
Большое спасибо всем за ответы

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

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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