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 ex3_4(simulations): diffusionSlope, diffusionB, averageSquaredDistances, deviations = calculateDiffusion( simulations) print(f'Coeficiente de difusion aproximado: {diffusionSlope}') fig, ax = plt.subplots() x_axis = [ x + len(averageSquaredDistances) for x in range(len(averageSquaredDistances)) ] markers, caps, bars = ax.errorbar(x_axis, averageSquaredDistances, yerr=deviations, capsize=5, capthick=2, fmt="o", zorder=1, markersize=2) ax.set_xlabel('Step') ax.set_ylabel('DCM = <z^2>') ax.set_title( f'Movimiento Browniano (N={len(simulations[0].steps[0].particles)}) - Ultima mitad del tiempo' ) fig.tight_layout() # loop through bars and caps and set the alpha value [bar.set_alpha(0.5) for bar in bars] # [cap.set_alpha(0.5) for cap in caps] # Create linear regresion x = np.linspace(min(x_axis), max(x_axis), 1000) y = diffusionSlope * (x - len(averageSquaredDistances)) + diffusionB ax.plot(x, y, '--', zorder=2, linewidth=2) ax.legend(loc='upper left') saveFig(fig, '3_4')