SimRzutUkosny/README.md
2025-05-16 19:01:31 +02:00

86 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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