def __init__(self, nw, order, dim=2): self.nw = nw self.order = order self.dim = dim num_states = nw.vcount() self.P = { state: { action: [(action, self.reward(state, action), False)] for action in self.nw.neighbors(state) } for state in range(num_states) } dest_idx = self.nw.vs.find(attr='d').index for state in self.nw.neighbors(dest_idx): self.P[state][dest_idx] = [(dest_idx, self.reward(state, dest_idx), True)] self.num_s = num_states upper = self.num_s - 1 self.FB = Fourier.FourierBasis(self.dim, [[0, upper], [0, upper]], order=self.order) self.c_norm = np.linalg.norm(self.FB.multipliers, 2, 1) self.c_norm[0] = 1
def histogramFromData(): ''' Creates a histogram of the data stored in data.txt ''' # store data in a list file = open('data.txt') data = [] for line in file.readlines(): data.append(float(line)) file.close() # model data as overlapping sine waves import math time = [] value = [] for point in range(pointsPerPlot): t = point * maxTime / pointsPerPlot v = 0. for datum in data: v += math.sin(t * 2 * math.pi * datum) time.append(t) value.append(v) # adjust min and max global minFreq global maxFreq minFreq = min(data) maxFreq = max(data) # perform Fourier transform on wave model import Fourier frequency, intensity = Fourier.Transform(time, value, minFreq=minFreq, maxFreq=maxFreq) # plot the histogram import matplotlib.pyplot as plt plt.plot(frequency, intensity) plt.yticks([]) def markTimes(times, color='blue'): for time in times: height = intensity[0] closest = math.fabs(frequency[0] - time) for i in range(len(frequency)): if math.fabs(frequency[i] - time) < closest: closest = math.fabs(frequency[i] - time) height = intensity[i] plt.plot([time, time], [0, height], color=color) ## mark my times #myTimes = [60.43,59.496,58.71,66.56,58,56.97] #markTimes(myTimes, 'red') ## mark Kim's times #kimsTimes = [66.831,62.72,62.47,68.69,63.94,62.65] #markTimes(kimsTimes, 'green') plt.show()
def paintGL(self): #print('drawing') GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT) now = time.time() - self.startTime GL.glLoadIdentity() GL.glTranslate(0.0, 0.0, -5.0) GL.glScale(2.0, 2.0, 2.0) GL.glRotate(1000 * math.sin(now / 10), 0, 1, 0) GL.glRotate(1000 * math.cos(now / 10), 1, 0, 0) GL.glRotate(100 * math.tan(now / 10), 0, 0, 1) GL.glTranslate(-0.5, -0.5, -0.5) GL.glEnableClientState(GL.GL_VERTEX_ARRAY) GL.glEnableClientState(GL.GL_COLOR_ARRAY) GL.glVertexPointerf(self.cubeVtxArray) GL.glColorPointerf(self.cubeClrArray) GL.glDrawElementsui(GL.GL_QUADS, self.cubeIdxArray) GL.glLoadIdentity() GL.glBegin(GL.GL_LINES) GL.glColor3f(0, 1, 0) #draw the grid for x in range(50): #print(str((x/2)-12.5)) #horizontal GL.glVertex3f(25, -1, ((x / 2) - 12.5)) GL.glVertex3f(-25, -1, ((x / 2) - 12.5)) #forward GL.glVertex3f(((x / 2) - 12.5), -1, 12.5) GL.glVertex3f(((x / 2) - 12.5), -1, -12.5) GL.glEnd() #draw the sound data data = Fourier.fft_abs(self.ear.stream_read()) GL.glBegin(GL.GL_LINES) GL.glColor3f(0, 0, 1) #width is the world space horizontal length of the drawing width = 2 #delta is the space in between lines delta = width / self.ear.chunk for x in range(len(data)): GL.glVertex3f((delta * x - width / 2), 0.00001 * data[x] - 5, -5) GL.glVertex3f((delta * x - width / 2), -5, -5) GL.glEnd() #self.drawData() GL.glFlush()
def transform(): global filename, passes global ui Averaging.Averaging(filename, passes) Fourier.Fourier(filename) freq = [] power = [] with open(filename + '_fourier.csv', 'r') as data: _ = data.readline() _ = data.readline() for i in data.readlines(): line = i.split(',') freq.append(float(line[0])) power.append(abs(complex(line[-1]))) ui.fourierGraph.plot(freq, power) print("Transform finished")
plt.hist(np.array(d16nord)) plt.figure() plt.hist(np.array(d15nord)) np.mean(d16nord) np.mean(d15nord) np.std(d16nord) np.std(d15nord) np.median(d16nord) np.median(d15nord) import Fourier plt.figure() plt.plot(np.array(var_nord16), lw = 2) plt.plot(Fourier.fourierExtrapolation(var_nord16, 0), lw = 2, color = 'black') data = pd.read_excel("H:/Energy Management/04. WHOLESALE/02. REPORT PORTAFOGLIO/2016/06. MI/DB_Borse_Elettriche_PER MI.xlsx", sheetname = 'DB_Dati') data = data.set_index(data['Date']) data = data.ix[data.index.month <= 9] pnord = data['MGP NORD [€/MWh]'] pnord = pnord.ix[:pnord.shape[0]-1] cnord = data['MGP CNOR [€/MWh]'] cnord = cnord.ix[:pnord.shape[0]-1] csud = data['MGP CSUD [€/MWh]'] csud = csud.ix[:csud.shape[0]-1] sud = data['MGP SUD [€/MWh]'] sud = sud.ix[:sud.shape[0]-1] sici = data['MGP SICI [€/MWh]'] sici = sici.ix[:sici.shape[0]-1] sard = data['MGP SARD [€/MWh]']
TransformedDataDFT = [] TransformedDataFFT = [] Sampels = [] TimeBeforeFFT = [] TimeAfterFFT = [] TimeDifferenceFFT = [] TimeBeforeDFT = [] TimeAfterDFT = [] TimeDifferenceDFT = [] NumberOfData = [] for i in range(5): Sampels.append([random.randint(1, 10000) for _ in range(2**(4 + i * 3))]) NumberOfData.append(len(Sampels[i])) for i in range(5): TimeBeforeFFT.append(time.time()) TransformedDataFFT.append(Fourier.FFT(Sampels[i])) TimeAfterFFT.append(time.time()) TimeDifferenceFFT.append(TimeAfterFFT[i] - TimeBeforeFFT[i]) TimeBeforeDFT.append(time.time()) TransformedDataDFT.append(Fourier.DFT(Sampels[i])) TimeAfterDFT.append(time.time()) TimeDifferenceDFT.append(TimeAfterDFT[i] - TimeBeforeDFT[i]) MeanSquareError.append( np.square(np.subtract(TransformedDataDFT[i], TransformedDataFFT[i])).mean()) print(MeanSquareError) for i in range(len(MeanSquareError)): Error.append(abs(MeanSquareError[i])) plt.plot(NumberOfData, Error) plt.ylim(-2, 2)
###################################################################### dpun = np.diff(np.array(data[data.columns[12]].dropna().resample('D').mean())) import statsmodels.api plt.figure() plt.plot(statsmodels.api.tsa.periodogram(dpun)) per = statsmodels.api.tsa.periodogram(dpun) np.where(per > 50)[0] per[per > 50] import Fourier reconstructed = Fourier.fourierExtrapolation(dpun, 0, 16) plt.figure() plt.plot(dpun) plt.plot(reconstructed, color = 'red') np.mean(dpun - reconstructed) np.std(dpun - reconstructed) from pandas.tools import plotting plt.figure() plotting.lag_plot(pd.DataFrame(dpun)) plt.figure() plt.plot(statsmodels.api.tsa.acf(dpun))
scipy.stats.mstats.mquantiles(dv_p, prob=[0.025, 0.975]) scipy.stats.mstats.mquantiles(dv_f, prob=[0.025, 0.975]) ############### divp = np.diff(vol_p) divf = np.diff(vol_f) plt.figure() plt.plot(divp) plt.plot(np.array(vol_p)) plt.figure() plt.plot(divf, color='magenta') plt.plot(np.array(vol_f), color='black') ddvp = np.diff(dv_p) ddvf = np.diff(dv_f) plt.figure() plt.plot(ddvp) plt.plot(np.array(dv_p)) plt.figure() plt.plot(ddvf, color='magenta') plt.plot(np.array(dv_f), color='black') fdvp = Fourier.fourierExtrapolation( dv_p, 0, 25) ### best one to see the 'right' process for the volatility plt.figure() plt.plot(np.array(dv_p)) plt.plot(fdvp, color='black', lw=2)
scipy.stats.mstats.mquantiles(dv_f, prob = [0.025, 0.975]) ############### divp = np.diff(vol_p) divf = np.diff(vol_f) plt.figure() plt.plot(divp) plt.plot(np.array(vol_p)) plt.figure() plt.plot(divf, color = 'magenta') plt.plot(np.array(vol_f), color = 'black') ddvp = np.diff(dv_p) ddvf = np.diff(dv_f) plt.figure() plt.plot(ddvp) plt.plot(np.array(dv_p)) plt.figure() plt.plot(ddvf, color = 'magenta') plt.plot(np.array(dv_f), color = 'black') fdvp = Fourier.fourierExtrapolation(dv_p,0, 25) ### best one to see the 'right' process for the volatility plt.figure() plt.plot(np.array(dv_p)) plt.plot(fdvp, color = 'black', lw = 2)