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)