Feladatok

  • Minden feladatot feladatszámnak mgefelelő számú megoldásnotebookban oldd meg. Azaz az első feladatot az 1_feladat.html notebookban.
  • A halálfejes (☠) feladatokhoz, hozz létre a kötelező feladatokhoz hasonlóan egy új notebookot a MEGOLDÁSOK könyvtárban.
  • Csak azok a feladatok kerülnek elbírálásra amelyek a MEGOLDASOK mappában vannak!
  • A megoldás tartalmazza a megoldandó feladat szövegét a megoldás notebook első markdown cellájában!
  • Kommentekkel illetve markdown cellákkal magyarázd hogy éppen mit csinál az adott kódrészlet!
    Magyarázat nélkül a beküldött feladatok csak fél feladatnak számítanak!
  • Az elkészített ábrák minden esetben rendelkezzenek ábrafeliratokkal (cím, tengelyfeliratok és amennyiben indokolt jelmagyarázat)! Amennyiben a beadott ábrákon nincsenek feliratok az adott feladat automatikusan csak fél feladatnak számít!

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.

02-Ebola illesztés

Az ../data/ebola.txt file tartalmazza a legutóbbi ebolajárvány terjedési idősorát országokra lebontva.

  • Ábrázoljuk az idő függvényében az összes bekövetkezett haláleset számát (Ezt az adatsort több oszlop összegeként tudjuk előállítani! ).
  • Illesszünk az összes bekövetkezett haláleset számára egy exponenciális függvényalakot! $$f(t,A,\beta)=A\mathrm{e}^{\beta t}$$

  • Becsüljük meg, ha nem tett volna az ENSZ semmit, akkor mikor pusztult volna ki az emberiség!

03-Csúcs keresés

A ../data/pupos file tartalmaz egy zajos adatsort.

  • Illesszük erre az adatsorra két Gauss-görbe összegét! $$ f_{2G}(x)=A_1 \mathrm{e}^{-(x-e_1)^2/s_1^2}+A_2 \mathrm{e}^{-(x-e_2)^2/s_2^2} $$

  • Illesszük erre az adatsorra két Lorentz-görbe összegét is! $$ f_{2L}(x)=\frac{B_1}{w_1^2+(x-p_1)^2}+\frac{B_2}{w_2^2+(x-p_2)^2} $$

Ábrázoljuk az eredeti adatsort, illetve mind a két esetben ábrázoljuk az illesztés eredményét is! Ha az illesztés során esetleg problémákba ütközünk, akkor próbálkozzunk az illesztési paraméterek kezdeti értékének becslésével!

04-Zenebona

Vizsgáljuk meg a ../data/zenebona nevű file-ban található zajos adatsor Fourier-spektrumát. Határozzuk meg azokat a pozitív frekvenciákat, melyek dominánsan szerepelnek ! Az file két oszlopot tartalmaz: az első oszlop az idő, a második pedig a jel.

  • Készíts ábrát a jel alakjáról!
  • Készíts ábrát a jel Fourier-transzformáltjáról!
  • Határozd meg a Fourier-transzformált domináns frekvenciáit, és jelöld azokat az ábrán! Például tegyünk esetlegesen előforduló csúcs(ok) tetejére valamilyen jelet!

05 Hol vannak a fekete lyukak?

A ../data/black_hole.npy binárisan tárolt file-ban a LIGO detektor legfrissebb mérési adatai találhatóak. Az adatsort a detektor 44100 Hz-es mintavételezési frekvenciával vette fel.

  • Ábrázold az adatsor jelalakját!
  • Határozd meg a jel Fourier-spektrumának legnagyobb és legkisebb frekvenciáját.
  • A jel spektrogramjának segítségével becsüld meg a detektált fekete lyuk(ak) koordinátáit.

☠ 06-Frekvenciaszűrő

Az ifft fügvény segítségével kaphatjuk meg egy függvény inverz Fourier transzformáltját. Alkalmazva ezt a függvényt, szűrjük ki a ../data/zenebona fileban található hangmintából a 20Hz-nél magasabb frekvenciájú komponenseket!

☠ 07-Árapály

Vizsgáljuk meg az ../data/arapaly fileban található adatokat, melyek egy idilli kis tengerparti angol falu, Heysham, atomerőművének tengerszintmérő berendezésének a méréseit tartalmazza. Az adatsor két oszlopból áll: az első oszlop az idő napban mérve, a második oszlop az aktuális tengerszint méterben.

  • Fizikai meggondolások alapján milyen domináns frekvenciát vársz az adatsortól?
  • Készíts ábrát az első 3 nap adatai alapján a tengerszint ingadozásáról!
  • Készíts ábrát a jel Fourier-transzformáltjáról! Megjelenik a várt frekvencia?

☠ 08-AM-FM

Generáljunk egy 20s hosszú 2500 Hz mintavételezésű jelet mely:

  • 200Hz-es vivő frekvencián a $J_0(t)$ Bessel-függvény által amplitúdó modulált
  • 800Hz-es vivő frekvencián frekvencia modulációval tartalmazza az $\alpha(t)=3t^2$ jelet.

Készítsük el a jel spektrogramját és ábrázoljuk a két modulációs jelet is!

Mit történik 12s környékén a frekvencia modulált jellel? Diszkutáljuk a jelentséget!

☠ 09 Baumgartner légsűrűség mérő

Felhasználva Felix Baumgartner ugrásának adatait, határozzuk meg az atmoszféra sűrűség-magasság profilját! Tételezzük fel, hogy a légellenállás a sebesség négyzetével arányos!

