import numpy as np import matplotlib.pyplot as plt #1. ukol #a) #na cviceni sme odvodzovali fyzikalne dovody pre pouzitie modelovej funkcie #m = b1 + b2*log(N), kde b = 5/3 #b) matrix = np.loadtxt("list_of_stars.dat") x = matrix[:, 0] #hodnoty poradia hviezd y = matrix[:, 1] #hodnoty zdanlivej hviezdnej velkosti n = len(x) X = np.ones((n, 2)) #matica parcialnych derivacii X[:, 1] = np.log10(x) V = np.dot(np.transpose(X), X) U = np.dot(np.transpose(X), y) b = np.dot(np.linalg.inv(V), U) #hodnoty parametrov b = [b1,b2] pre najpresnejsi fit f = np.dot(X, b) #funkcne hodnoty predpovedane fitom print(b) plt.plot(x, y, '*') plt.plot(x, f) plt.xlabel('poradie') plt.ylabel('zdanliva hviezdna velkost [mag]') plt.show() #2. ukol #zo stranky http://www.astrouw.edu.pl/asas/?page=acvs sme ziskali data #pre vybranu hviezdu a v datovom subore sme odstranili vsetky komentare matrix = np.loadtxt('V2509_Sgr.txt', usecols=range(11)) #loadtxt nevie citat zmiesane datove typy, preto specifikujeme vyber prvych 11 stlpcov HJD = matrix[:, 0] M2 = matrix[:, 4] #vyberame stlpec MAG_2 s najpresnejsimi datami plt.figure() plt.plot(HJD, M2, '*') plt.xlabel('HJD [d]') plt.ylabel('MAG_2 [mag]') plt.gca().invert_yaxis() #obracia y-ovu os, aby zodpovedala vzrastajucej jasnosti plt.show() errors = np.where(M2 > 20)[0] #zistujeme pozicie vsetkych odlahlych bodov HJD = np.delete(HJD, errors) M2 = np.delete(M2, errors) plt.plot(HJD, M2, '*') plt.xlabel('HJD [d]') plt.ylabel('MAG_2 [mag]') plt.gca().invert_yaxis() plt.show()