2014 dxdy logo

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

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


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


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4
 
 
Сообщение27.04.2009, 22:42 


14/08/08
45
А все таки почему разница в результатах универсальной и моей матрицы?

 Профиль  
                  
 
 
Сообщение27.04.2009, 23:12 


29/09/06
4552
Разница может быть (только?) в том, что матрица, которую Вы называете "универсальной", и матрица, которую Вы называете "своей матрицей", различны. Ну приведите их (матриц) численные значения. И пояснения: универсальная - это типа от меня и из Википедии. А Ваша --- это кто? Это по методам GAA (который хитро слинял, и даже моё паясничание не вернуло его взад, хотя бы помодерировать чуть-чуть)?

 Профиль  
                  
 
 
Сообщение27.04.2009, 23:31 


14/08/08
45
Думаете увидит :lol: "Моя" матрица скажем так сделана по мотивам GAA, но немного отличается, уж слишком мудрены, для меня, его повороты.

 Профиль  
                  
 
 
Сообщение28.04.2009, 10:29 


29/09/06
4552
stuk писал(а):
Моя матрица собственного изготовления
$$
\begin{array}{l}
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}^{-1}
%
\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}^{-1}
%
\times \\[10pt] \times
%
\begin{pmatrix} 
\cos\gamma & \sin\gamma & 0\\ 
-\sin\gamma & \cos\gamma & 0\\
0 & 0 & 1 \\
\end{pmatrix}
%
\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}
%
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}\end{array}
$$
Правда результат немного отличается от универсальной.

Проблема, видимо, в том, что Ваша матрица есть результат неправильного решения довольно сложной задачки. Где именно не так --- я, признаться, не разбирался. Для этого мне надо купить принтер, всё распечатать и устроить себе 2 часа бесконечной скуки (например, поехать на электричке в Москву или пойти на пляж). Я пока к этому не готов. Причиной может быть, в частности, когда-то обнаруженное Ваше непонимание положительных и отрицательных углов поворота. Замечу, что в матрицах, которые Вы обращаете, достаточно заменить угол $\alpha$ или $\beta$ на $-\alpha$ или $-\beta$ --- получится та cамая обратная матрица:
$$
\small
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}^{-1}
=
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos(-\alpha) & -\sin(-\alpha) \\
0 & \sin(-\alpha) & \cos(-\alpha) \\
\end{pmatrix}
=
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & \sin\alpha \\
0 & -\sin\alpha & \cos\alpha \\
\end{pmatrix}
$$
В частности, при $\alpha=\pi/2$ и $\beta=0$ (такие подстановки --- способ поиска ошибок) Ваша матрица и "универсальная" дают принципиально разные повороты.

Игры с 3D-программой должны давть полное совпадение с т.н. "универсальной" матрицей.

Добавлено спустя 29 минут 13 секунд:

$$
\begin{array}{l}
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}^{-1}
%
\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}^{-1}
%
\times \\[10pt] \times
%
\begin{pmatrix} 
\cos\gamma & \sin\gamma & 0\\ 
-\sin\gamma & \cos\gamma & 0\\
0 & 0 & 1 \\
\end{pmatrix}
%
\underbrace{
\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}
%
\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}
\times
\begin{pmatrix} 
\mbox{вектор,} \\
\mbox{который мы} \\
\mbox{поворачиваем}
\end{pmatrix}
}_{\mbox{получение вектора ОА}}\end{array}
$$

Итак, первым делом Вы поворачиваете на $\alpha$, потом на $\beta$, т.е. конструируете вектор $OA$. Стало быть, чтобы надеяться на успех, Вашу матрицу (произведение пяти матриц) надо умножать на
$$\begin{pmatrix} 
\mbox{вектор,} \\
\mbox{который мы} \\
\mbox{поворачиваем}
\end{pmatrix}=(0,0,1)$$, а мы все думаем, что её надо умножать на
$$\begin{pmatrix} 
\mbox{вектор,} \\
\mbox{который мы} \\
\mbox{поворачиваем}
\end{pmatrix}=OA$$! Даже разобравшись с этим видно, что дальнейшие повороты задачу не решают.

Добавлено спустя 46 минут 13 секунд:

Рациональные зёрна проглядываются, обсудим, если угодно, попозже. Или, может, зачёт уже в кармане и всё до лампочки?

 Профиль  
                  
 
 
Сообщение28.04.2009, 10:36 


14/08/08
45
Что то я запутался мы поворачиваем вокруг вектора $OA$ точку $B (X_B, Y_B, Z_B)$. И эти две матрицы
$\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}$$\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}$
служат как раз для перевода координат точки $B$, в систему координат в которой ось $OZ$ совпадает с вектором $OA$.

