示例#1
0
 def assertion(self):
     from sympy.concrete.expr_with_limits import Exists
     from sympy import Unequality
     s = self.arg
     if not s.is_set:
         return
     x = s.element_symbol()
     y = s.element_symbol({x})
     return (self <= 1) | Exists(Unequality(x, y), (x, s), (y, s))
示例#2
0
def test_Equality():
    assert Equality(IM, IM) is S.true
    assert Unequality(IM, IM) is S.false
    assert Equality(IM, IM.subs(1, 2)) is S.false
    assert Unequality(IM, IM.subs(1, 2)) is S.true
    assert Equality(IM, 2) is S.false
    assert Unequality(IM, 2) is S.true
    M = ImmutableMatrix([x, y])
    assert Equality(M, IM) is S.false
    assert Unequality(M, IM) is S.true
    assert Equality(M, M.subs(x, 2)).subs(x, 2) is S.true
    assert Unequality(M, M.subs(x, 2)).subs(x, 2) is S.false
    assert Equality(M, M.subs(x, 2)).subs(x, 3) is S.false
    assert Unequality(M, M.subs(x, 2)).subs(x, 3) is S.true
示例#3
0
 def eval(cls, arg):
     from sympy import (Equality, GreaterThan, LessThan, StrictGreaterThan,
                        StrictLessThan, Unequality)
     if isinstance(arg, Number) or arg in (True, False):
         return false if arg else true
     #if arg.is_Not:
     #return arg.args[0] # ONLY CHANGE
     # Simplify Relational objects.
     if isinstance(arg, Equality):
         return Unequality(*arg.args)
     if isinstance(arg, Unequality):
         return Equality(*arg.args)
     if isinstance(arg, StrictLessThan):
         return GreaterThan(*arg.args)
     if isinstance(arg, StrictGreaterThan):
         return LessThan(*arg.args)
     if isinstance(arg, LessThan):
         return StrictGreaterThan(*arg.args)
     if isinstance(arg, GreaterThan):
         return StrictLessThan(*arg.args)
示例#4
0
def test_relational():
    if not np:
        skip("NumPy not installed")

    e = Equality(x, 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, True, False])

    e = Unequality(x, 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, False, True])

    e = (x < 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, False, False])

    e = (x <= 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, True, False])

    e = (x > 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, False, True])

    e = (x >= 1)

    f = lambdify((x,), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, True, True])
示例#5
0
def test_relational():
    e = Equality(x, 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, True, False])

    e = Unequality(x, 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, False, True])

    e = (x < 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, False, False])

    e = (x <= 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [True, True, False])

    e = (x > 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, False, True])

    e = (x >= 1)

    f = lambdify((x, ), e)
    x_ = np.array([0, 1, 2])
    assert np.array_equal(f(x_), [False, True, True])
示例#6
0
 ("\\lim_{x \\rightarrow 3} a", Limit(a, x, 3)),
 ("\\lim_{x \\Rightarrow 3} a", Limit(a, x, 3)),
 ("\\lim_{x \\longrightarrow 3} a", Limit(a, x, 3)),
 ("\\lim_{x \\Longrightarrow 3} a", Limit(a, x, 3)),
 ("\\lim_{x \\to 3^{+}} a", Limit(a, x, 3, dir='+')),
 ("\\lim_{x \\to 3^{-}} a", Limit(a, x, 3, dir='-')),
 ("\\infty", oo),
 ("\\lim_{x \\to \\infty} \\frac{1}{x}", Limit(_Pow(x, -1), x, oo)),
 ("\\frac{d}{dx} x", Derivative(x, x)),
 ("\\frac{d}{dt} x", Derivative(x, t)),
 ("f(x)", f(x)),
 ("f(x, y)", f(x, y)),
 ("f(x, y, z)", f(x, y, z)),
 ("\\frac{d f(x)}{dx}", Derivative(f(x), x)),
 ("\\frac{d\\theta(x)}{dx}", Derivative(Function('theta')(x), x)),
 ("x \\neq y", Unequality(x, y)),
 ("|x|", _Abs(x)),
 ("||x||", _Abs(Abs(x))),
 ("|x||y|", _Abs(x) * _Abs(y)),
 ("||x||y||", _Abs(_Abs(x) * _Abs(y))),
 ("\\pi^{|xy|}", Symbol('pi')**_Abs(x * y)),
 ("\\int x dx", Integral(x, x)),
 ("\\int x d\\theta", Integral(x, theta)),
 ("\\int (x^2 - y)dx", Integral(x**2 - y, x)),
 ("\\int x + a dx", Integral(_Add(x, a), x)),
 ("\\int da", Integral(1, a)),
 ("\\int_0^7 dx", Integral(1, (x, 0, 7))),
 ("\\int_a^b x dx", Integral(x, (x, a, b))),
 ("\\int^b_a x dx", Integral(x, (x, a, b))),
 ("\\int_{a}^b x dx", Integral(x, (x, a, b))),
 ("\\int^{b}_a x dx", Integral(x, (x, a, b))),
示例#7
0
 (r"\lim_{x \rightarrow 3} a", Limit(a, x, 3)),
 (r"\lim_{x \Rightarrow 3} a", Limit(a, x, 3)),
 (r"\lim_{x \longrightarrow 3} a", Limit(a, x, 3)),
 (r"\lim_{x \Longrightarrow 3} a", Limit(a, x, 3)),
 (r"\lim_{x \to 3^{+}} a", Limit(a, x, 3, dir='+')),
 (r"\lim_{x \to 3^{-}} a", Limit(a, x, 3, dir='-')),
 (r"\infty", oo),
 (r"\lim_{x \to \infty} \frac{1}{x}", Limit(_Pow(x, -1), x, oo)),
 (r"\frac{d}{dx} x", Derivative(x, x)),
 (r"\frac{d}{dt} x", Derivative(x, t)),
 (r"f(x)", f(x)),
 (r"f(x, y)", f(x, y)),
 (r"f(x, y, z)", f(x, y, z)),
 (r"\frac{d f(x)}{dx}", Derivative(f(x), x)),
 (r"\frac{d\theta(x)}{dx}", Derivative(Function('theta')(x), x)),
 (r"x \neq y", Unequality(x, y)),
 (r"|x|", _Abs(x)),
 (r"||x||", _Abs(Abs(x))),
 (r"|x||y|", _Abs(x) * _Abs(y)),
 (r"||x||y||", _Abs(_Abs(x) * _Abs(y))),
 (r"\pi^{|xy|}", Symbol('pi')**_Abs(x * y)),
 (r"\int x dx", Integral(x, x)),
 (r"\int x d\theta", Integral(x, theta)),
 (r"\int (x^2 - y)dx", Integral(x**2 - y, x)),
 (r"\int x + a dx", Integral(_Add(x, a), x)),
 (r"\int da", Integral(1, a)),
 (r"\int_0^7 dx", Integral(1, (x, 0, 7))),
 (r"\int_a^b x dx", Integral(x, (x, a, b))),
 (r"\int^b_a x dx", Integral(x, (x, a, b))),
 (r"\int_{a}^b x dx", Integral(x, (x, a, b))),
 (r"\int^{b}_a x dx", Integral(x, (x, a, b))),