def mean_u_err(ww, ff, N, method, golden_u): toterr = 0.0 numseeds = 0 for seed in seeds: t_u_cv_s_method = readandcompute.t_u_cv_s(ww, ff, N, method, seed) if t_u_cv_s_method != None: du = abs((t_u_cv_s_method[1] - golden_u)[t_u_cv_s_method[0] > Tmax]).max() lw = 0.01 if seed == 0: plt.plot(t_u_cv_s_method[0], (t_u_cv_s_method[1] - golden_u) / N, styles.plot(method), label=styles.title(method), linewidth=lw) else: plt.plot(t_u_cv_s_method[0], (t_u_cv_s_method[1] - golden_u) / N, styles.plot(method), linewidth=lw) toterr += du numseeds += 1 if numseeds > 0: return toterr / numseeds / N return None
def mean_u_err(ww, ff, N, method, golden_u): toterr = 0.0 numseeds = 0 for seed in seeds: t_u_cv_s_method = readandcompute.t_u_cv_s(ww, ff, N, method, seed) if t_u_cv_s_method != None: du = abs((t_u_cv_s_method[1]-golden_u)[t_u_cv_s_method[0] > Tmax]).max() lw = 0.01 if seed == 0: plt.plot(t_u_cv_s_method[0], (t_u_cv_s_method[1]-golden_u)/N, styles.plot(method), label=styles.title(method), linewidth=lw) else: plt.plot(t_u_cv_s_method[0], (t_u_cv_s_method[1]-golden_u)/N, styles.plot(method), linewidth=lw) toterr += du numseeds += 1 if numseeds > 0: return toterr/numseeds/N return None
toterr += du numseeds += 1 if numseeds > 0: return toterr / numseeds / N return None labels_added = set() for golden_comp in all_goldens: bits = golden_comp.split('-') ww = float(bits[1][2:]) ff = float(bits[2][2:]) N = int(bits[3][1:]) print 'ww = %g, ff = %g, N = %d' % (ww, ff, N) t_u_cv_s = readandcompute.t_u_cv_s(ww, ff, N, golden) if t_u_cv_s != None: plt.figure(2) plt.cla() plt.title(r'error in $U/N$ for $N=%d$ and $\eta=%g$ and $\lambda=%g$' % (N, ff, ww)) plt.xlabel(r'$T$') plt.ylabel(r'$\Delta U$') golden_u = t_u_cv_s[1] reference_error = mean_u_err(ww, ff, N, reference, golden_u) if reference_error == None: continue print ' ', reference, reference_error for method in methods: plt.figure(2)
reference = sys.argv[7] #arg reference = ['cfw'] seeds = eval(sys.argv[8]) #arg seeds = [range(30)] u_errors = {} cv_errors = {} s_errors = {} for method in methods: u_errors[method] = numpy.zeros(len(Ns)) cv_errors[method] = numpy.zeros(len(Ns)) s_errors[method] = numpy.zeros(len(Ns)) for n in range(len(Ns)): golden_data = readandcompute.t_u_cv_s(ww, ff, Ns[n], golden) for method in methods: for seed in seeds: t_u_cv_s_method = readandcompute.t_u_cv_s(ww, ff, Ns[n], method, seed) du = abs((t_u_cv_s_method[1]-golden_data[1])[t_u_cv_s_method[0] > min_T]).max() dcv = abs((t_u_cv_s_method[2]-golden_data[2])[t_u_cv_s_method[0] > min_T]).max() ds = abs((t_u_cv_s_method[3]-golden_data[3])[t_u_cv_s_method[0] > min_T]).max() u_errors[method][n] += du cv_errors[method][n] += dcv s_errors[method][n] += ds u_errors[method][n] /= len(seeds) cv_errors[method][n] /= len(seeds) s_errors[method][n] /= len(seeds)
reference = sys.argv[7] # arg reference = ['cfw'] seeds = eval(sys.argv[8]) # arg seeds = [range(30)] u_errors = {} cv_errors = {} s_errors = {} for method in methods: u_errors[method] = numpy.zeros(len(Ns)) cv_errors[method] = numpy.zeros(len(Ns)) s_errors[method] = numpy.zeros(len(Ns)) for n in range(len(Ns)): golden_data = readandcompute.t_u_cv_s(ww, ff, Ns[n], golden) for method in methods: for seed in seeds: t_u_cv_s_method = readandcompute.t_u_cv_s(ww, ff, Ns[n], method, seed) du = abs((t_u_cv_s_method[1] - golden_data[1])[t_u_cv_s_method[0] > min_T]).max() dcv = abs((t_u_cv_s_method[2] - golden_data[2])[t_u_cv_s_method[0] > min_T]).max() ds = abs((t_u_cv_s_method[3] - golden_data[3])[t_u_cv_s_method[0] > min_T]).max() u_errors[method][n] += du cv_errors[method][n] += dcv s_errors[method][n] += ds u_errors[method][n] /= len(seeds) cv_errors[method][n] /= len(seeds) s_errors[method][n] /= len(seeds)
styles.plot(method), linewidth=lw) toterr += du numseeds += 1 if numseeds > 0: return toterr/numseeds/N return None labels_added = set() for golden_comp in all_goldens: bits = golden_comp.split('-') ww = float(bits[1][2:]) ff = float(bits[2][2:]) N = int(bits[3][1:]) print 'ww = %g, ff = %g, N = %d' % (ww, ff, N) t_u_cv_s = readandcompute.t_u_cv_s(ww, ff, N, golden) if t_u_cv_s != None: plt.figure(2) plt.cla() plt.title(r'error in $U/N$ for $N=%d$ and $\eta=%g$ and $\lambda=%g$' % (N, ff, ww)) plt.xlabel(r'$T$') plt.ylabel(r'$\Delta U$') golden_u = t_u_cv_s[1] reference_error = mean_u_err(ww, ff, N, reference, golden_u) if reference_error == None: continue print ' ', reference, reference_error for method in methods: plt.figure(2) method_err = mean_u_err(ww, ff, N, method, golden_u)