Хотя сейчас понял Вашу мысль, тем умножением мы должны получить направляющие косинусы вектора $OA$ т.е. $U_x, U_y, U_z$. Только вот не знаю состыкуется ли это с планом решения GAA
GAA в сообщении #206964 писал(а):
Приведу очевидную схему решения.
1. Задайте вторую систему координат , в которой ось будет сонаправлена с вектором .
2. Найдите координаты точки в этой системе координат.
3. Найдите координаты точки (в системе ) после поворота на угол вокруг оси .
4. Найдите координаты точки в исходной системе координат.


Хочу напомнить что я получил идентичный результат с универсальной матрицей когда нарушил коммутативность матриц с углами $\alpha$ и $\beta$ т.е.
$\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}^{-1}$$\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}^{-1}$ $ \begin{pmatrix} 
\cos\gamma & \sin\gamma & 0\\ 
-\sin\gamma & \cos\gamma & 0\\
0 & 0 & 1 \\
\end{pmatrix}$x
x$\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}$$\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}$ $\begin{pmatrix} 
6,5367\\
73,5708\\
-13,0236\\
\end{pmatrix}$$=\begin{pmatrix} 
39,9884\\
62,3664\\
-11,6776\\
\end{pmatrix}$

Вот такие не понятности….

Добавлено спустя 4 минуты 36 секунд:

На счет зачета и кармана Вы правы :D Но все таки хотелось бы разобраться до конца :roll:

 Профиль  
                  
 
 
Сообщение28.04.2009, 12:23 


29/09/06
4552
stuk в сообщении #209015 писал(а):
Но все таки хотелось бы разобраться до конца
Трогательно и похвально :) .

Далее я, по-видимому, предлагаю то же, что и GAA, только другими словами, более близкими к моему мозгоустройству.

Первый подход.
Имеется вектор --- ось вращения $OA=(\ldots)$. Поскольку мы не умеем поворачивать вокруг неё, но умеем, например, вокруг оси $OZ$, то поищем преобразование $T$, такое, чтобы оно нашу ось выставило вертикально. Раз уж вектор $OA$ был получен из $OZ$ двумя поворотами, эту подзадачу, видимо, решают два обратных поворота, сначала на $-\beta$, потом на $-\alpha$: $T=T_{-\alpha}\cdot T_{-\beta}$. Убедитесь, что да, векторочек ОА встал вертикально: $T\cdot OA=(0,0,1)$. Теперь совершаете известный поворот вокруг оси $OZ$ на $\gamma$ (описываемый некой матрицей $T_\gamma$). Теперь совершаете преобразование, обратное $T$. Итог: искомая матрица --- $T^{-1}T_\gamma T$. В частности, если было $T=T_2 T_1$, то итог будет $(T_2 T_1)^{-1}T_\gamma T_2 T_1=T_1^{-1} T_2^{-1}T_\gamma T_2 T_1$.
Самопровека: действие полученной матрицы на ось $OA$ должно оставлять её на месте при любом $\gamma$.


Второй подход.
Но по-хорошему задачу надо решать в общей постановке, т.е. заняться чисто выводом той самой универсальной формулы. И желательно в приличных обозначениях. Забыть про Ваш конкретный смысл углов $\alpha,\beta$: это некий частный случай, который потом можно подставлять в универсальную формулу.

Имеется вектор --- ось вращения $\Omega=(u_x=\cos \alpha,\:u_y=\cos\beta, u_z=\cos\gamma)$ ($u_x^2+u_y^2+u_z^2$; или возьмите сферические координаты, как предлагал GAA) . Поскольку мы не умеем поворачивать вокруг неё, но умеем, например, вокруг оси $OZ$, то поищем преобразование $R$, такое, чтобы оно нашу ось выставило вертикально: $R\Omega=OZ=(0,0,1)$. Вам было проще искать такой поворот, когда углы $\alpha,\beta$ трактовались в Вашем смысле (наша полемика про "составляют" --- "повёрнуты"). Что же, используйте это, посмотрите например те же проекции, найдите переход от одной терминологии к другой. Или поймите, что это предварительное преобразование есть поворот на некий угол $\xi=?$ вокруг оси $\Omega'=\Omega\times OZ$ (векторное произведение; не забыть потом про нормировку). Попробуйте его наглядно представить и реализовать. Далее --- тот же поворот на угол $\theta$ или $\omega$ (потому что обозначение $\gamma$ нам теперь не нравится) вокруг $OZ$ и обратное преобразование, $R^{-1}$.
Самопровека: действие полученной матрицы на ось $\Omega$ должно оставлять её на месте при любом $\theta$.

