示例#1
0
def test_homogeneous_function():
    f = Function('f')
    eq1 = tan(x + f(x))
    eq2 = sin((3*x)/(4*f(x)))
    eq3 = cos(x*f(x)*Rational(3, 4))
    eq4 = log((3*x + 4*f(x))/(5*f(x) + 7*x))
    eq5 = exp((2*x**2)/(3*f(x)**2))
    eq6 = log((3*x + 4*f(x))/(5*f(x) + 7*x) + exp((2*x**2)/(3*f(x)**2)))
    eq7 = sin((3*x)/(5*f(x) + x**2))
    assert homogeneous_order(eq1, x, f(x)) == None
    assert homogeneous_order(eq2, x, f(x)) == 0
    assert homogeneous_order(eq3, x, f(x)) == None
    assert homogeneous_order(eq4, x, f(x)) == 0
    assert homogeneous_order(eq5, x, f(x)) == 0
    assert homogeneous_order(eq6, x, f(x)) == 0
    assert homogeneous_order(eq7, x, f(x)) == None
示例#2
0
def test_issue_5112_5430():
    assert homogeneous_order(-log(x) + acosh(x), x) is None
    assert homogeneous_order(y - log(x), x, y) is None
示例#3
0
def test_homogeneous_order():
    assert homogeneous_order(exp(y / x) + tan(y / x), x, y) == 0
    assert homogeneous_order(x**2 + sin(x) * cos(y), x, y) is None
    assert homogeneous_order(x - y - x * sin(y / x), x, y) == 1
    assert homogeneous_order(
        (x * y + sqrt(x**4 + y**4) + x**2 * (log(x) - log(y))) /
        (pi * x**Rational(2, 3) * sqrt(y)**3), x, y) == Rational(-1, 6)
    assert homogeneous_order(
        y / x * cos(y / x) - x / y * sin(y / x) + cos(y / x), x, y) == 0
    assert homogeneous_order(f(x), x, f(x)) == 1
    assert homogeneous_order(f(x)**2, x, f(x)) == 2
    assert homogeneous_order(x * y * z, x, y) == 2
    assert homogeneous_order(x * y * z, x, y, z) == 3
    assert homogeneous_order(x**2 * f(x) / sqrt(x**2 + f(x)**2), f(x)) is None
    assert homogeneous_order(f(x, y)**2, x, f(x, y), y) == 2
    assert homogeneous_order(f(x, y)**2, x, f(x), y) is None
    assert homogeneous_order(f(x, y)**2, x, f(x, y)) is None
    assert homogeneous_order(f(y, x)**2, x, y, f(x, y)) is None
    assert homogeneous_order(f(y), f(x), x) is None
    assert homogeneous_order(-f(x) / x + 1 / sin(f(x) / x), f(x), x) == 0
    assert homogeneous_order(log(1 / y) + log(x**2), x, y) is None
    assert homogeneous_order(log(1 / y) + log(x), x, y) == 0
    assert homogeneous_order(log(x / y), x, y) == 0
    assert homogeneous_order(2 * log(1 / y) + 2 * log(x), x, y) == 0
    a = Symbol('a')
    assert homogeneous_order(a * log(1 / y) + a * log(x), x, y) == 0
    assert homogeneous_order(f(x).diff(x), x, y) is None
    assert homogeneous_order(-f(x).diff(x) + x, x, y) is None
    assert homogeneous_order(O(x), x, y) is None
    assert homogeneous_order(x + O(x**2), x, y) is None
    assert homogeneous_order(x**pi, x) == pi
    assert homogeneous_order(x**x, x) is None
    raises(ValueError, lambda: homogeneous_order(x * y))