Az űrkutatásban a Python az egyik legnépszerűbb nyelv, amelyet többek között szimulációkra, rakétameghajtás számítására és műholdak adatainak elemzésére használnak.Az alábbiakban egy látványos, mégis egyszerű gravitációs szimulációt mutatok be, amellyel egy űrszonda pályáját modellezheted egy bolygó körül.
--------------
import math
try:
import matplotlib.pyplot as plt
except ImportError:
plt = None
# Alapvető fizikai és pálya adatok (példaértékek)
G = 6.67430e-11
M = 5.972e24
m = 1000
# Kezdeti pozíció és sebesség
x, y = 7_000_000, 0
vx, vy = 0, 8000
# Szimulációs lépések
dt = 10
steps = 2000
x_vals, y_vals = [], []
for _ in range(steps):
r = math.sqrt(x**2 + y**2)
F = (G * M * m) / (r**2)
Fx = -F * (x / r)
Fy = -F * (y / r)
ax = Fx / m
ay = Fy / m
vx += ax * dt
vy += ay * dt
x += vx * dt
y += vy * dt
x_vals.append(x)
y_vals.append(y)
print(f"Végső pozíció: x={x:.2f} m, y={y:.2f} m")
print(f"Végső sebesség: vx={vx:.2f} m/s, vy={vy:.2f} m/s")
if plt is not None:
plt.figure(figsize=(6, 6))
plt.plot(x_vals, y_vals, color='blue', label='Űrszonda pályája')
plt.plot(0, 0, marker='o', markersize=20, color='lightblue', label='Föld')
plt.title('Űrszonda orbitális pályája gravitációs szimulációval')
plt.xlabel('X pozíció (m)')
plt.ylabel('Y pozíció (m)')
plt.legend()
plt.grid(True)
plt.axis('equal')
plt.show()
-------------------
Végső pozíció: x=1271850.33 m, y=-7648556.49 m
Végső sebesség: vx=6986.18 m/s, vy=2017.37 m/s
Nincsenek megjegyzések:
Megjegyzés küldése