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_herm_yhat(self, coefs): """Constructs a Hermite 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.Hermite(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_hermite_repr(self): res = repr(poly.Hermite([0, 1])) tgt = 'Hermite([0., 1.], domain=[-1, 1], window=[-1, 1])' assert_equal(res, tgt)
def test_hermite_str(self): res = str(poly.Hermite([0, 1])) tgt = 'herm([0. 1.])' assert_equal(res, tgt)
def test_hermite_repr(self): res = repr(poly.Hermite([0,1])) tgt = 'Hermite([0., 1.], [-1., 1.], [-1., 1.])' assert_(res, tgt)
def test_hermite_str(self, inp, tgt): res = str(poly.Hermite(inp)) assert_equal(res, tgt)
def test_hermite_repr(self): res = repr(poly.Hermite([0, 1])) tgt = ("Hermite([0., 1.], domain=[-1, 1], window=[-1, 1], " "symbol='x')") assert_equal(res, tgt)