예제 #1
0
    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
예제 #2
0
    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]
예제 #3
0
 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)
예제 #4
0
 def test_legendre_str(self):
     res = str(poly.Legendre([0, 1]))
     tgt = 'leg([0. 1.])'
     assert_equal(res, tgt)
예제 #5
0
 def test_legendre_repr(self):
     res = repr(poly.Legendre([0,1]))
     tgt = 'Legendre([0., 1.], [-1., 1.], [-1., 1.])'
     assert_(res, tgt)
예제 #6
0
 def test_legendre_str(self, inp, tgt):
     res = str(poly.Legendre(inp))
     assert_equal(res, tgt)
예제 #7
0
 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)