def ex2_4(simulations): print(f'simulations: {len(simulations)}') for simulation in simulations: velocities = [step.speeds() for step in simulation.getSecondHalf()] velocities = [item for sublist in velocities for item in sublist] #flatten bin_size = 200 print("Plotting\n") fig, ax = plt.subplots() values = np.histogram(velocities, density=True, bins=bin_size) bin_centres = (values[1][:-1] + values[1][1:]) / 2. bin_centres_x = (values[0][:-1] + values[0][1:]) / 2. ax.plot(bin_centres, values[0], 'o', markersize=2) adjustment = [mb(x) for x in bin_centres] ax.plot(bin_centres, adjustment, '-') ax.set_xlabel('Velocidad (m/s)') ax.set_ylabel('PDF') fig.tight_layout() saveFig(fig, '2_4') # plot error results, rang = errorFn(bin_centres, values[0]) fig, ax = plt.subplots() ax.plot(rang, results, 'o', markersize=2) ax.set_ylabel('Error') ax.set_xlabel('Parámetro Libre (a)') fig.tight_layout() saveFig(fig, '2_4_error')
def error(simulations): diffusionSlope, diffusionB, averageSquaredDistances, deviations = calculateDiffusion(simulations) print(f'Coeficiente de difusion aproximado: {diffusionSlope}') fig, ax = plt.subplots() y_axis, x_axis = errorFn(range(len(averageSquaredDistances)),averageSquaredDistances) ax.plot([x * 10 ** 5 for x in x_axis], y_axis) ax.set_xlabel('C (10^-5)') ax.set_ylabel('Error') ax.set_title(f'Error del ajuste por función lineal') fig.tight_layout() saveFig(fig, 'error')
def bev(): xs = [0.15, 0.17, 0.22, 0.25] # Acá van los valores usados de D ys = [1, 2, 3, 4] # Acá van los valores de caudales para cada D err = [0.1, 0.1, 0.1, 0.1] #Acá van los errores del caudal para cada D results, rang = errorFn(xs, ys) fig, ax = plt.subplots() ax.set_ylabel('Caudal promedio [p/s]') ax.set_xlabel('Ancho de apertura [m]') fig.tight_layout() ax.plot(xs, ys, 'o-', markersize=4) ax.plot(rang, results, 'o', markersize=2) saveFig(fig, '1_1bev')