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ů)

In [3]:
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

In [5]:
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

In [7]:
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

In [9]:
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

In [11]:
v = a*t

Vytvoříme si pole s, které bude obsahovat dráhu, kterou hmotný bod urazil v čase t.

In [13]:
s = np.empty(np.size(t)) #pole obsahující dráhu, kterou hmotný bod urazil

Výpočet dráhy numerickou integrací

In [15]:
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

In [17]:
plt.plot(t,v)
plt.xlabel("čas")
plt.ylabel("rychlost")
plt.show()
No description has been provided for this image

obrázek, jak s časem postupně narůstá dráha

In [19]:
plt.plot(t,s,c='red')
plt.xlabel("čas")
plt.ylabel("dráha")
plt.show()
No description has been provided for this image

Celková dráha, kterou hmotný bod urazil za dobu $t_{max}$ , $s = \int_0^{t_{max}} v\,dt$

In [21]:
print(f"celková dráha je {np.max(s):4.2f} m")
celková dráha je 0.50 m