2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Столкновения шаров в 3D
Сообщение01.12.2010, 22:07 
Прошу помощи в решении такой задачи, как столкновение шаров в пространстве.
Для простоты я принял, что шары одинаковой массы и размеров, плюс никаких деформаций, трения, закручивания и т.д. просто скорости и все.

Для двумерного случая все отлично. Делал так:
1) В момент столкновения проецировал скорости на прямую соединяющую центры шаров и обменивал шары этими проекциями. Перпендикулярные проекции сохранял.
2) Зная координаты центров шаров я находил координаты вектора, начало которого в центре первого шара, а конец в центре второго и таким образом находил косинус и синус угла наклона данной прямой, проходящей через центры.
3) Записывал в матрицу поворота данные синусы и косинусы, и действовал ей на вектора скоростей в системе координат 1), чтобы получить прежнюю систему координат.

Это все отлично работало при программировании к примеру.
Теперь надо перейти в 3D и тут сразу же куча проблем. Главное - непонятно как получить матрицу поворота (есть вариант через углы Эйлера, но там затык в их нахождении), также неясно как построить новую систему координат, ведь надо получить два взаимоперпендикулярных вектора, перпендикулярных прямой проходящей через центры.
Может есть более простой способ в таком случае?
Буду очень благодарен за приблизительный план решения данной задачи в 3D...

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 22:18 
3D случай отличается от 2D наличием еще одной оси ("нетривиальный" факт :lol: ). Систему координат всегда можно выбрать так, что третья ось будет перепендикулярна плоскости, в которой лежат две пересекающиеся прямые - не какие-нибудь прямые, а именно те, на которых лежат траектории двух шаров до столкновения. С учетом принятых Вами упрощений нет никаких оснований для предположения о появлении ненулевой проекции скорости любого из шаров на третью ось после столкновения; наоборот, закон сохранения импульса запрещает такое появление. Поэтому указанным выбором системы координат 3D случай сводится к 2D случаю. На этом физика в этой задаче по сравнению с известной Вам заканчивается, повороты СК - это в математику.

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 22:38 
pittite в сообщении #382553 писал(а):
3D случай отличается от 2D наличием еще одной оси ("нетривиальный" факт :lol: ). Систему координат всегда можно выбрать так, что третья ось будет перепендикулярна плоскости, в которой лежат две пересекающиеся прямые - не какие-нибудь прямые, а именно те, на которых лежат траектории двух шаров до столкновения. С учетом принятых Вами упрощений нет никаких оснований для предположения о появлении ненулевой проекции скорости любого из шаров на третью ось после столкновения; наоборот, закон сохранения импульса запрещает такое появление. Поэтому указанным выбором системы координат 3D случай сводится к 2D случаю. На этом физика в этой задаче по сравнению с известной Вам заканчивается, повороты СК - это в математику.

интересная идея, о таком способе я не подумал.

правильно ли я понял, что выбором системы координат мы позволяем себе учитывать только две проекции скорости (третья нулевая), но как же тогда определить третью проекцию скорости в исходной СК, если мы по сути переходим к 2D, но потом надо как-то снова перейти в 3D?

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 22:46 
Аватара пользователя
Обратным переходом к исходной системе координат. Как уже было сказано, это - в математику, хотя ответ элементарный: через обратную матрицу.

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 22:52 
Munin в сообщении #382573 писал(а):
Обратным переходом к исходной системе координат. Как уже было сказано, это - в математику, хотя ответ элементарный: через обратную матрицу.

обратную к какой матрице?
изначально я получал проекции в новой СК через скалярные произведения.

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 23:09 
Аватара пользователя
По сути, это и есть умножение на матрицу (матрица преобразования координат из одной СК в другую), а векторы, на которые вы брали скалярные произведения, образуют строки в этой матрице.

Но ещё раз повторяю: идите в другой раздел форума!!!

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 23:23 
Munin в сообщении #382588 писал(а):
По сути, это и есть умножение на матрицу (матрица преобразования координат из одной СК в другую), а векторы, на которые вы брали скалярные произведения, образуют строки в этой матрице.

Но ещё раз повторяю: идите в другой раздел форума!!!

извиняюсь, просто очень хочется найти правильное решение.

 
 
 
 Преобразование и переходы из одной СК в другую
