def test_quo_z():
    x = var('x')

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    assert quo_z(p, -q, x) != pquo(p, -q, x)

    y = var('y')
    q = 3 * x**6 + 5 * y**4 - 4 * x**2 - 9 * x + 21
    assert quo_z(p, -q, x) == pquo(p, -q, x)
def test_sturm_q():
    x = var('x')

    p = x**3 - 7 * x + 7
    q = 3 * x**2 - 7
    assert sturm_q(p, q, x) == sturm(p)
    assert sturm_q(-p, -q, x) != sturm(-p)
def test_bezout():
    x = var('x')

    p = -2 * x**5 + 7 * x**3 + 9 * x**2 - 3 * x + 1
    q = -10 * x**4 + 21 * x**2 + 18 * x - 3
    assert bezout(p, q, x, 'bz').det() == sylvester(p, q, x, 2).det()
    assert bezout(p, q, x, 'bz').det() != sylvester(p, q, x, 1).det()
    assert bezout(
        p, q, x,
        'prs') == backward_eye(5) * bezout(p, q, x, 'bz') * backward_eye(5)
def test_euclid_amv():
    x = var('x')

    p = x**3 - 7 * x + 7
    q = 3 * x**2 - 7
    assert euclid_amv(p, q, x)[-1] == sylvester(p, q, x).det()
    assert euclid_amv(p, q, x) == subresultants_amv(p, q, x)

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    assert euclid_amv(p, q, x)[-1] != sylvester(p, q, x, 2).det()
    sam_factors = [1, 1, -1, -1, 1, 1]
    assert euclid_amv(
        p, q, x) == [i * j for i, j in zip(sam_factors, sturm_amv(p, q, x))]
def test_modified_subresultants_sylv():
    x = var('x')

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    amv_factors = [1, 1, -1, 1, -1, 1]
    assert modified_subresultants_sylv(p, q, x) == [
        i * j for i, j in zip(amv_factors, subresultants_amv(p, q, x))
    ]
    assert modified_subresultants_sylv(p, q, x)[-1] != res_q(p + x**8, q, x)
    assert modified_subresultants_sylv(p, q, x) != sturm_amv(p, q, x)

    p = x**3 - 7 * x + 7
    q = 3 * x**2 - 7
    assert modified_subresultants_sylv(p, q, x) == sturm_amv(p, q, x)
    assert modified_subresultants_sylv(-p, q, x) != sturm_amv(-p, q, x)
def test_subresultants_sylv():
    x = var('x')

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    assert subresultants_sylv(p, q, x) == subresultants(p, q, x)
    assert subresultants_sylv(p, q, x)[-1] == res(p, q, x)
    assert subresultants_sylv(p, q, x) != euclid_amv(p, q, x)
    amv_factors = [1, 1, -1, 1, -1, 1]
    assert subresultants_sylv(p, q, x) == [
        i * j for i, j in zip(amv_factors, modified_subresultants_amv(p, q, x))
    ]

    p = x**3 - 7 * x + 7
    q = 3 * x**2 - 7
    assert subresultants_sylv(p, q, x) == euclid_amv(p, q, x)
def test_sturm_amv():
    x = var('x')

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    assert sturm_amv(p, q, x)[-1] != sylvester(p, q, x, 2).det()
    sam_factors = [1, 1, -1, -1, 1, 1]
    assert sturm_amv(
        p, q, x) == [i * j for i, j in zip(sam_factors, euclid_amv(p, q, x))]

    p = -9 * x**5 - 5 * x**3 - 9
    q = -45 * x**4 - 15 * x**2
    assert sturm_amv(p, q, x, 1)[-1] == sylvester(p, q, x, 1).det()
    assert sturm_amv(p, q, x)[-1] != sylvester(p, q, x, 2).det()
    assert sturm_amv(-p, q, x)[-1] == sylvester(-p, q, x, 2).det()
    assert sturm_pg(-p, q, x) == modified_subresultants_pg(-p, q, x)
def test_sylvester():
    x = var('x')

    assert sylvester(x**3 - 7, 0, x) == sylvester(x**3 - 7, 0, x, 1) == Matrix(
        [[0]])
    assert sylvester(0, x**3 - 7, x) == sylvester(0, x**3 - 7, x, 1) == Matrix(
        [[0]])
    assert sylvester(x**3 - 7, 0, x, 2) == Matrix([[0]])
    assert sylvester(0, x**3 - 7, x, 2) == Matrix([[0]])

    assert sylvester(x**3 - 7, 7, x).det() == sylvester(x**3 - 7, 7, x,
                                                        1).det() == 343
    assert sylvester(7, x**3 - 7, x).det() == sylvester(7, x**3 - 7, x,
                                                        1).det() == 343
    assert sylvester(x**3 - 7, 7, x, 2).det() == -343
    assert sylvester(7, x**3 - 7, x, 2).det() == 343

    assert sylvester(3, 7, x).det() == sylvester(
        3, 7, x, 1).det() == sylvester(3, 7, x, 2).det() == 1

    assert sylvester(3, 0, x).det() == sylvester(
        3, 0, x, 1).det() == sylvester(3, 0, x, 2).det() == 1

    assert sylvester(x - 3, x - 8,
                     x) == sylvester(x - 3, x - 8, x, 1) == sylvester(
                         x - 3, x - 8, x, 2) == Matrix([[1, -3], [1, -8]])

    assert sylvester(x**3 - 7 * x + 7, 3 * x**2 - 7, x) == sylvester(
        x**3 - 7 * x + 7, 3 * x**2 - 7, x, 1) == Matrix(
            [[1, 0, -7, 7, 0], [0, 1, 0, -7, 7], [3, 0, -7, 0, 0],
             [0, 3, 0, -7, 0], [0, 0, 3, 0, -7]])

    assert sylvester(x**3 - 7 * x + 7, 3 * x**2 - 7, x,
                     2) == Matrix([[1, 0, -7, 7, 0, 0], [0, 3, 0, -7, 0, 0],
                                   [0, 1, 0, -7, 7, 0], [0, 0, 3, 0, -7, 0],
                                   [0, 0, 1, 0, -7, 7], [0, 0, 0, 3, 0, -7]])
def test_res_z():
    x = var('x')

    assert res_z(3, 5, x) == 1
    assert res(3, 5, x) == res_q(3, 5, x) == res_z(3, 5, x)
Ejemplo n.º 10
0
def test_res_q():
    x = var('x')

    assert res_q(3, 5, x) == 1
Ejemplo n.º 11
0
def test_rem_z():
    x = var('x')

    p = x**8 + x**6 - 3 * x**4 - 3 * x**3 + 8 * x**2 + 2 * x - 5
    q = 3 * x**6 + 5 * x**4 - 4 * x**2 - 9 * x + 21
    assert rem_z(p, -q, x) != prem(p, -q, x)
Ejemplo n.º 12
0
def test_euclid_q():
    x = var('x')

    p = x**3 - 7 * x + 7
    q = 3 * x**2 - 7
    assert euclid_q(p, q, x)[-1] == -sturm(p)[-1]