def __get_collocation_nodes(self, m, kind): """Computes the collocation nodes.""" # basis coefs coefs = np.zeros(m + 1) coefs[-1] = 1 if kind == 'polynomial': nodes = polynomial.Polynomial(coefs).roots() elif kind == 'chebyshev': domain = [self.a, self.b] nodes = polynomial.Chebyshev(coefs, domain).roots() elif kind == 'legendre': domain = [self.a, self.b] nodes = polynomial.Legendre(coefs, domain).roots() elif kind == 'laguerre': domain = [self.a, self.b] nodes = polynomial.Laguerre(coefs, domain).roots() elif kind == 'hermite': domain = [self.a, self.b] nodes = polynomial.Hermite(coefs, domain).roots() else: raise ValueError return nodes
def __get_lege_yhat(self, coefs): """Constructs a Legendre polynomial approximation to the solution.""" # the solution y is in R^n n = coefs.shape[0] # create the approximation yhat domain = [self.a, self.b] yhat = [polynomial.Legendre(coefs[i], domain) for i in range(n)] # create the approximation of yhat_prime yhat_prime = [yhat[i].deriv() for i in range(n)] return [yhat, yhat_prime]
def test_legendre_repr(self): res = repr(poly.Legendre([0, 1])) tgt = 'Legendre([0., 1.], domain=[-1, 1], window=[-1, 1])' assert_equal(res, tgt)
def test_legendre_str(self): res = str(poly.Legendre([0, 1])) tgt = 'leg([0. 1.])' assert_equal(res, tgt)
def test_legendre_repr(self): res = repr(poly.Legendre([0,1])) tgt = 'Legendre([0., 1.], [-1., 1.], [-1., 1.])' assert_(res, tgt)
def test_legendre_str(self, inp, tgt): res = str(poly.Legendre(inp)) assert_equal(res, tgt)
def test_legendre_repr(self): res = repr(poly.Legendre([0, 1])) tgt = ("Legendre([0., 1.], domain=[-1, 1], window=[-1, 1], " "symbol='x')") assert_equal(res, tgt)