예제 #1
0
def test_jacobi_poly():
    raises(ValueError, lambda: jacobi_poly(-1, a, b, x))

    assert jacobi_poly(1, a, b, x, polys=True) == Poly(
        (a / 2 + b / 2 + 1) * x + a / 2 - b / 2, x, domain='ZZ(a,b)')

    assert jacobi_poly(0, a, b, x) == 1
    assert jacobi_poly(1, a, b, x) == a / 2 - b / 2 + x * (a / 2 + b / 2 + 1)
    assert jacobi_poly(2, a, b, x) == (
        a**2 / 8 - a * b / 4 - a / 8 + b**2 / 8 - b / 8 + x**2 *
        (a**2 / 8 + a * b / 4 + a * Q(7, 8) + b**2 / 8 + b * Q(7, 8) + Q(3, 2))
        + x * (a**2 / 4 + a * Q(3, 4) - b**2 / 4 - b * Q(3, 4)) - S.Half)

    assert jacobi_poly(1, a, b, polys=True) == Poly(
        (a / 2 + b / 2 + 1) * x + a / 2 - b / 2, x, domain='ZZ(a,b)')
예제 #2
0
def test_gegenbauer_poly():
    raises(ValueError, lambda: gegenbauer_poly(-1, a, x))

    assert gegenbauer_poly(1, a, x, polys=True) == Poly(2 * a * x,
                                                        x,
                                                        domain='ZZ(a)')

    assert gegenbauer_poly(0, a, x) == 1
    assert gegenbauer_poly(1, a, x) == 2 * a * x
    assert gegenbauer_poly(2, a, x) == -a + x**2 * (2 * a**2 + 2 * a)
    assert gegenbauer_poly(3, a,
                           x) == x**3 * (4 * a**3 / 3 + 4 * a**2 +
                                         a * Q(8, 3)) + x * (-2 * a**2 - 2 * a)

    assert gegenbauer_poly(1, S.Half).dummy_eq(x)
    assert gegenbauer_poly(1, a, polys=True) == Poly(2 * a * x,
                                                     x,
                                                     domain='ZZ(a)')
예제 #3
0
def test_legendre_poly():
    raises(ValueError, lambda: legendre_poly(-1, x))

    assert legendre_poly(1, x, polys=True) == Poly(x)

    assert legendre_poly(0, x) == 1
    assert legendre_poly(1, x) == x
    assert legendre_poly(2, x) == Q(3, 2) * x**2 - Q(1, 2)
    assert legendre_poly(3, x) == Q(5, 2) * x**3 - Q(3, 2) * x
    assert legendre_poly(4, x) == Q(35, 8) * x**4 - Q(30, 8) * x**2 + Q(3, 8)
    assert legendre_poly(5,
                         x) == Q(63, 8) * x**5 - Q(70, 8) * x**3 + Q(15, 8) * x
    assert legendre_poly(
        6, x) == Q(231, 16) * x**6 - Q(315, 16) * x**4 + Q(105, 16) * x**2 - Q(
            5, 16)

    assert legendre_poly(1).dummy_eq(x)
    assert legendre_poly(1, polys=True) == Poly(x)
예제 #4
0
def test_laguerre_poly():
    raises(ValueError, lambda: laguerre_poly(-1, x))

    assert laguerre_poly(1, x, polys=True) == Poly(-x + 1)

    assert laguerre_poly(0, x) == 1
    assert laguerre_poly(1, x) == -x + 1
    assert laguerre_poly(2, x) == Q(1, 2) * x**2 - Q(4, 2) * x + 1
    assert laguerre_poly(
        3, x) == -Q(1, 6) * x**3 + Q(9, 6) * x**2 - Q(18, 6) * x + 1
    assert laguerre_poly(4, x) == Q(1, 24) * x**4 - Q(16, 24) * x**3 + Q(
        72, 24) * x**2 - Q(96, 24) * x + 1
    assert laguerre_poly(5, x) == -Q(1, 120) * x**5 + Q(25, 120) * x**4 - Q(
        200, 120) * x**3 + Q(600, 120) * x**2 - Q(600, 120) * x + 1
    assert laguerre_poly(
        6, x) == Q(1, 720) * x**6 - Q(36, 720) * x**5 + Q(450, 720) * x**4 - Q(
            2400, 720) * x**3 + Q(5400, 720) * x**2 - Q(4320, 720) * x + 1

    assert laguerre_poly(0, x, a) == 1
    assert laguerre_poly(1, x, a) == -x + a + 1
    assert laguerre_poly(
        2, x, a) == x**2 / 2 + (-a - 2) * x + a**2 / 2 + a * Q(3, 2) + 1
    assert laguerre_poly(3, x, a) == -x**3 / 6 + (a / 2 + Q(3) / 2) * x**2 + (
        -a**2 / 2 - a * Q(5, 2) - 3) * x + a**3 / 6 + a**2 + a * Q(11, 6) + 1

    assert laguerre_poly(1).dummy_eq(-x + 1)
    assert laguerre_poly(1, polys=True) == Poly(-x + 1)
예제 #5
0
def test_laguerre_poly():
    raises(ValueError, "laguerre_poly(-1, x)")

    assert laguerre_poly(1, x, polys=True) == Poly(-x + 1)

    assert laguerre_poly(0, x) == 1
    assert laguerre_poly(1, x) == -x + 1
    assert laguerre_poly(2, x) == Q(1, 2) * x**2 - Q(4, 2) * x + 1
    assert laguerre_poly(
        3, x) == -Q(1, 6) * x**3 + Q(9, 6) * x**2 - Q(18, 6) * x + 1
    assert laguerre_poly(4, x) == Q(1, 24) * x**4 - Q(16, 24) * x**3 + Q(
        72, 24) * x**2 - Q(96, 24) * x + 1
    assert laguerre_poly(5, x) == -Q(1, 120) * x**5 + Q(25, 120) * x**4 - Q(
        200, 120) * x**3 + Q(600, 120) * x**2 - Q(600, 120) * x + 1
    assert laguerre_poly(
        6, x) == Q(1, 720) * x**6 - Q(36, 720) * x**5 + Q(450, 720) * x**4 - Q(
            2400, 720) * x**3 + Q(5400, 720) * x**2 - Q(4320, 720) * x + 1