2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение22.06.2012, 14:41 


18/12/10
22
Munin в сообщении #587767 писал(а):
Zaratustra_V в сообщении #587744 писал(а):
Возможно, я не достаточно хорошо владею вопросом и не строго выражаюсь, т.к. занимаюсь озвученной проблемой недавно.

Ну вы ссылки прочитали?

Пусть у вас одна и та же исходная система координат $S$ переводится матрицей $M_1$ в систему координат $S_1,$ а матрицей $M_2$ - в систему координат $S_2.$ Тогда, чтобы перевести систему координат $S_1$ в $S_2,$ следует использовать матрицу $M_{12}=M_2M_1^{-1}.$ Более того, это единственный ответ, других нет. Поскольку у вас повороты не сопровождаются растяжениями и сдвигами системы координат, то все матрицы - ортогональные, а значит, $M_1^{-1}$ вычисляется просто как $M_1^{-1}=M_1^T.$


Я рассуждал так:
Если исходная система координат $S$ переводится матрицей $M_1(\alpha,\beta,\gamma)$ в систему $S_1,$, то можно подобрать такие $\Delta\alpha,\Delta\beta,\Delta\gamma$, что матрица $M_2(\alpha+\Delta\alpha,\beta+\Delta\beta,\gamma+\Delta\gamma)$ также переведет систему $S$ в $S_1,$.
Мне показалось, что это должно работать. Можно проверить в MSC Adams, но нужны выражения для $\Delta\alpha,\Delta\beta,\Delta\gamma$
Munin в сообщении #587767 писал(а):
Если вам нужны углы Эйлера (углы поворотов вокруг осей $z,x,z$), то вычиляются они по элементам матрицы $M_{12}$:
$\varphi=\arctg\tfrac{m_{31}}{m_{32}}$
$\theta=\arccos m_{33}$
$\psi=-\arctg\tfrac{m_{13}}{m_{23}}$
На самом деле, результат здесь неоднозначный (можно выбрать другие углы), так что, возможно, из-за этого Mathematica в ступор и впадает.

Подскажите, где посмотреть общий принцип выражения углов, чтобы вычислить нужные мне?

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение22.06.2012, 15:45 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Zaratustra_V в сообщении #587908 писал(а):
Я рассуждал так:
Если исходная система координат $S$ переводится матрицей $M_1(\alpha,\beta,\gamma)$ в систему $S_1,$, то можно подобрать такие $\Delta\alpha,\Delta\beta,\Delta\gamma$, что матрица $M_2(\alpha+\Delta\alpha,\beta+\Delta\beta,\gamma+\Delta\gamma)$ также переведет систему $S$ в $S_1,$.

Если вы не сделали ошибок в обозначениях (удивительно, это не описанная вами ранее на словах задача, а другая, более простая), то одно решение тривиально: $\Delta\alpha=\Delta\beta=\Delta\gamma=0.$ Другие можно подобрать, но они будут просто соответствовать повороту на $\pi,\,\,2\pi$ и т. д. по сравнению с исходными углами. Конечно, могут быть и более интересные решения, но в вырожденных случаях.

Zaratustra_V в сообщении #587908 писал(а):
Munin в сообщении #587767 писал(а):
Если вам нужны углы Эйлера (углы поворотов вокруг осей $z,x,z$), то вычиляются они по элементам матрицы $M_{12}$:
$\varphi=\arctg\tfrac{m_{31}}{m_{32}}$
$\theta=\arccos m_{33}$
$\psi=-\arctg\tfrac{m_{13}}{m_{23}}$
На самом деле, результат здесь неоднозначный (можно выбрать другие углы), так что, возможно, из-за этого Mathematica в ступор и впадает.

Подскажите, где посмотреть общий принцип выражения углов, чтобы вычислить нужные мне?

Смотрите на матрицу поворота, вычисленную по углам Эйлера. Это, например,
$$\begin{bmatrix}
 \cos\psi \cos\varphi - \cos\theta \sin\psi \sin\varphi &  - \cos\psi \sin\varphi - \cos\theta \cos\varphi \sin\psi & \sin\psi \sin\theta \\
 \cos\varphi \sin\psi + \cos\psi \cos\theta \sin\varphi & \cos\psi \cos\theta \cos\varphi - \sin\psi \sin\varphi & - \cos\psi \sin\theta \\
 \sin\theta \sin\varphi & \cos\varphi \sin\theta & \cos\theta 
