Skip to content

Моделирование движения системы тел с учетом их гравитационного влияния друг на друга

Notifications You must be signed in to change notification settings

phys-dev/gravity-interaction-modeling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Моделирование движения системы тел с учетом их гравитационного влияния друг на друга

Цель: Написать программу, моделирующую орбиты системы тел с учетом их гравитационного влияния друг на друга

Предполагается использовать библиотеку matplotlib, а именно функций pyplot и FuncAnimation для создания анимации движения. Этапы:

  1. Реализовать функцию count_coords(x, y, vx, vy, masses, axprev, ayprev)
  2. Реализовать функцию count_boost(x1, y1, x2, y2 M, m)
  3. Создать функцию, моделирующую траектории с помощью FuncAnimation.

запуск программы:

  1. В файле config "data.txt" - название файла. Данные в файле имеют вид: масса, x0, y0, vx0, vy0 масса, x0, y0, vx0, vy0 ... time - количество шагов анимации

Описание функций:

Функция count_boost(x1, y1, x2, y2 M) Тело М в (x1, y1), m в т. (x2, y2) Возвращаются ax и ay, тк в схеме Эйлера нам нужно ускорение, поэтому можно не домножать на m, чтобы была размерность силы.

Функция count_coords(x, y, vx, vy, masses, axprev, ayprev) Функция использует разностную схему Эйлера с пересчетом. На вход функция получает начальные координаты тела, начальную скорость, массу тела, со стороны которого считается сила, ускорение тела в предыдущий момент. Функция возвращает координаты, скорость и ускорение в следущий момент времени.

init, update - функции для работы FuncAnimation из matplotlib

About

Моделирование движения системы тел с учетом их гравитационного влияния друг на друга

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%