Esempio n. 1
0
def test_apart_list():
    from sympy.utilities.iterables import numbered_symbols

    def dummy_eq(i, j):
        if type(i) in (list, tuple):
            return all(dummy_eq(i, j) for i, j in zip(i, j))
        return i == j or i.dummy_eq(j)

    w0, w1, w2 = Symbol("w0"), Symbol("w1"), Symbol("w2")
    _a = Dummy("a")

    f = (-2 * x - 2 * x**2) / (3 * x**2 - 6 * x)
    got = apart_list(f, x, dummies=numbered_symbols("w"))
    ans = (-1, Poly(Rational(2, 3),
                    x, domain='QQ'), [(Poly(w0 - 2, w0, domain='ZZ'),
                                       Lambda(_a, 2), Lambda(_a, -_a + x), 1)])
    assert dummy_eq(got, ans)

    got = apart_list(2 / (x**2 - 2), x, dummies=numbered_symbols("w"))
    ans = (1, Poly(0, x, domain='ZZ'), [(Poly(w0**2 - 2, w0,
                                              domain='ZZ'), Lambda(_a, _a / 2),
                                         Lambda(_a, -_a + x), 1)])
    assert dummy_eq(got, ans)

    f = 36 / (x**5 - 2 * x**4 - 2 * x**3 + 4 * x**2 + x - 2)
    got = apart_list(f, x, dummies=numbered_symbols("w"))
    ans = (1, Poly(0, x, domain='ZZ'), [
        (Poly(w0 - 2, w0, domain='ZZ'), Lambda(_a, 4), Lambda(_a, -_a + x), 1),
        (Poly(w1**2 - 1, w1,
              domain='ZZ'), Lambda(_a, -3 * _a - 6), Lambda(_a, -_a + x), 2),
        (Poly(w2 + 1, w2, domain='ZZ'), Lambda(_a, -4), Lambda(_a, -_a + x), 1)
    ])
    assert dummy_eq(got, ans)
Esempio n. 2
0
def test_apart_list():
    from sympy.utilities.iterables import numbered_symbols

    w0, w1, w2 = Symbol("w0"), Symbol("w1"), Symbol("w2")
    _a = Dummy("a")

    f = (-2 * x - 2 * x ** 2) / (3 * x ** 2 - 6 * x)
    assert apart_list(f, x, dummies=numbered_symbols("w")) == (
        -1,
        Poly(S(2) / 3, x, domain="QQ"),
        [(Poly(w0 - 2, w0, domain="ZZ"), Lambda(_a, 2), Lambda(_a, -_a + x), 1)],
    )

    assert apart_list(2 / (x ** 2 - 2), x, dummies=numbered_symbols("w")) == (
        1,
        Poly(0, x, domain="ZZ"),
        [(Poly(w0 ** 2 - 2, w0, domain="ZZ"), Lambda(_a, _a / 2), Lambda(_a, -_a + x), 1)],
    )

    f = 36 / (x ** 5 - 2 * x ** 4 - 2 * x ** 3 + 4 * x ** 2 + x - 2)
    assert apart_list(f, x, dummies=numbered_symbols("w")) == (
        1,
        Poly(0, x, domain="ZZ"),
        [
            (Poly(w0 - 2, w0, domain="ZZ"), Lambda(_a, 4), Lambda(_a, -_a + x), 1),
            (Poly(w1 ** 2 - 1, w1, domain="ZZ"), Lambda(_a, -3 * _a - 6), Lambda(_a, -_a + x), 2),
            (Poly(w2 + 1, w2, domain="ZZ"), Lambda(_a, -4), Lambda(_a, -_a + x), 1),
        ],
    )
Esempio n. 3
0
def test_assemble_partfrac_list():
    f = 36 / (x**5 - 2*x**4 - 2*x**3 + 4*x**2 + x - 2)
    pfd = apart_list(f)
    assert assemble_partfrac_list(pfd) == -4/(x + 1) - 3/(x + 1)**2 - 9/(x - 1)**2 + 4/(x - 2)

    a = Dummy("a")
    pfd = (1, Poly(0, x, domain='ZZ'), [([sqrt(2),-sqrt(2)], Lambda(a, a/2), Lambda(a, -a + x), 1)])
    assert assemble_partfrac_list(pfd) == -1/(sqrt(2)*(x + sqrt(2))) + 1/(sqrt(2)*(x - sqrt(2)))
def test_assemble_partfrac_list():
    f = 36 / (x**5 - 2*x**4 - 2*x**3 + 4*x**2 + x - 2)
    pfd = apart_list(f)
    assert assemble_partfrac_list(pfd) == -4/(x + 1) - 3/(x + 1)**2 - 9/(x - 1)**2 + 4/(x - 2)

    a = Dummy("a")
    pfd = (1, Poly(0, x, domain='ZZ'), [([sqrt(2),-sqrt(2)], Lambda(a, a/2), Lambda(a, -a + x), 1)])
    assert assemble_partfrac_list(pfd) == -1/(sqrt(2)*(x + sqrt(2))) + 1/(sqrt(2)*(x - sqrt(2)))
Esempio n. 5
0
def test_apart_list():
    from sympy.utilities.iterables import numbered_symbols

    w0, w1, w2 = Symbol("w0"), Symbol("w1"), Symbol("w2")
    _a = Dummy("a")

    f = (-2 * x - 2 * x**2) / (3 * x**2 - 6 * x)
    assert apart_list(f, x, dummies=numbered_symbols("w")) == (
        -1,
        Poly(Rational(2, 3), x, domain="QQ"),
        [(Poly(w0 - 2, w0, domain="ZZ"), Lambda(_a, 2), Lambda(_a,
                                                               -_a + x), 1)],
    )

    assert apart_list(2 / (x**2 - 2), x, dummies=numbered_symbols("w")) == (
        1,
        Poly(0, x, domain="ZZ"),
        [(
            Poly(w0**2 - 2, w0, domain="ZZ"),
            Lambda(_a, _a / 2),
            Lambda(_a, -_a + x),
            1,
        )],
    )

    f = 36 / (x**5 - 2 * x**4 - 2 * x**3 + 4 * x**2 + x - 2)
    assert apart_list(f, x, dummies=numbered_symbols("w")) == (
        1,
        Poly(0, x, domain="ZZ"),
        [
            (Poly(w0 - 2, w0, domain="ZZ"), Lambda(_a, 4), Lambda(_a,
                                                                  -_a + x), 1),
            (
                Poly(w1**2 - 1, w1, domain="ZZ"),
                Lambda(_a, -3 * _a - 6),
                Lambda(_a, -_a + x),
                2,
            ),
            (Poly(w2 + 1, w2,
                  domain="ZZ"), Lambda(_a, -4), Lambda(_a, -_a + x), 1),
        ],
    )