\end{bmatrix}$$ И, глядя на эту матрицу, выражаете углы через её элементы. Элементов много - 9, и выразить углы найдётся как, и не одним способом. Например, видно, что в нижней строке элементы равны $m_{31}=\sin\theta \sin\varphi,$ $m_{32}=\cos\varphi \sin\theta.$ Заметив это, делим один на другой, и получаем $m_{31}/m_{32}=\tg\varphi,$ и от этого можно взять арктангенс (кроме случая, когда знаменатель равен или близок к нулю, тут нужно будет взять обратную дробь и найти котангенс; или если общий множитель близок к нулю, тогда надо искать выражение через другие элементы матрицы).

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение22.06.2012, 16:14 


18/12/10
22
Munin в сообщении #587924 писал(а):
Если вы не сделали ошибок в обозначениях (удивительно, это не описанная вами ранее на словах задача, а другая, более простая), то одно решение тривиально: $\Delta\alpha=\Delta\beta=\Delta\gamma=0.$ Другие можно подобрать, но они будут просто соответствовать повороту на $\pi,\,\,2\pi$ и т. д. по сравнению с исходными углами. Конечно, могут быть и более интересные решения, но в вырожденных случаях.



Мне кажется мы друг друга не до конца понимаем.
В моем случае матрица $M_1$ описывает повороты системы $S$ вокруг векторов совпадающих по направлениям с осями координат, матрица $M_2$ описывает поворот вокруг произвольно направленных векторов. Безусловно в каком-то случае $\Delta\alpha=\Delta\beta=\Delta\gamma=0.$, но он меня не интересует.

На счет нахождения углов понял, спасибо, но боюсь применить не получится поскольку матрица $M_2$ выглядит так:
Изображение

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение22.06.2012, 16:42 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
Что это за матрица такая, что она описывает не один поворот, а несколько? Причем не композицию поворотов, а именно несколько разных поворотов сразу...

-- Пт июн 22, 2012 15:50:19 --

Не матрица ли это просто-напросто перехода от одного базиса к другому? А никакая не "поворота".

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение22.06.2012, 19:56 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Zaratustra_V в сообщении #587931 писал(а):
Мне кажется мы друг друга не до конца понимаем.
В моем случае матрица $M_1$ описывает повороты системы $S$ вокруг векторов совпадающих по направлениям с осями координат, матрица $M_2$ описывает поворот вокруг произвольно направленных векторов.

Да, это вам стоило указать явно и сразу. Тогда вы должны записывать матрицу как определяемую не тремя, а шестью параметрами: $M_2(\mathbf{e}_1,\alpha,\mathbf{e}_2,\beta,\mathbf{e}_3,\gamma).$

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение23.06.2012, 18:12 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Итого, я так понял, задача такая: задана матрица поворота $M_1$ (неважно, как полученная), заданы три вектора осей $\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3,$ и надо найти углы вращения вокруг этих осей, приводящие к матрице $M_1,$ так?

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

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение23.06.2012, 20:07 


18/12/10
22
Munin в сообщении #587975 писал(а):
Да, это вам стоило указать явно и сразу. Тогда вы должны записывать матрицу как определяемую не тремя, а шестью параметрами: $M_2(\mathbf{e}_1,\alpha,\mathbf{e}_2,\beta,\mathbf{e}_3,\gamma).$

Да, все правильно, только если вектора разложить по осям на направляющие косинусы, то получится 12 параметров, это координаты векторов(причем только 8 из них независимы, может быть здесь можно попробовать упростить выразив один из направляющих косинусов через 2 других для каждого вектора, нет, наверное это ни к чему, поскольку направляющие косинусы известны) , и 3 параметра углы поворотов.

Munin в сообщении #588259 писал(а):
Итого, я так понял, задача такая: задана матрица поворота $M_1$ (неважно, как полученная), заданы три вектора осей $\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3,$ и надо найти углы вращения вокруг этих осей, приводящие к матрице $M_1,$ так?

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


Не совсем так, заданы две матрицы поворота $M_1(\alpha,\beta,\gamma).$ (поворот вокруг осей системы $S$) и $M_2(\mathbf{e}_1,\alpha_{1},\mathbf{e}_2,\beta_{1},\mathbf{e}_3,\gamma_{1}).$ (поворот вокруг произвольно направленных векторов), надо при заданных $\mathbf{e}_1,\alpha,\mathbf{e}_2,\beta,\mathbf{e}_3,\gamma$ найти такие $\alpha_{1},\beta_{1},\gamma_{1}$ чтобы и первая и вторая матрицы переводили систему $S$ в систему $S_{1}$

Мне тоже думаю, что аналитическое решение должно быть, но вручную ворочать такими формулами тяжеловато, хотя наверное надо просто попробовать.

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение23.06.2012, 20:38 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Zaratustra_V в сообщении #588285 писал(а):
Да, все правильно, только если вектора разложить по осям на направляющие косинусы, то получится 12 параметров,

Не понял. 3 вектора, у каждого по 3 координаты, получается 9.

Zaratustra_V в сообщении #588285 писал(а):
...и 3 параметра углы поворотов.

