SymPy: Symbolic computing in Python

@article{Meurer2016SymPySC,
  title={SymPy: Symbolic computing in Python},
  author={Aaron Meurer and Christopher P. Smith and Mateusz Paprocki and Ondrej Cert{\'i}k and Sergey B. Kirpichev and Matthew Rocklin and Amit Kumar and Sergiu Ivanov and Jason Keith Moore and Sartaj Singh and Thilina Rathnayake and Sean Vig and Brian E. Granger and Richard P. Muller and Francesco Bonazzi and Harsh Gupta and Shivam Vats and Fredrik Johansson and Fabian Pedregosa and Matthew J. Curry and Andy R. Terrel and {\vS}těp{\'a}n Rou{\vc}ka and Ashutosh Saboo and Isuru Fernando and Sumith Kulal and Robert Cimrman and Anthony M. Scopatz},
  journal={PeerJ Prepr.},
  year={2016},
  volume={4},
  pages={e2083}
}
SymPy is an open source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become the standard symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select domain specific submodules. The supplementary materials provide additional examples and… 

Figures from this paper

sympy2c: from symbolic expressions to fast C/C++ functions and ODE solvers in Python
Computer algebra systems play an important role in science as they facilitate the development of new theoretical models. The resulting symbolic equations are often implemented in a compiled
Parsing C and Fortran code to SymPy Expressions
  • N. Maan, Prabhishek Singh
  • Computer Science
    2020 10th International Conference on Cloud Computing, Data Science & Engineering (Confluence)
  • 2020
TLDR
This paper provides a framework to convert source code from these programming languages into symbolic expressions compatible with SymPy and implementations for converting mathematical expressions written in C and Fortran Programming languages into SymPy Expressions using C andFortran parsers.
SciPy 1.0: fundamental algorithms for scientific computing in Python
TLDR
An overview of the capabilities and development practices of SciPy 1.0 is provided and some recent technical developments are highlighted.
Computer Algebra in R with caracas
The capability of R to do symbolic mathematics is enhanced by the caracas package. This package uses the Python computer algebra library SymPy as a back-end but caracas is tightly integrated in the R
Component-oriented acausal modeling of the dynamical systems in Python language on the example of the model of the sucker rod string
TLDR
The paper suggests the principle of developing simple to understand and modify Modelica-like system based on the general-purpose programming language Python, which simplifies the understanding of the system, its modification and improvement, adaptation for other purposes, makes it available to a much larger community, simplifies integration into third-party software.
Component-oriented acausal modeling of the dynamical systems in Python language on the example of the model of the sucker rod string.
TLDR
The paper suggests the principle of developing simple to understand and modify Modelica-like system based on the general-purpose programming language Python, which simplifies the understanding of the system, its modification and improvement, adaptation for other purposes, makes it available to a much larger community, simplifies integration into third-party software.
Two useful Python tools and their application in Physics
Python has become a popular programming language among physicists and students/researchers of other fields as well. However, Python still needs improvement to provide ease of use in physical
DisCoPy for the quantum computer scientist
TLDR
This work reviews the recent developments of the library in this direction, making DisCoPy a toolbox for the quantum computer scientist.
unyt: Handle, manipulate, and convert data with units in Python
TLDR
unyt, a Python library based on NumPy and SymPy for handling data that has units, is presented, designed both to aid quick interactive calculations and to be tightly integrated into a larger Python application or library.
A Computer Algebra System for R: Macaulay2 and the m2r Package
Algebraic methods have a long history in statistics. The most prominent manifestation of modern algebra in statistics can be seen in the field of algebraic statistics, which brings tools from
...
...

References

SHOWING 1-10 OF 158 REFERENCES
Python for Scientific Computing
  • T. Oliphant
  • Computer Science
    Computing in Science & Engineering
  • 2007
Python is an excellent "steering" language for scientific codes written in other languages. However, with additional basic tools, Python transforms into a high-level language suited for scientific
Cadabra: a field-theory motivated symbolic computer algebra system
  • K. Peeters
  • Computer Science
    Comput. Phys. Commun.
  • 2007
Learning Python
TLDR
This book starts with a thorough introduction to the elements of Python: types, operators, statements, functions, modules, and exceptions, and shows how Python performs common tasks and presents real applications and the libraries available for those applications.
IPython: A System for Interactive Scientific Computing
TLDR
The IPython project provides on enhanced interactive environment that includes, among other features, support for data visualization and facilities for distributed and parallel computation.
SfePy - Write Your Own FE Application
TLDR
This paper illustrates the use of FeSfePy (Simple Finite Elements in Python) in an interactive environment or as a framework for building custom finite-element based solvers.
mpmath: a Python library for arbitrary-precision floating-point arithmetic
TLDR
The following example computes 50 digits of pi by numerically evaluating the Gaussian integral with mpmath.
Domain Specific Languages
TLDR
A number of DSLs spanning various phases of software development life cycle in terms of features that elucidates their advantages over general purpose languages and perform in depth study by practically applying a few open source DSLs: ‘Cascading’, Naked Objects Framework and RSpec.
SAGE: system for algebra and geometry experimentation
SAGE is a framework for number theory, algebra, and geometry computation that is initially being designed for computing with elliptic curves and modular forms. The current implementation is primarily
The Mathematica Book
From the Publisher: Mathematica has defined the state of the art in technical computing for over a decade, and has become a standard in many of the world's leading companies and universities. From
Understanding expression simplification
TLDR
The first formal definition of the concept of simplification for general expressions in the context of Computer Algebra Systems is given, which shows how this theory can justify the use of various "magic constants" for deciding between some equivalent representations of an expression.
...
...