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