Добавлено спустя 20 минут 48 секунд:

И поймите-осознайте, что если Вы вектор $v_0$ повернули матрицей $M_1$, то получили вектор $v_1=M_1v_0$.
Если Вы затем вектор $v_1$ повернули матрицей $M_2$, то получили вектор $v_2=M_2v_1=M_2(M_1v_0)=M_2M_1v_0=(M_2M_1)v_0$.
Если Вы затем вектор $v_2$ повернули матрицей $M_3$, то получили вектор $v_3=M_3v_2=M_3M_2M_1v_0$.
Эти три операции можно заменить одним действом, матрицей $M=M_3M_2M_1$.
Тем самым я обосновал Вам порядок матриц в произведении --- 3, 2, 1 для последовательности действий 1, 2, 3.

 Профиль  
                  
 
 
Сообщение28.04.2009, 17:01 
Заслуженный участник


12/07/07
4522
stuk писал(а):
Хочу напомнить что я получил идентичный результат с универсальной матрицей когда нарушил коммутативность матриц с углами $\alpha$ и $\beta$ т.е.
$\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}^{-1}$$\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}^{-1}$ $ \begin{pmatrix} 
\cos\gamma & \sin\gamma & 0\\ 
-\sin\gamma & \cos\gamma & 0\\
0 & 0 & 1 \\
\end{pmatrix}$x
x$\begin{pmatrix} 
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{pmatrix}$$\begin{pmatrix} 
\cos\beta & 0 & -\sin\beta \\
0 & 1 & 0 \\
\sin\beta & 0 & \cos\beta \\
\end{pmatrix}$ $\begin{pmatrix} 
6,5367\\
73,5708\\
-13,0236\\
\end{pmatrix}$$=\begin{pmatrix} 
39,9884\\
62,3664\\
-11,6776\\
\end{pmatrix}$
Вот такие не понятности….

1. Так вычислять нельзя. (И дело не в том, что повороты надо выполнять на углы $-\beta$ и $-\alpha$, а в том, что для выполнения операций в «обратную сторону», поворот на угол $-\beta$ надо делать не вокруг оси $OY$, а вокруг оси $OY’$. Но координаты вектора $OB$, на который будет умножаться матрица поворота на угол $\beta$, заданы в системе $XYZ$!)
Если все же формально вычислить матрицу поворота, то при $\alpha = 8$º, $\beta = 5$º, подставляя вместо $\alpha$ и $\beta$ в Ваши формулы $-\alpha$ и $-\beta$, получим
\small \begin{pmatrix}
0.8778948669 & 0.4755201000 & 0.05640245659 \\
-0.4725647074 & 0.8793613030 & -0.05836348186 \\
-0.07735114647 & 0.0245831907 & 0.9967007911 \\
\end{pmatrix}\begin{pmatrix}
6.5367 \\
73.5708 \\
-13.0236 \\
\end{pmatrix} =\small\begin{pmatrix}
39.98836652 \\
62.36640347 \\
-11.67764865 \\
\end{pmatrix}.
Если вместо $\alpha$ и $\beta$ подставить значения 8º и 5º, то получим ответ
\small\begin{pmatrix}
41.45749258 \\
60.84619819 \\
-14.28361619
\end{pmatrix}.

2. В данном случае \small$ u = (-0.08630754907, -0.1391731010, 0.9864997997)$. По приведенным мною в предыдущих сообщениях формулам (тут и тут), находим \small$\phi = 0.1645034105$, \small$\psi = 2\pi - 2.125897026 = 4.157288282$

\small\begin{pmatrix}
0.8778948669 & -0.4725647073 & -0.07735114670 \\
0.4755200999 &  0.8793613030 &  0.02458319070 \\
0.05640245677& -0.05836348204 & 0.9967007910 \\
\end{pmatrix}\begin{pmatrix}
6.5367 \\
73.5708 \\
-13.0236 \\
\end{pmatrix} =\small\begin{pmatrix}
-28.02103780 \\
67.48348515 \\
-16.90579454 \\
\end{pmatrix}.

Тот же результат получим, используя формулу из Википедии.

 Профиль  
                  
 
 
Сообщение28.04.2009, 18:45 


14/08/08
45
Большое спасибо Алексей К. и GAA за Ваши объяснения и терпение. Не скажу что все стало абсолютно понятно, но теперь очень многое прояснилось и с каждым перечитыванием Ваших объяснений проясняется все более :P .

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

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



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

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


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

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