☠ 10 Hubble-állandó

Feladatunkban szeretnénk meghatározni a Hubble-konstans értékét ("az Univezum tágulásának ütemét") az SDSS megfigyelésekől (Sloan Digital Sky Survey).

Tegyük fel, hogy a megfigyelhető Világegyetemben minden időpillanatban megegyező arányban voltak fényes és halvány galaxisok, melyeknek abszolút értelemben vett fényessége az időben nem is változott. Ha ezt elfogadjuk, akkor a távolságtörvény segítségével megbecsülhető egy ismert abszolút fényességű galaxis távolsága. Másképp fogalmazva, ha megadjuk az adott "típusú" galaxisokra jellemző abszolút fényességeket, kiszámolható a távolságuk a megfigyelt magnitúdó fényességükből a következő formulával: $$ m_{megfigyelt} - M_{abszolút} = 2,5 \cdot (d[pc]/10)^2 $$, ahol d a távolság "parszek"-ben.

Az SDSS J020953.99-052818.1 nevű galaxis látszó megnitúdója 22,15 mag, és a távolsága 1013 Mpc (Megaparszek, azaz 1 millió parszek), mely tekinthető sztenderd gyertyának. Forrás: itt

Első feladatként adjuk meg mekkora abszólút fényességűek ezek az etalonnak tekinthető óriásgalaxisok.

Azt is tudjuk, hogy a galaxisok mozognak a Tejútrendszerhez képest, így a kibocsájtott fényük vöröseltolódást szenved el mire eljut hozzánk. A megfigyelt vöröseltolódásból megmondható a galaxis hozzánk viszonyított sebessége: $$ z \approx \frac{v}{c} $$, ahol z a vöröseltolódás mértéke, v a galaxis hozzánk viszonyított sebessége, és c a fénysebesség.

Az itt elérhető hubble.csv fájlban találhatóak az előbb bemutatott adatok:

  • z: Vöröseltolódás mértéke - Ezt kell használni a feladatban!
  • psfMag_r: Látszó, megfigyelt magnitúdó
  • dered_r: Galaktikus vörösödésre korrigált látszó magnitúdó - Ezt kell használni a feladatban!
  • psfMagErr_r: Megfigyelt magnitúdó hibája
  • zErr: Vöröseltolódás hibája

Második lépésben ábrázold a korrigált (dered) látszó magnitúdó függvényében a vöröseltolódást!

Majd készíts vöröseltolódás-távolság ($distance=log10(1+z)$) szerint 200 bint a galaxisokra (melyek 0.2-nél kisebb z-vel rendelkeznek). A binek száma csak első körben legyen 200, mivel ügyeljünk arra, hogy minimum 50 galaxis kerüljön a binekbe. Azaz amelyik bin nem tartalmaz 50 galaxist, azt a bint és galaxisait hagyjuk ki a további elemzésből.

Miután megvannak a binek, minden binből vegyük ki a legkisebb magnitúdót mutató galaxisokat (ezek a legfényesebbek fizikailag). Ezek lesznek a sztenderd gyertyák. Ábrázoljuk szintén magnitúdó és vöröseltolódással ábárán ezeket a galaxisokat. Mit látunk? Rövid válaszodat markdown cellában fejtsd ki!

A következő, hogy az első lépésben meghatározott abszolút fényesség segítségével kiszámoljuk az összes imént megtalált fényes galaxis távolságát. Illetve számoljuk ki a sebességüket is a fent bemutatott módon a vöröseltolódásokból ($ z \approx \frac{v}{c} $). Ábrázoljuk ismét az eredményt!

A kapott adatokra illesszünk egyenest $f(x)=a \cdot x + b$ alakban! A kapott egyenes meredeksége adja meg a Hubble-állandó értékét.

Röviden értelmezzük a kapott eredményt! Mennyire egyezik az irodalmi adatokkal?

Egy kis további segítség:

Megj.: Az adatfájl beolvasása során -999 jelőli a hibás rekordokat.

Segítségként megadjuk az adatfájl beolvasását és beállítjuk a megfelelő elemzési tartományokat.

In [1]:
data=loadtxt("hubble.csv",  delimiter=',', skiprows=1)
z=data[(data[:,1]>-999) & (data[:,1] < 20) &(data[:,1] >10) & (data[:,4]>0.) & 
       (data[:,4]<0.1) & (data[:,3]>0.) & (data[:,3]<0.05)][:,0]
mag=data[(data[:,1]>-999) & (data[:,1] < 20) &(data[:,1] >10) & (data[:,4]>0.) & 
         (data[:,4]<0.1) & (data[:,3]>0.) & (data[:,3]<0.05)][:,1]
dered=data[(data[:,1]>-999) & (data[:,1] < 20) &(data[:,1] >10) & (data[:,4]>0.) & 
           (data[:,4]<0.1) & (data[:,3]>0.) & (data[:,3]<0.05)][:,2]
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-7feb7c535a24> in <module>()
----> 1 data=loadtxt("hubble.csv",  delimiter=',', skiprows=1)
      2 z=data[(data[:,1]>-999) & (data[:,1] < 20) &(data[:,1] >10) & (data[:,4]>0.) & 
      3        (data[:,4]<0.1) & (data[:,3]>0.) & (data[:,3]<0.05)][:,0]
      4 mag=data[(data[:,1]>-999) & (data[:,1] < 20) &(data[:,1] >10) & (data[:,4]>0.) & 
      5          (data[:,4]<0.1) & (data[:,3]>0.) & (data[:,3]<0.05)][:,1]

NameError: name 'loadtxt' is not defined