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