diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/polynomial/polytemplate.py | 11 | ||||
-rw-r--r-- | numpy/polynomial/tests/test_chebyshev.py | 6 | ||||
-rw-r--r-- | numpy/polynomial/tests/test_polynomial.py | 6 |
3 files changed, 19 insertions, 4 deletions
diff --git a/numpy/polynomial/polytemplate.py b/numpy/polynomial/polytemplate.py index 835197834..08510c1ff 100644 --- a/numpy/polynomial/polytemplate.py +++ b/numpy/polynomial/polytemplate.py @@ -514,7 +514,7 @@ class $name(pu.PolyBase) : return pu.mapdomain(roots, $domain, self.domain) @staticmethod - def fit(x, y, deg, domain=$domain, rcond=None, full=False) : + def fit(x, y, deg, domain=None, rcond=None, full=False) : """Least squares fit to data. Return a `$name` instance that is the least squares fit to the data @@ -533,10 +533,11 @@ class $name(pu.PolyBase) : passing in a 2D-array that contains one dataset per column. deg : int Degree of the fitting polynomial - domain : {None, [beg, end]}, optional + domain : {None, [beg, end], 'default'}, optional Domain to use for the returned $name instance. If ``None``, - then a minimal domain that covers the points `x` is chosen. The - default value is ``$domain``. + then a minimal domain that covers the points `x` is chosen. + If ``'default'`` the default domain ``$domain`` is used. The + default value is ``None``. rcond : float, optional Relative condition number of the fit. Singular values smaller than this relative to the largest singular value will be @@ -568,6 +569,8 @@ class $name(pu.PolyBase) : """ if domain is None : domain = pu.getdomain(x) + elif domain == 'default' : + domain = $domain xnew = pu.mapdomain(x, domain, $domain) res = ${nick}fit(xnew, y, deg, rcond=None, full=full) if full : diff --git a/numpy/polynomial/tests/test_chebyshev.py b/numpy/polynomial/tests/test_chebyshev.py index 13776aa87..2278ca871 100644 --- a/numpy/polynomial/tests/test_chebyshev.py +++ b/numpy/polynomial/tests/test_chebyshev.py @@ -463,7 +463,13 @@ class TestChebyshevClass(TestCase) : return x*(x - 1)*(x - 2) x = np.linspace(0,3) y = f(x) + + # test default value of domain p = ch.Chebyshev.fit(x, y, 3) + assert_almost_equal(p.domain, [0,3]) + + # test that fit works in given domains + p = ch.Chebyshev.fit(x, y, 3, 'default') assert_almost_equal(p(x), y) p = ch.Chebyshev.fit(x, y, 3, None) assert_almost_equal(p(x), y) diff --git a/numpy/polynomial/tests/test_polynomial.py b/numpy/polynomial/tests/test_polynomial.py index 7ba5b6c8f..13718fe9e 100644 --- a/numpy/polynomial/tests/test_polynomial.py +++ b/numpy/polynomial/tests/test_polynomial.py @@ -434,7 +434,13 @@ class TestPolynomialClass(TestCase) : return x*(x - 1)*(x - 2) x = np.linspace(0,3) y = f(x) + + # test default value of domain p = poly.Polynomial.fit(x, y, 3) + assert_almost_equal(p.domain, [0,3]) + + # test that fit works in given domains + p = poly.Polynomial.fit(x, y, 3, 'default') assert_almost_equal(p(x), y) p = poly.Polynomial.fit(x, y, 3, None) assert_almost_equal(p(x), y) |