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  След.

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



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

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


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

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