Сообщение01.12.2010, 23:31 
Прошу помочь разобраться вот с каким вопросом.
Я пришел из темы: «Столкновения шаров в 3D».
Если вас не затруднит ознакомьтесь с той задачей. Суть ее в столкновении шаров в 3D варианте. Мне там подсказали, что при переходе из начальной СК в новую (завязанную на прямой соединяющей центры шаров) можно выбрать одну из трех осей перпендикулярно плоскости, которую образуют векторы скоростей шаров и решать ее в 2D как я и решал до этого.

Но проблема в том, что не совсем понятно как перескакивать из одной СК в другую и назад. Ведь когда проекции скоростей на одну из осей будут нулевыми в новой СК, то как потом вернуться в старую СК, при этом получив какие-то выражения для всех трех компонент скоростей, а не только для двух как это делается в 2D случае?..
Буду очень признателен за помощь.

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 23:34 
 i  Переношу в раздел Помогите решить / разобраться (М). Вопросы, интересующие топикстартера, математического плана.

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 23:41 
Спасибо за перенос темы.

Так вот, проблема в том, что не совсем понятно как перескакивать из одной СК в другую и назад. Ведь когда проекции скоростей на одну из осей будут нулевыми в новой СК, то как потом вернуться в старую СК, при этом получив какие-то выражения для всех трех компонент скоростей, а не только для двух как это делается в 2D случае?..
Буду очень признателен за помощь.

 
 
 
 Re: Преобразование и переходы из одной СК в другую
Сообщение01.12.2010, 23:49 
Аватара пользователя
google "преобразования координат"

 
 
 
 Re: Столкновения шаров в 3D
Сообщение01.12.2010, 23:50 
Аватара пользователя
Есть такие магические слова (возможно, Вы их когда-то уже слышали): матрица перехода.

 
 
 
 Re: Преобразование и переходы из одной СК в другую
Сообщение01.12.2010, 23:53 
Munin в сообщении #382615 писал(а):
google "преобразования координат"

Локализую проблему.
Если, как вы говорили, переписать выражения со скалярными произведениями и представить в векторно-матричной форме записи, то получается что у матрицы (пусть будет А) имеется нулевая строка (т.к. новая СК такая, что одна из проекций зануляется). так?
тогда определитель такой матрицы ноль и нет обратной матрицы A'...

 
 
 
 Re: Столкновения шаров в 3D
Сообщение02.12.2010, 00:01 
ИСН в сообщении #382616 писал(а):
Есть такие магические слова (возможно, Вы их когда-то уже слышали): матрица перехода.

в моей матрице одна из строк строка нулевая (из-за выбора новой СК такой, чтобы свести все к 2D случаю). потому и завел разговор.

 
 
 
 Re: Преобразование и переходы из одной СК в другую
Сообщение02.12.2010, 00:06 
Аватара пользователя
Нет, у матрицы не будет нулевая строка. Пусть вы ищете выражения со скалярными произведениями в виде $a_1=\mathbf{e}_1\mathbf{a},$ $a_2=\mathbf{e}_2\mathbf{a},$ $a_3=\mathbf{e}_3\mathbf{a},$ где векторы записываете через координаты исходной СК: $\mathbf{a}=(a_x,a_y,a_z)_{xyz}.$ Тогда это записывается в матричном виде как:
$$\left(\begin{array}{c}a_1\\ a_2\\ a_3\end{array}\right)=\left(\begin{array}{ccc}e_{1x}&e_{1y}&e_{1z}\\ e_{2x}&e_{2y}&e_{2z}\\ e_{3x}&e_{3y}&e_{3z}\end{array}\right)\left(\begin{array}{c}a_x\\ a_y\\ a_z\end{array}\right)$$ Здесь у вас все векторы $\mathbf{e}_1,$ $\mathbf{e}_2,$ $\mathbf{e}_3$ ненулевые, так что и все строки матрицы ненулевые (и столбцы тоже ненулевые, кстати сказать). А если в исходной (или конечной) СК зануляется одна из проекций вектора, это означает, что всего лишь $a_z=0$ или $a_3=0,$ а вовсе не зануление целой строки матрицы. Кстати, в отдельных позициях матрицы могут стоять нули, в этом ничего страшного.

 
 
 [ Сообщений: 20 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group