2 GTSAM Copyright 2010-2019, Georgia Tech Research Corporation, 3 Atlanta, Georgia 30332-0415 6 See LICENSE for the license information 9 Author: Frank Dellaert & Gerry Chen (Python) 22 Tests FitBasis python binding for FourierBasis, Chebyshev1Basis, Chebyshev2Basis, and Chebyshev2. 24 It tests FitBasis by fitting to a ground-truth function that can be represented exactly in 25 the basis, then checking that the regression (fit result) matches the function. For the 26 Chebyshev bases, the line y=x is used to generate the data while for Fourier, 0.7*cos(x) is 31 self.
x = [0., 0.5, 0.75]
37 Until wrapper for Basis functors are ready, 38 this is how to evaluate a basis function. 40 return basis.WeightMatrix(self.
N, x) @ fitparams
43 """Helper method to fit data to a specified fitter using a specified basis.""" 44 data = {x:
f(x)
for x
in self.
x}
45 fit = fitter(data, self.
noise, self.
N)
46 coeff = fit.parameters()
51 """Fit a Fourier basis.""" 53 f =
lambda x: 0.7 * np.cos(x)
57 np.testing.assert_almost_equal(interpy,
58 np.array([
f(x)
for x
in self.
interpx]),
62 """Fit a Chebyshev1 basis.""" 68 np.testing.assert_almost_equal(interpy,
69 np.array([
f(x)
for x
in self.
interpx]),
73 """Fit a Chebyshev2 basis.""" 79 np.testing.assert_almost_equal(interpy,
80 np.array([
f(x)
for x
in self.
interpx]),
84 """Fit a Chebyshev2 pseudospectral basis.""" 90 np.testing.assert_almost_equal(interpy,
91 np.array([
f(x)
for x
in self.
interpx]),
95 if __name__ ==
"__main__":
def test_fit_basis_chebyshev2basis(self)
def test_fit_basis_chebyshev2(self)
def evaluate(self, basis, fitparams, x)
static shared_ptr Create(size_t dim)
def fit_basis_helper(self, fitter, basis, f=lambda x:x)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
def test_fit_basis_fourier(self)
def test_fit_basis_chebyshev1basis(self)