SymPy - liczby

Podstawowy moduł pakietu SymPy zawiera klasę Number, która reprezentuje liczby atomowe. Ta klasa ma dwie podklasy: Float i Rational. Klasa wymierna jest dodatkowo rozszerzona o klasę Integer.

Klasa Float reprezentuje zmiennoprzecinkową liczbę o dowolnej precyzji.

>>> from sympy import Float 
>>> Float(6.32)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

6.32

SymPy może konwertować liczbę całkowitą lub ciąg znaków na zmiennoprzecinkowe.

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

Podczas konwersji na zmiennoprzecinkową można również określić liczbę cyfr dla dokładności, jak podano poniżej -

>>> Float(1.33333,2)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

1.3

Reprezentacja liczby (p / q) jest reprezentowana jako obiekt klasy Rational, gdzie q jest liczbą niezerową.

>>> Rational(3/4)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\frac{3}{4}$

Jeśli liczba zmiennoprzecinkowa zostanie przekazana do konstruktora Rational (), zwraca podstawową wartość swojej reprezentacji binarnej

>>> Rational(0.2)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\frac{3602879701896397}{18014398509481984}$

Aby uzyskać prostszą reprezentację, określ ograniczenie mianownika.

>>> Rational(0.2).limit_denominator(100)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\frac{1}{5}$

Kiedy łańcuch jest przekazywany do konstruktora Rational (), zwracana jest wymierna liczba o dowolnej precyzji.

>>> Rational("3.65")

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\frac{73}{20}$

Obiekt wymierny można również uzyskać, jeśli zostaną przekazane dwa argumenty liczbowe. Części licznika i mianownika są dostępne jako właściwości.

>>> a=Rational(3,5) 
>>> print (a) 
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

3/5

numerator:3, denominator:5

>>> a

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\frac{3}{5}$

Klasa Integer w SymPy reprezentuje liczbę całkowitą o dowolnej wielkości. Konstruktor może akceptować liczbę zmiennoprzecinkową lub wymierną, ale część ułamkowa jest odrzucana

>>> Integer(10)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

10

>>> Integer(3.4)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

3

>>> Integer(2/7)

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

0

SymPy ma RealNumberklasa, która działa jako alias dla Float. SymPy definiuje również Zero i One jako klasy pojedyncze dostępne odpowiednio z S.Zero i S.One, jak pokazano poniżej -

>>> S.Zero

Dane wyjściowe są następujące -

0

>>> S.One

Dane wyjściowe są następujące -

1

Inne predefiniowane obiekty liczb singletonów to Half, NaN, Infinity i ImaginaryUnit

>>> from sympy import S 
>>> print (S.Half)

Dane wyjściowe są następujące -

½

>>> print (S.NaN)

Dane wyjściowe są następujące -

nan

Infinity jest dostępne jako obiekt symbolu oo lub S.Infinity

>>> from sympy import oo 
>>> oo

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\infty$

>>> S.Infinity

Dane wyjściowe dla powyższego fragmentu kodu są następujące -

$\infty$

Liczba ImaginaryUnit może być importowana jako symbol I lub dostępna jako S.ImaginaryUnit i reprezentuje pierwiastek kwadratowy z -1

>>> from sympy import I 
>>> I

Po wykonaniu powyższego fragmentu kodu otrzymasz następujące dane wyjściowe -

i

>>> S.ImaginaryUnit

Dane wyjściowe powyższego fragmentu kodu są następujące -

i

>>> from sympy import sqrt 
>>> i=sqrt(-1) 
>>> i*i

Po wykonaniu powyższego fragmentu kodu otrzymasz następujące dane wyjściowe -

-1