def run(): N = 1024 x = numx.arange(N) * (numx.pi * 2 / N) y = numx.sin(x) b = bspline(10, nbreak) b.knots_uniform(x[0], x[-1]) X = numx.zeros((N, ncoeffs)) X = b.eval_vector(x) c, cov, chisq = multifit.linear(X, y) res_x = x[::N / 64] X = b.eval_vector(res_x) res_y, res_y_err = multifit.linear_est_matrix(X, c, cov) pylab.plot(x, y, '-') pylab.errorbar(res_x, res_y, fmt='g-', xerr=res_y_err)
def run(): N = 1024 x = numx.arange(N) * (numx.pi * 2 / N) y = numx.sin(x) b = bspline(10, nbreak) b.knots_uniform(x[0], x[-1]) X = numx.zeros((N, ncoeffs)) X = b.eval_vector(x) c, cov, chisq = multifit.linear(X, y) res_x = x[::N/64] X = b.eval_vector(res_x) res_y, res_y_err = multifit.linear_est_matrix(X, c, cov) pylab.plot(x,y, '-') pylab.errorbar(res_x, res_y, fmt='g-', xerr=res_y_err)
def run(): N = 1024 x = numx.arange(N) * (numx.pi * 2 / N) y = numx.sin(x) b = bspline(4, nbreak) k = b.get_internal_knots() pygsl.set_debug_level(10) b.knots(k) X = b.eval_vector(x) c, cov, chisq = multifit.linear(X, y) b.set_coefficients_and_covariance_matrix(c, cov) res_x = x[:: N / 64] res_y, res_y_err = b.eval_dep_yerr_vector(res_x) # res_y = b.eval_dep_vector(res_x) print res_y pylab.plot(x, y, "-") pylab.errorbar(res_x, res_y, fmt="g-", xerr=res_y_err)
def run(): N = 1024 x = numx.arange(N) * (numx.pi * 2 / N) y = numx.sin(x) b = bspline(4, nbreak) k = b.get_internal_knots() pygsl.set_debug_level(10) b.knots(k) X = b.eval_vector(x) c, cov, chisq = multifit.linear(X, y) b.set_coefficients_and_covariance_matrix(c, cov) res_x = x[::N / 64] res_y, res_y_err = b.eval_dep_yerr_vector(res_x) #res_y = b.eval_dep_vector(res_x) print(res_y) pylab.plot(x, y, '-') pylab.errorbar(res_x, res_y, fmt='g-', xerr=res_y_err)
def run(): r = rng.rng() bw = bspline(4, nbreak) # Data to be fitted x = 15. / (N - 1) * numx.arange(N) y = numx.cos(x) * numx.exp(0.1 * x) sigma = .1 w = 1.0 / sigma**2 * numx.ones(N) dy = r.gaussian(sigma, N) y = y + dy # use uniform breakpoints on [0, 15] bw.knots_uniform(0.0, 15.0) X = numx.zeros((N, ncoeffs)) for i in range(N): B = bw.eval(x[i]) X[i, :] = B # do the fit c, cov, chisq = multifit.wlinear(X, w, y, multifit.linear_workspace(N, ncoeffs)) # output the smoothed curve res_y = [] res_y_err = [] for i in range(N): B = bw.eval(x[i]) yi, yi_err = multifit.linear_est(B, c, cov) res_y.append(yi) res_y_err.append(yi_err) #print yi, yerr res_y = numx.array(res_y) res_y_err = numx.array(res_y_err) return ( x, y, ), (x, res_y), res_y_err
def run(): r = rng.rng() bw = bspline(4, nbreak) # Data to be fitted x = 15. / (N-1) * numx.arange(N) y = numx.cos(x) * numx.exp(0.1 * x) sigma = .1 w = 1.0 / sigma**2 * numx.ones(N) dy = r.gaussian(sigma, N) y = y + dy # use uniform breakpoints on [0, 15] bw.knots_uniform(0.0, 15.0) X = numx.zeros((N, ncoeffs)) for i in range(N): B = bw.eval(x[i]) X[i,:] = B # do the fit c, cov, chisq = multifit.wlinear(X, w, y, multifit.linear_workspace(N, ncoeffs)) # output the smoothed curve res_y = [] res_y_err = [] for i in range(N): B = bw.eval(x[i]) yi, yi_err = multifit.linear_est(B, c, cov) res_y.append(yi) res_y_err.append(yi_err) #print yi, yerr res_y = numx.array(res_y) res_y_err = numx.array(res_y_err) return (x, y,), (x, res_y), res_y_err