2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Про закон всемирного тяготения
Сообщение04.12.2017, 00:11 


01/09/14
357
Задача:
Нужно написать программу, которая будет численно решать дифференциальное уравнение к какой-либо физической задаче. В качестве задачи выбрал движение тел под действием силы притяжения в двухмерной декартовой системе координат. Есть недопонимания. Если телам не задавать начальных скоростей то у меня получается следующая система дифференциальных уравнений:
$\left\{
\begin{array}{rcl}
\ddot x_1 &=& \frac {Gm_1} {\sqrt {(x_1-x_2)^2 + (y_1-y_2)^2}}\\
\ddot y_1 &=& \frac {Gm_1} {\sqrt {(x_1-x_2)^2 + (y_1-y_2)^2}}\\
\ddot x_2 &=& \frac {Gm_2} {\sqrt {(x_1-x_2)^2 + (y_1-y_2)^2}}\\
\ddot y_2 &=& \frac {Gm_2} {\sqrt {(x_1-x_2)^2 + (y_1-y_2)^2}}\\
\end{array}
\right.$
Здесь $x_1 = x_1(t)$, $y_1 = y_1(t)$ — координаты первого тела, $x_2 = x_2(t)$, $y_2 = y_2(t)$ — координаты второго тела, $m_1$, $m_2$ — соответственно масса первого и второго тел. Не уразумею как сюда добавить начальные скорости. Наверно надо добавить в эту систему уравнений ещё и вот такие уравнения:
$\left\{
\begin{array}{rcl}
\dot x_1(0) &=& \upsilon_{x_1}\\
\dot y_1(0) &=& \upsilon_{y_1}\\
\dot x_2(0) &=& \upsilon_{x_2}\\
\dot y_2(0) &=& \upsilon_{y_2}\\
\end{array}
\right.$
где $\upsilon_{x_1}$, $\upsilon_{y_1}$, $\upsilon_{x_2}$, $\upsilon_{y_2}$ — соответственно, скорости по осям $OX$ и $OY$. Верно ли моё предположение?

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение04.12.2017, 00:20 
Заслуженный участник


09/05/12
25179
Charlz_Klug в сообщении #1271716 писал(а):
то у меня получается следующая система дифференциальных уравнений:
Вы во всех случаях сосчитали модули ускорений, а вообще-то ускорение - это вектор, и этот факт стоит учесть.
Charlz_Klug в сообщении #1271716 писал(а):
Не уразумею как сюда добавить начальные скорости. Наверно надо добавить в эту систему уравнений ещё и вот такие уравнения:
Нет, не надо. Систему уравнений нужно исправить, но начальные скорости в ней не появятся, Вам нужно будет использовать их как начальные условия задачи Коши при численном интегрировании.

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


22/06/12
2129
/dev/zero
У вас уравнение движения написано неверно.

Рассмотрим какую-то систему координат, начало у неё где попало. Вам нужно написать два уравнения:
$$
 m_1 \ddot{\mathbf r}_1 = \dfrac{G m_1 m_2 \mathbf r_{12}}{r^3_{12}},
$$
$$
 m_2 \ddot {\mathbf r}_2 = \dfrac{G m_1 m_2 \mathbf r_{21}}{r^3_{12}},
$$
здесь вектор $\mathbf r_{ij}$ соединяет $i$-тое тело с $j$-тым. Потом осознать, что $\mathbf r_1 + \mathbf r_{12} = \mathbf r_2$ и $\mathbf r_2 + \mathbf r_{21} = \mathbf r_1$. Подставляем это в уравнения и получаем общий вид (сокращая на массы)
$$
  \ddot{\mathbf r}_1 = \dfrac{G m_2 (\mathbf r_2 - \mathbf r_1)}{|\mathbf r_2 - \mathbf r_1|^3},
$$
$$
 \ddot{\mathbf r}_2 = \dfrac{G m_1 (\mathbf r_1 - \mathbf r_2)}{|\mathbf r_2 - \mathbf r_1|^3} = - \dfrac{m_1}{m_2} \ddot{\mathbf r}_1
$$
Вы снабжаете систему уравнений начальными условиями $\mathbf r_1(0) = \mathbf r_{10}$ и $\mathbf r_2(0) = \mathbf r_{20}$, $\dot{\mathbf r}_1(0) = \mathbf v_{10}$, $\dot{\mathbf r}_2(0) = \mathbf v_{20}$.

Можете попробовать написать систему для трёх тел в векторном виде. Это не сильно сложнее, принцип суперпозиции вам в помощь.

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение04.12.2017, 09:13 


01/09/14
357
StaticZero в сообщении #1271728 писал(а):
Можете попробовать написать систему для трёх тел в векторном виде.

Попробую начать. Получаем для первого тела:
$m_1 \ddot {\mathbf r}_1 = \dfrac {G m_1 m_2} {r_{12}^3} {\mathbf r}_{12} + \dfrac {G m_1 m_3} {r_{13}^3} {\mathbf r}_{13} = G m_1 ( \dfrac {m_2} {r_{12}^3} {\mathbf r}_{12} + \dfrac {m_3} {r_{13}^3} {\mathbf r}_{13})$

Для второго тела:
$m_2 \ddot {\mathbf r}_2 = \dfrac {G m_1 m_2} {r_{21}^3} {\mathbf r}_{21} + \dfrac {G m_2 m_3} {r_{23}^3} {\mathbf r}_{23} = G m_2 ( \dfrac {m_1} {r_{21}^3} {\mathbf r}_{21} + \dfrac {m_3} {r_{23}^3} {\mathbf r}_{23})$

Для третьего тела:
$m_3 \ddot {\mathbf r}_3 = \dfrac {G m_1 m_3} {r_{31}^3} {\mathbf r}_{31} + \dfrac {G m_2 m_3} {r_{32}^3} {\mathbf r}_{32} = G m_3 ( \dfrac {m_1} {r_{31}^3} {\mathbf r}_{31} + \dfrac {m_2} {r_{32}^3} {\mathbf r}_{32})$

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


22/06/12
2129
/dev/zero
Осталось лишь воспользоваться соотношениями $\mathbf r_i + \mathbf r_{ij} = \mathbf r_j$.

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


23/07/05
17973
Москва
StaticZero в сообщении #1271728 писал(а):
$$
m_1 \ddot{\mathbf r}_1 = \dfrac{G m_1 m_2 \mathbf r_{12}}{r^3_{12}},
$$
$$
m_2 \ddot {\mathbf r}_2 = \dfrac{G m_1 m_2 \mathbf r_{21}}{r^3_{12}},
$$
Если я правильно понял ваши обозначения, у Вас вместо притяжения получилось отталкивание.

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение04.12.2017, 12:04 
Заслуженный участник


09/05/12
25179
Someone в сообщении #1271851 писал(а):
Если я правильно понял ваши обозначения, у Вас вместо притяжения получилось отталкивание.
Нет, все правильно. Посмотрите на индексы векторов в правых частях равенств.

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


23/07/05
17973
Москва
Согласен.

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение04.12.2017, 18:22 


01/09/14
357
StaticZero в сообщении #1271818 писал(а):
Осталось лишь воспользоваться соотношениями $\mathbf r_i + \mathbf r_{ij} = \mathbf r_j$.

Тогда после сокращения масс и учёта соотношения получаю для первого тела:
$\ddot {\mathbf r}_1 = G \left ( \dfrac {m_2 ({\mathbf r}_2 - {\mathbf r}_1) } {| {\mathbf r}_2 - {\mathbf r}_1|^3} + \dfrac {m_3 ({\mathbf r}_3 - {\mathbf r}_1) } {| {\mathbf r}_3 - {\mathbf r}_1|^3}\right )$

Второго тела:
$\ddot {\mathbf r}_2 = G \left ( \dfrac {m_1 ({\mathbf r}_1 - {\mathbf r}_2) } {| {\mathbf r}_1 - {\mathbf r}_2|^3} + \dfrac {m_3 ({\mathbf r}_3 - {\mathbf r}_2) } {| {\mathbf r}_3 - {\mathbf r}_2|^3}\right )$

Третьего тела:
$\ddot {\mathbf r}_3 = G \left ( \dfrac {m_1 ({\mathbf r}_1 - {\mathbf r}_3) } {| {\mathbf r}_1 - {\mathbf r}_3|^3} + \dfrac {m_2 ({\mathbf r}_2 - {\mathbf r}_3) } {| {\mathbf r}_2 - {\mathbf r}_3|^3}\right )$

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


22/06/12
2129
/dev/zero
Charlz_Klug, ну и окончательно для задачи $n$ тел
$$
\ddot{\mathbf r}_{k} = G \mathop{\sum \limits_{i = 1}^n}_{i \ne k} \dfrac{m_i (\mathbf r_i - \mathbf r_k)}{|\mathbf r_i - \mathbf r_k|^3}.
$$

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение04.12.2017, 19:47 


01/09/14
357
StaticZero, спасибо, действительно.

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение07.12.2017, 01:05 


01/09/14
357
Продолжаю. На этот раз замечание от Pphantom:
Pphantom в сообщении #1271721 писал(а):
Вы во всех случаях сосчитали модули ускорений, а вообще-то ускорение - это вектор, и этот факт стоит учесть.

Ввожу обозначения:
$${\mathbf r}_1 = (x_1(t), y_1(t))$$
$${\mathbf r}_2 = (x_2(t), y_2(t))$$

Получаю:
$$\left\{
\begin{array}{rcl}
\ddot x_1(t) &=& \dfrac {G m_2 (x_2 (t) - x_1 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))})^3} \\
\ddot x_2(t) &=& \dfrac {G m_2 (x_1 (t) - x_2 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))})^3} \\
\ddot y_1(t) &=& \dfrac {G m_2 (y_2 (t) - y_1 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))})^3} \\
\ddot y_2(t) &=& \dfrac {G m_2 (y_1 (t) - y_2 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))})^3} \\
\end{array}
\right.$$

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение07.12.2017, 02:09 
Заслуженный участник


