Numerická integrace¶
příklad výpočtu dráhy hmotného bodu, který se pohybuje přímočarým rovnoměrně zrychleným pohybem
importujeme knihovny numpy
(na numerické výpočty) a matplotlib
(na kreslení grafů)
import numpy as np
import matplotlib.pyplot as plt
Zadáme parametry přímočarého rovnoměrně zrychleného pohybu:
$a$ zrychlení
$tmax$ doba, po kterou pohyb sledujeme
a = 1 #zrychlení 1 m/s^2
tmax = 1 #vypočítáme dráhu, kterou hmotný bod urazil za 1 s
Zvolíme časový krok dt
pro výpočet numerickou integraci
dt = tmax/1000 #časový krok pro numerický výpočet derivace (zde tisícina doby tmax)
Vytvoříme pole t
obsahující časy, ve kterých počítáme přírůstky dráhy
t = np.arange(0,tmax,dt) #pole časů
Velikost rychlosti se s čase zvětšuje jako $v=at$.
Vytvoříme pole v
obsahující velikosti rychlosti hmotného bodu v jednotlivých časech t
v = a*t
Vytvoříme si pole s
, které bude obsahovat dráhu, kterou hmotný bod urazil v čase t
.
s = np.empty(np.size(t)) #pole obsahující dráhu, kterou hmotný bod urazil
Výpočet dráhy numerickou integrací
s[0] = 0
for i in range(1,np.size(t)):
s[i] = s[i-1] + v[i-1]*dt
obrázek, jak s časem postupně narůstá rychlost
plt.plot(t,v)
plt.xlabel("čas")
plt.ylabel("rychlost")
plt.show()
obrázek, jak s časem postupně narůstá dráha
plt.plot(t,s,c='red')
plt.xlabel("čas")
plt.ylabel("dráha")
plt.show()
Celková dráha, kterou hmotný bod urazil za dobu $t_{max}$ , $s = \int_0^{t_{max}} v\,dt$
print(f"celková dráha je {np.max(s):4.2f} m")
celková dráha je 0.50 m