SymPy - Numeri

Il modulo principale nel pacchetto SymPy contiene la classe Number che rappresenta i numeri atomici. Questa classe ha due sottoclassi: Float e Rational class. La classe razionale è ulteriormente estesa dalla classe Integer.

La classe Float rappresenta un numero in virgola mobile di precisione arbitraria.

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

L'output per lo snippet di codice sopra è il seguente:

6.32

SymPy può convertire un numero intero o una stringa in float.

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

Durante la conversione in float, è anche possibile specificare il numero di cifre per la precisione come indicato di seguito:

>>> Float(1.33333,2)

L'output per lo snippet di codice sopra è il seguente:

1.3

Una rappresentazione di un numero (p / q) è rappresentata come oggetto della classe Rational dove q è un numero diverso da zero.

>>> Rational(3/4)

L'output per lo snippet di codice sopra è il seguente:

$\frac{3}{4}$

Se un numero in virgola mobile viene passato al costruttore Rational (), restituisce il valore sottostante della sua rappresentazione binaria

>>> Rational(0.2)

L'output per lo snippet di codice sopra è il seguente:

$\frac{3602879701896397}{18014398509481984}$

Per una rappresentazione più semplice, specificare la limitazione del denominatore.

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

L'output per lo snippet di codice sopra è il seguente:

$\frac{1}{5}$

Quando una stringa viene passata al costruttore Rational (), viene restituito un numero razionale di precisione arbitraria.

>>> Rational("3.65")

L'output per lo snippet di codice sopra è il seguente:

$\frac{73}{20}$

L'oggetto razionale può anche essere ottenuto se vengono passati due argomenti numerici. Le parti numeratore e denominatore sono disponibili come proprietà.

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

L'output per lo snippet di codice sopra è il seguente:

3/5

numerator:3, denominator:5

>>> a

L'output per lo snippet di codice sopra è il seguente:

$\frac{3}{5}$

La classe Integer in SymPy rappresenta un numero intero di qualsiasi dimensione. Il costruttore può accettare un numero Float o Razionale, ma la parte frazionaria viene scartata

>>> Integer(10)

L'output per lo snippet di codice sopra è il seguente:

10

>>> Integer(3.4)

L'output per lo snippet di codice sopra è il seguente:

3

>>> Integer(2/7)

L'output per lo snippet di codice sopra è il seguente:

0

SymPy ha un file RealNumberclasse che funge da alias per Float. SymPy definisce anche Zero e One come classi singleton accessibili rispettivamente con S.Zero e S.One come mostrato di seguito -

>>> S.Zero

L'output è il seguente:

0

>>> S.One

L'output è il seguente:

1

Altri oggetti numerici Singleton predefiniti sono Half, NaN, Infinity e ImaginaryUnit

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

L'output è il seguente:

½

>>> print (S.NaN)

L'output è il seguente:

nan

Infinity è disponibile come oggetto simbolo oo o S. Infinity

>>> from sympy import oo 
>>> oo

L'output per lo snippet di codice sopra è il seguente:

$\infty$

>>> S.Infinity

L'output per lo snippet di codice sopra è il seguente:

$\infty$

Il numero di ImaginaryUnit può essere importato come simbolo I o accessibile come S.ImaginaryUnit e rappresenta la radice quadrata di -1

>>> from sympy import I 
>>> I

Quando esegui lo snippet di codice sopra, ottieni il seguente output:

i

>>> S.ImaginaryUnit

L'output dello snippet di cui sopra è il seguente:

i

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

Quando esegui lo snippet di codice sopra, ottieni il seguente output:

-1