25 lines
582 B
Python
25 lines
582 B
Python
# Rozwiazanie numeryczne przy uzyciu metody Eulera
|
|
import numpy as np
|
|
|
|
def metodaEulera(v0, theta, h0, dt):
|
|
# wartosc przyspieszenia ziemskiego
|
|
g = 9.81
|
|
theta_rad = np.radians(theta)
|
|
|
|
# Inicjalizacja pozycji i predkosci
|
|
x, y = 0.0, h0
|
|
vx = v0 * np.cos(theta_rad)
|
|
vy = v0 * np.sin(theta_rad)
|
|
|
|
# lista punktow trajektorii
|
|
trajektoria = [(x, y)]
|
|
|
|
# Petla obliczajaca kolejne punkty az do upadku
|
|
while y >= 0:
|
|
x += vx * dt
|
|
y += vy * dt
|
|
vy -= g * dt
|
|
trajektoria.append((x, y))
|
|
|
|
return np.array(trajektoria)
|