SymPy - zapytania
Moduł założeń w pakiecie SymPy zawiera narzędzia do wydobywania informacji o wyrażeniach. W tym celu moduł definiuje funkcję ask ().
sympy.assumptions.ask(property)
Poniższe właściwości zawierają przydatne informacje o wyrażeniu -
algebraic(x)
Aby liczba była algebraiczna, musi być pierwiastkiem niezerowego równania wielomianowego z wymiernymi współczynnikami. √2, ponieważ √2 jest rozwiązaniem x2 - 2 = 0, więc jest algebraiczne.
complex(x)
Predykat liczb zespolonych. Jest prawdą wtedy i tylko wtedy, gdy x należy do zbioru liczb zespolonych.
composite(x)
Predykat liczby złożonej zwracany przez ask (Q.composite (x)) jest prawdziwy wtedy i tylko wtedy, gdy x jest dodatnią liczbą całkowitą i ma co najmniej jeden dodatni dzielnik inny niż 1 i samą liczbę.
even, odd
Funkcja ask () zwraca prawdę z x jest odpowiednio w zbiorze liczb parzystych i zbiorze liczb nieparzystych.
imaginary
Ta właściwość reprezentuje predykat liczby urojonej. Prawdą jest, że x można zapisać jako liczbę rzeczywistą pomnożoną przez urojoną jednostkę I.
integer
Ta właściwość zwrócona przez Q.integer (x) zwraca true z x należy do zbioru liczb parzystych.
rational, irrational
Q. irrational (x) jest prawdziwe wtedy i tylko wtedy, gdy x jest dowolną liczbą rzeczywistą, której nie można wyrazić jako stosunek liczb całkowitych. Na przykład liczba pi jest liczbą niewymierną.
positive, negative
Predykaty sprawdzające, czy liczba jest dodatnia czy ujemna
zero, nonzero
Predykaty do cholery, czy liczba jest równa zero, czy nie
>>> 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)