09/05/12
25179
Charlz_Klug в сообщении #1272765 писал(а):
Продолжаю. На этот раз замечание
Так уже все, учли (а сейчас потеряли в каждом знаменателе по квадрату). И если язык, на котором Вы будете писать, поддерживает векторные операции, то к координатной форме переходить просто незачем.

 Профиль  
                  
 
 Re: Про закон всемирного тяготения
Сообщение07.12.2017, 07:26 


01/09/14
357
Pphantom в сообщении #1272770 писал(а):
Так уже все, учли (а сейчас потеряли в каждом знаменателе по квадрату). И если язык, на котором Вы будете писать, поддерживает векторные операции, то к координатной форме переходить просто незачем.

Точно, потерял. Спасибо!
$$\left\{
\begin{array}{rcl}
\ddot x_1(t) &=& \dfrac {G m_2 (x_2 (t) - x_1 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))^2})^3} \\
\ddot x_2(t) &=& \dfrac {G m_2 (x_1 (t) - x_2 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))^2})^3} \\
\ddot y_1(t) &=& \dfrac {G m_2 (y_2 (t) - y_1 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))^2})^3} \\
\ddot y_2(t) &=& \dfrac {G m_2 (y_1 (t) - y_2 (t))} {(\sqrt {(x_2 (t) - x_1 (t))^2 + (y_2 (t) - y_1 (t))^2})^3} \\
\end{array}
\right.$$
Планирую на C++ писать. Там, вроде, нет поддержки математических векторов.

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


22/06/12
2129
/dev/zero
Насколько мне известно, там можно создать свои классы с блэкдже полями данных и перегруженными операторами.

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

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



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

Сейчас этот форум просматривают: lantza, mihaild


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

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