Vantagens do SymPy
- Gratuito: o SymPy, sob licença BSD, pode ser usado livremente e sem custo.
- Baseado em Python: o SymPy é escrito inteiramente em Python e usa Python.
- Leve: o SymPy depende apenas do mpmath, uma biblioteca pura em Python para aritmética de ponto flutuante de precisão arbitrária, o que facilita seu uso.
- Biblioteca: além de ser usado como ferramenta interativa, pode ser embutido em outras aplicações ou expandido com funções personalizadas.
Projetos que usam SymPy
- Cadabra: sistema de álgebra tensorial e teoria de campos (quântica) que usa SymPy para operações de álgebra escalar.
- ChemPy: pacote útil para química escrito em Python.
- devito: DSL simbólica e compilador just-in-time para computação de stencil de alto desempenho.
- EinsteinPy: pacote em Python para relatividade geral simbólica e numérica.
- galgebra: álgebra geométrica (anteriormente sympy.galgebra).
- LaTeX Expression project: facilita a composição em LaTeX de expressões algébricas, com substituição automática e cálculo de resultados.
- Lcapy: pacote experimental em Python para o ensino de análise de circuitos lineares.
- OctSymPy: pacote simbólico para Octave que usa SymPy.
- Optlang: pacote em Python para resolver problemas de otimização matemática.
- PyDy: dinâmica de múltiplos corpos em Python.
- pyneqsys: definido simbolicamente para resolver numericamente sistemas de equações não lineares.
- pyodesys: integração numérica simples de sistemas de ODE em Python.
- PyTorch TorchInductor: TorchInductor usa SymPy para dar suporte a formas e strides dinâmicos.
- QMCPACK: Monte Carlo quântico em C++; usa SymPy para gerar valores de referência para testes unitários e alguma geração de código.
- Quantum Programming in Python: oscilador harmônico simples quântico 1D e portas de mapeamento quântico.
- SageMath: sistema matemático de código aberto que inclui o SymPy.
- Scikit-fdiff: discretização por diferenças finitas.
- SfePy: elementos finitos simples em Python.
- Spyder: ambiente científico de desenvolvimento Python equivalente ao Rstudio ou MATLAB; oferece suporte completo ao SymPy no console IPython do Spyder.
- Symbolic statistical modeling: adiciona operações estatísticas a modelos físicos complexos.
- yt: pacote em Python para analisar e visualizar dados volumétricos (o sistema de unidades unyt, do yt, usa SymPy).
Opinião do GN⁺
- O SymPy é oferecido gratuitamente sob licença BSD e, por ser baseado em Python, é uma biblioteca de operações matemáticas familiar para usuários de Python. Isso o torna especialmente ativo na comunidade open source e vantajoso para uso em diversas áreas científicas e de engenharia.
- O SymPy é leve e pode ser integrado facilmente a outras aplicações, oferecendo flexibilidade para que usuários resolvam problemas matemáticos complexos ou o expandam adicionando suas próprias funções.
- Ao adotar essa tecnologia, é necessário ter um entendimento básico de Python, e ela mostra seu valor especialmente em projetos nos quais modelagem matemática ou computação simbólica são importantes.
- Os benefícios de usar o SymPy incluem operações matemáticas de alto desempenho, escalabilidade para várias áreas e melhoria contínua com o suporte da comunidade open source.
- Outros projetos com funcionalidades semelhantes incluem Mathematica, Maple e o Symbolic Math Toolbox do MATLAB, mas como são softwares comerciais, o SymPy pode ser uma alternativa gratuita e poderosa.
1 comentários
Comentários do Hacker News
sympy, é possível calcular esses vetores grandes de forma declarativa, calcular os jacobianos e exportar o resultado como código C para incorporar imediatamente ao código. Por exemplo, há um exemplo simples mostrando como expressar declarativamente uma forma de estimar a posição de um sensor em relação ao centro do robô, caso você tenha acesso a um conjunto de dados com a posição do robô e a posição do sensor. Para isso, basta definir as funçõestransformeinvert.solve,expand,factoretc.). Há um pequeno tutorial para quem quer começar, e ele também está disponível no formato de notebook executável. Além disso, para quem quiser experimentar o SymPy sem instalar nada, existe o SymPy Live Shell, que permite rodar Python + SymPy no navegador.