SymPy: consultas

El módulo de supuestos del paquete SymPy contiene herramientas para extraer información sobre expresiones. El módulo define la función ask () para este propósito.

sympy.assumptions.ask(property)

Las siguientes propiedades proporcionan información útil sobre una expresión:

algebraic(x)

Para ser algebraico, un número debe ser la raíz de una ecuación polinomial distinta de cero con coeficientes racionales. √2 porque √2 es una solución de x2 - 2 = 0, entonces es algebraico.

complex(x)

Predicado de número complejo. Es cierto si y solo si x pertenece al conjunto de números complejos.

composite(x)

El predicado de número compuesto devuelto por ask (Q.composite (x)) es verdadero si y solo si x es un número entero positivo y tiene al menos un divisor positivo que no sea 1 y el número en sí.

even, odd

Ask () devuelve verdadero de x está en el conjunto de números pares y el conjunto de números impares respectivamente.

imaginary

Esta propiedad representa el predicado numérico imaginario. Es cierto si x se puede escribir como un número real multiplicado por la unidad imaginaria I.

integer

Esta propiedad devuelta por Q.integer (x) devuelve verdadero de x pertenece al conjunto de números pares.

rational, irrational

Q.irrational (x) es verdadero si y solo si x es un número real que no se puede expresar como una razón de números enteros. Por ejemplo, pi es un número irracional.

positive, negative

Predica para comprobar si el número es positivo o negativo

zero, nonzero

Predica para diablos si un número es cero o no

>>> from sympy import * 
>>> x=Symbol('x') 
>>> x=10 
>>> ask(Q.algebraic(pi))
False
>>> ask(Q.complex(5-4*I)), ask( Q.complex(100))
(True, True)
>>> x,y=symbols("x y") 
>>> x,y=5,10 
>>> ask(Q.composite(x)), ask(Q.composite(y))
(False, True)
>>> ask(Q.even(x)), ask(Q.even(y))
(False, True)
>>> x,y= 2*I, 4+5*I 
>>> ask(Q.imaginary(x)), ask(Q.imaginary(y))
(True, False)
>>> x,y=5,10 
>>> ask(Q.even(x)), ask(Q.even(y)), ask(Q.odd(x)), ask(Q.odd(y))
(False, True, True, False)
>>> x,y=5,-5 
>>> ask(Q.positive(x)), ask(Q.negative(y)), ask(Q.positive(x)), ask(Q.negative(y))
(True, True, True, True)
>>> ask(Q.rational(pi)), ask(Q.irrational(S(2)/3))
(False, False)
>>> ask(Q.zero(oo)), ask(Q.nonzero(I))
(False, False)