Симулятор гравітаційної взаємодії

Без категорії

Відкрите програмне забезпечення SVYGravityModel дозволяє в наочній формі розв’язувати гравітаційну задачу N тіл, моделювати і вивчати рух на основі законів класичної механіки, і може бути застосоване в якості навчального посібника в шкільних і університетських курсах фізики, астрономії і інформатики.

Програма була розроблена мною, Володимиром Сулимом, в якості курсової роботи з дисципліни “Об’єктно-орієнтоване програмування” під час навчання в Сумському державному університеті в 2005 році. Згодом програма перемогла в конкурсі студентських робіт і приймала участь у Всеукраїнському чемпіонаті з інформаційних технологій “Екософт-2006”.

Імпульсом створення програми для мене була зацікавленість у застосуванні на практиці теорії механіки Ньютона і деяких знань із курсу астрономії. Метою роботи над проектом була розробка зручного програмного засобу для будування, моделювання і відображення руху будь-якої кількості тіл.

Основою математичної моделі двовимірного руху окремого тіла є система з чотирьох диференційних рівнянь першого порядку, що описують залежність координат та проекцій швидкості залежно від часу. При обчисленні траєкторій з метою вивчення чисто гравітаційної взаємодії до уваги не беруться інші фактори, що впливають на рух тіла, наприклад: опір повітря, форма і структура тіл чи зіткнення. Прискорення в конкретний момент часу знаходиться із рівнодіючої сил тяжіння зі сторони інших матеріальних точок за законом всесвітнього тяжіння та другим законом Ньютона. Оскільки аналітичне розв’язання цієї системи для будь-якої кількості тіл неможливе, були застосовані методи чисельного інтегрування диференційних рівнянь: спочатку найпростіший метод Ейлера першого порядку, а згодом метод Рунге-Кутти четвертого порядку, який дозволив значно збільшити точність обчислень. Для спрощення реалізації був обраний двовимірний простір.

Програма дозволяє додавати, видаляти, копіювати і переміщувати об’єкти гравітаційної системи, установлювати їм такі фізичні параметри, як: координати, швидкість і маса. Також кожному об’єкту можна встановити візуальні параметри, такі як: радіус, колір і назва. Після побудови системи можна отримати креслення траєкторій матеріальних точок, анімацію їх руху, завантажувати і зберігати параметри побудованої системи та загальні налаштування програми. Програма дозволяє переміщуватись двовимірним простором за допомогою вказівника миші, керувати масштабом, часом і відображенням міток траєекторії. Серед додаткових можливостей: вимірювання відстані і встановлення зв’язку об’єкт-супутник і збереження креслень в графічний файл.

SVYGravityModel дозволяє моделювати широкий ряд систем і перевіряти розв’язок фізичних задач, наприклад: обчислення космічних швидкостей, періоду чи швидкості обертання тіла навколо центра тяжіння. Програма може бути використана для ілюстрації руху кратних зірок навколо барицентра, різних типів орбіт, законів Кеплера, захоплення супутника планетою, відхилення орбіт космічних тіл, а також для побудови моделі Сонячної системи, теоретичних симетричних чи довільних систем.

Програма розроблена в середовищі програмування Delphi 7 і працює під керуванням операційної системи Windows. Під час розробки програми були використані стандартні керуючі та графічні компоненти, а також деякі можливості наслідування і створення нових компонентів.

Програму, її код, керівництво користувача, застосовані формули і приклади можна знайти за посиланням:

https://github.com/sulim-vladimir/gravity-model

Нижче можна переглянути презентацію, підготовлену для виступу на чемпіонаті.