Ну и что? Какая разница, сколько параметров?

Zaratustra_V в сообщении #588285 писал(а):
Не совсем так, заданы две матрицы поворота $M_1(\alpha,\beta,\gamma).$ (поворот вокруг осей системы $S$) и $M_2(\mathbf{e}_1,\alpha_{1},\mathbf{e}_2,\beta_{1},\mathbf{e}_3,\gamma_{1}).$ (поворот вокруг произвольно направленных векторов), надо при заданных $\mathbf{e}_1,\alpha,\mathbf{e}_2,\beta,\mathbf{e}_3,\gamma$ найти такие $\alpha_{1},\beta_{1},\gamma_{1}$ чтобы и первая и вторая матрицы переводили систему $S$ в систему $S_{1}$

Это в точности то же самое, что и я сказал, потому что задача рассчитать $M_1$ тривиальна, и может считаться уже решённой.

Zaratustra_V в сообщении #588285 писал(а):
вручную ворочать такими формулами тяжеловато

Для начала напишите хотя бы одну формулу поворота вокруг заданной оси на заданный угол.

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение23.06.2012, 22:29 


18/12/10
22
Munin в сообщении #588306 писал(а):
Не понял. 3 вектора, у каждого по 3 координаты, получается 9.

Прошу прощения, ошибся.
Munin в сообщении #588306 писал(а):
Ну и что? Какая разница, сколько параметров?

Никакой, просто уточнил.
Munin в сообщении #588306 писал(а):
Для начала напишите хотя бы одну формулу поворота вокруг заданной оси на заданный угол.

Здесь дана матрица для одного поворота:
http://ru.wikipedia.org/wiki/Матрица_поворота
Подставляя координаты векторов и углы, а затем, перемножая полученные матрицы в нужном порядке, получим искомую матрицу, причем, если затем подставить значения координат векторов, соответствующие направлениям осей, получается классическая матрица для поворотов вокруг осей (проверил).

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение23.06.2012, 23:36 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Zaratustra_V в сообщении #588337 писал(а):
Здесь дана матрица для одного поворота:
http://ru.wikipedia.org/wiki/Матрица_поворота

Ага, правильно.

Ну и навороченная же она... Надо как-то упрощать задачу. Или перейти к другому представлению, или вообще к общим формулам. Эх, мало у меня практики с группами Ли...

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение24.06.2012, 02:21 


18/12/10
22
Munin в сообщении #588361 писал(а):
Ну и навороченная же она... Надо как-то упрощать задачу. Или перейти к другому представлению, или вообще к общим формулам. Эх, мало у меня практики с группами Ли...


Глянул в википедии группы Ли, пока ничего не понятно, понял только, что используются в дифференциальной геометрии и топологии.
Дело в том, что у меня вообще в математике практики мало, но разбираться я умею, подскажите в какую сторону попробовать копать, может книги какие-то есть?

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение24.06.2012, 11:18 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Есть книга
Гельфанд И.М. Минлос Р.А. Шапиро З.Я. Представления группы вращений и группы Лоренца, их применения
http://lib.dyndns.tv/_djvu/M_Mathematic ... nija%20(ru)(T)(367s).djvu
http://djvuru.512.com1.ru:8073/WWW/bf1d ... 3dbbf.djvu

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение24.06.2012, 12:50 


18/12/10
22
Спасибо, попробую разобраться

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение19.07.2015, 17:34 
Аватара пользователя


11/04/14
561
Munin в сообщении #587924 писал(а):
И, глядя на эту матрицу,


Допустим, две системы координат $OXYZ$ и Oxyz$ могут быть совмещены тремя поворотами на соответствующие им углы Эйлера. Обозначим именно эту, указанную Вами матрицу $M$. Значит ли это, что связь между координатами $(X,Y,Z)$ и $(x,y,z)$ в этих системах может быть записана в виде:

$$\left\lbrace R \right\rbrace=\left\lVert M \right\rVert \left\lbrace r\right\rbrace$ ?

где $R$ и $r$ - радиус вектор точки в соответствующих системах координат.

Проблема: беру точку в малой системе $(0,0,1)$, а в большой получается не то, что нужно... Как так?

Как выглядит матрица поворота с углами Эйлера, связывающая подвижную и неподвижную системы так, чтобы для точки $(0,0,1)$ выполнялись соотношения
$X=\sin(\theta)\cos(\psi)$
$Y=\sin(\theta)\sin(\psi)$
$Z=\cos(\theta)$

 Профиль  
                  
 
 Re: Проблема с решением сист. триг-ких. ур-ний в Mathematica
Сообщение19.07.2015, 23:17 
Аватара пользователя


11/04/14
561
Вопрос снят. Понял сам.

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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