# Symulacja i analiza rzutu ukośnego ## Cel projektu Celem projektu jest stworzenie programu w Pythonie, który symuluje rzut ukośny w jednorodnym polu grawitacyjnym bez oporu powietrza. Program oblicza: - trajektorie ruchu na podstawie **dokładnego rozwiązania analitycznego**, - przybliżoną trajektorię metodą numeryczną – **metodą Eulera**, - oraz porównuje obie metody, analizując dokładność w zależności od kroku czasowego `t`. --- ## Wymagania Do uruchomienia projektu wymagane są biblioteki: ``` pip install numpy matplotlib ``` --- ## Struktura plików - `Main.py` – główny plik uruchamiający program - `Analityka.py` – obliczenia dokładne (analityczne) na podstawie wzorów fizycznych - `Euler.py` – implementacja metody Eulera - `Wykresy.py` – rysowanie wykresów porównawczych - `Parametry.py` – definiowanie parametrów początkowych (v0, kat, h0, dt) --- ## Uruchamianie programu Po zainstalowaniu bibliotek, uruchom program wpisując: ``` python main.py ``` --- ## Wygenerowane wykresy Program generuje dwa wykresy: 1. Porównanie trajektorii analitycznej i numerycznej (Euler) 2. Wykres błędu w zasięgu w zależności od wielkości kroku czasowego `t` ### Wykresy: - Wykres 1: Trajektoria – analityczna vs Euler - ![img.png](resources/analVsEuler.png) - Wykres 2: Blad zasięgu vs t - ![img.png](resources/error.png) --- ## Analiza dokładności Program analizuje, jak krok czasowy wpływa na dokładność metody Eulera: - im mniejsze t, tym mniejszy błąd w zasięgu rzutu, - dla zbyt dużych kroków trajektoria znacząco odbiega od wzorcowej. --- ## Wnioski - Metoda Eulera przy małych krokach daje zadowalającą dokładność. - Program pokazuje, jak ważny jest wybór kroku czasowego w metodach numerycznych. - Prosta implementacja pozwala zrozumieć podstawy całkowania numerycznego i ruchu w fizyce klasycznej. --- ## Uwagi techniczne - Symulacja zatrzymuje się automatycznie, gdy ciało spadnie na ziemię (y < 0). - Dla bardzo małych t program może działać wolniej (więcej iteracji). --- ## Autor Patryk Zamorski