Это 2D-симуляция гравитационного взаимодействия трёх точечных масс на основе классической ньютоновской механики. В отличие от задачи двух тел, задача трёх тел не имеет общего аналитического решения, поэтому её траектории рассчитываются численно.
Согласно закону всемирного тяготения Ньютона, ускорение каждого тела является суммой ускорений, вызванных двумя остальными телами. Для первого тела:
\[
a_{1x} = G m_2 \frac{x_2 - x_1}{r_{12}^3} + G m_3 \frac{x_3 - x_1}{r_{13}^3}
\]
\[
a_{1y} = G m_2 \frac{y_2 - y_1}{r_{12}^3} + G m_3 \frac{y_3 - y_1}{r_{13}^3}
\]
Аналогичные уравнения (со сдвигом индексов) применяются для второго и третьего тела. Значение \(G\) — гравитационная постоянная.
Численная схема (Метод Эйлера)
Для симуляции применяется базовый метод численного интегрирования — метод Эйлера.
На каждом малом шаге по времени \(\Delta t\) обновляются скорости и координаты:
1. Обновление скоростей:
\[
v_{1x}^{new} = v_{1x}^{old} + a_{1x} \Delta t
\]
\[
v_{1y}^{new} = v_{1y}^{old} + a_{1y} \Delta t
\]
2. Обновление координат:
\[
x_1^{new} = x_1^{old} + v_{1x}^{old} \Delta t
\]
\[
y_1^{new} = y_1^{old} + v_{1y}^{old} \Delta t
\]
*(Те же формулы применяются для тел 2 и 3).*
Алгоритм симуляции
Задать начальные координаты, скорости и массы всех трёх тел.
На каждом шаге вычислить ускорения всех трёх тел в зависимости от их текущего положения.
Обновить скорости с учётом полученных ускорений.
Обновить координаты с учётом текущих скоростей.
Отрисовать тела на новых позициях (как материальные точки).
Повторять шаги 2–5.
Важное замечание: Шаг по времени \(\Delta t\) (dt) должен быть достаточно маленьким (например, \(\le 0.001\)), чтобы обеспечить стабильность численного решения и избежать вылета тел за пределы системы. Константу гравитации \(G\) можно задавать любую — на качественную картину хаотичного движения она не влияет.