SymPy - Números

O módulo principal do pacote SymPy contém a classe Number que representa os números atômicos. Essa classe possui duas subclasses: Float e Rational class. A classe Rational é posteriormente estendida pela classe Integer.

A classe float representa um número de ponto flutuante de precisão arbitrária.

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

A saída para o snippet de código acima é a seguinte -

6.32

SymPy pode converter um inteiro ou uma string em float.

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

Ao converter para flutuante, também é possível especificar o número de dígitos para precisão, conforme fornecido abaixo -

>>> Float(1.33333,2)

A saída para o snippet de código acima é a seguinte -

1.3

A representação de um número (p / q) é representada como objeto da classe Racional com q sendo um número diferente de zero.

>>> Rational(3/4)

A saída para o snippet de código acima é a seguinte -

$\frac{3}{4}$

Se um número de ponto flutuante é passado para o construtor Rational (), ele retorna o valor subjacente de sua representação binária

>>> Rational(0.2)

A saída para o snippet de código acima é a seguinte -

$\frac{3602879701896397}{18014398509481984}$

Para uma representação mais simples, especifique a limitação do denominador.

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

A saída para o snippet de código acima é a seguinte -

$\frac{1}{5}$

Quando uma string é passada para o construtor Rational (), um número racional de precisão arbitrária é retornado.

>>> Rational("3.65")

A saída para o snippet de código acima é a seguinte -

$\frac{73}{20}$

O objeto Rational também pode ser obtido se dois argumentos numéricos forem passados. As partes do numerador e do denominador estão disponíveis como propriedades.

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

A saída para o snippet de código acima é a seguinte -

3/5

numerator:3, denominator:5

>>> a

A saída para o snippet de código acima é a seguinte -

$\frac{3}{5}$

A classe inteira em SymPy representa um número inteiro de qualquer tamanho. O construtor pode aceitar um número Float ou Rational, mas a parte fracionária é descartada

>>> Integer(10)

A saída para o snippet de código acima é a seguinte -

10

>>> Integer(3.4)

A saída para o snippet de código acima é a seguinte -

3

>>> Integer(2/7)

A saída para o snippet de código acima é a seguinte -

0

SymPy tem um RealNumberclasse que atua como alias para Float. SymPy também define Zero e One como classes singleton acessíveis com S.Zero e S.One respectivamente, conforme mostrado abaixo -

>>> S.Zero

O resultado é o seguinte -

0

>>> S.One

O resultado é o seguinte -

1

Outros objetos de número Singleton predefinidos são Half, NaN, Infinity e ImaginaryUnit

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

O resultado é o seguinte -

½

>>> print (S.NaN)

O resultado é o seguinte -

nan

O infinito está disponível como um objeto de símbolo oo ou S.Infinity

>>> from sympy import oo 
>>> oo

A saída para o snippet de código acima é a seguinte -

$\infty$

>>> S.Infinity

A saída para o snippet de código acima é a seguinte -

$\infty$

O número ImaginaryUnit pode ser importado como símbolo I ou acessado como S.ImaginaryUnit e representa a raiz quadrada de -1

>>> from sympy import I 
>>> I

Ao executar o trecho de código acima, você obtém a seguinte saída -

i

>>> S.ImaginaryUnit

A saída do snippet acima é a seguinte -

i

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

Ao executar o trecho de código acima, você obtém a seguinte saída -

-1