SymPy - Computação Simbólica
A computação simbólica se refere ao desenvolvimento de algoritmos para manipular expressões matemáticas e outros objetos matemáticos. A computação simbólica integra a matemática com a ciência da computação para resolver expressões matemáticas usando símbolos matemáticos. Um sistema de álgebra computacional (CAS) como o SymPy avalia as expressões algébricas exatamente (não aproximadamente) usando os mesmos símbolos que são usados no método manual tradicional. Por exemplo, calculamos a raiz quadrada de um número usando o módulo matemático do Python, conforme mostrado abaixo -
>>> import math
>>> print (math.sqrt(25), math.sqrt(7))
A saída para o snippet de código acima é a seguinte -
5.0 2.6457513110645907
Como você pode ver, a raiz quadrada de 7 é calculada aproximadamente. Mas no SymPy raízes quadradas de números que não são quadrados perfeitos são deixadas sem avaliação por padrão, conforme mostrado abaixo -
>>> import sympy
>>> print (sympy.sqrt(7))
A saída para o snippet de código acima é a seguinte -
sqrt(7)
É possível simplificar e mostrar o resultado da expressão simbolicamente com o trecho de código abaixo -
>>> import math
>>> print (math.sqrt(12))
A saída para o snippet de código acima é a seguinte -
3.4641016151377544
Você precisa usar o trecho de código abaixo para executar o mesmo usando o sympy -
##sympy output
>>> print (sympy.sqrt(12))
E a saída para isso é a seguinte -
2*sqrt(3)
O código SymPy, quando executado no notebook Jupyter, usa a biblioteca MathJax para renderizar símbolos matemáticos na forma LatEx. É mostrado no snippet de código abaixo -
>>> from sympy import *
>>> x=Symbol ('x')
>>> expr = integrate(x**x, x)
>>> expr
Ao executar o comando acima no shell python, a seguinte saída será gerada -
Integral(x**x, x)
Que é equivalente a
$ \ int \ mathrm {x} ^ {x} \, \ mathrm {d} x $
A raiz quadrada de um quadrado não perfeito pode ser representada por Latex da seguinte forma, usando o símbolo tradicional -
>>> from sympy import *
>>> x=7
>>> sqrt(x)
A saída para o snippet de código acima é a seguinte -
$ \ sqrt7 $
Um sistema de computação simbólica como o SymPy faz todos os tipos de cálculos (como derivadas, integrais e limites, resolve equações, trabalha com matrizes) simbolicamente. O pacote SymPy possui diferentes módulos que suportam plotagem, impressão (como LATEX), física, estatística, combinatória, teoria dos números, geometria, lógica, etc.