01-Baumgartner

A mintapéldák között láttunk Felix Baumgartner ugrásával kapcsolatban több példát is. Határozzuk meg $g$ és $\alpha$ értékét a $v(t)$ függvény elejéhez vett lineáris, illetve a $t=210\dots260$ intervallumban illesztett konstans függvényekből! Itt is készítsünk szépen formázott ábrát! A szükséges adatok a ../data/v_vs_t file-ban találhatóak. A file első oszlopa az esés ideje s-ban, a második oszlop a sebesség km/h-ban. Egy egyenletesen $g$-vel gyorsuló test sebessége az idő függvényében az egyszerű $$ v(t)=gt $$ kifejezés szerint változik. Az $\alpha$ közegellenállási együttható pedig a $$ \alpha=\frac{mg}{v^2} $$ kifejezésből kapható meg, ahol a $v$ sebesség a $v(t)$ függvény $t=210\dots260$ időintervallumban vett konstans illesztéséből adódó érték.

Megoldás

Először betöltjük a szükséges csomagokat.

In [1]:
%pylab inline
from scipy.optimize import curve_fit
Populating the interactive namespace from numpy and matplotlib

Majd létrehozzuk az adatok adattömböt a fájl adatai alapján.

In [2]:
adatok = loadtxt("../data/v_vs_t.txt")

Ezután definiáljuk a lineáris és konstans függvényeket, és ezeket ráillesztjük az adatsor megfelelő részeire:

In [3]:
def lin(x, a, b):
    '''Visszaadja x függvényében az a meredekségű, b tengelymetszéssel rendelkező lineáris függvényt'''
    return a * x + b

def const(x, a):
    '''Visszaadja x függvényében az a értékű konstans függvényt'''
    return a

l = curve_fit(lin, adatok[:55,0], adatok[:55, 1])
c = curve_fit(const, adatok[311:386,0], adatok[311:386,1])

Az illesztés ellenőrzéséért ábrázoljuk a függvényt

In [4]:
plot(adatok[:,0], adatok[:,1], label="a mért értékek")
plot(adatok[:55, 0], l[0][0]*adatok[:55, 0] + l[0][1], label="lineáris illesztés")
plot(adatok[311:386,0], c[0]*ones(75), label="konstans illesztés")
xlabel("idö", size=12)
ylabel("sebesség", size=12)
title("Baumgartner sebessége az idö függvényében", size=18, y=1.05)
legend(loc=0)
Out[4]:
<matplotlib.legend.Legend at 0x7f4a194123c8>

A mozgás elején a sebesség az idő függvényében egyenletesen nő, $g$ gyorsulással, vagyis az illesztett egyenes meredeksége adja $g$ értékét.

$\alpha$ értéke a megadott összefüggésből számítható, ahol $m$ Baumgartner 110 kg-s tömege, $g$ az előbb kiszámolt gyorsulás $v$ pedig az illesztett konstans függvény értéke:

In [5]:
g = l[0][0]/3.6
alpha = 110*g/(c[0][0]/3.6)**2
print("g = {} m/s^2".format(g))
print("alpha = {} kg/m".format(alpha))
g = 9.235506623552142 m/s^2
alpha = 0.2894759239265421 kg/m