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
698 Citations
sympy2c: from symbolic expressions to fast C/C++ functions and ODE solvers in Python
- Computer ScienceArXiv
- 2022
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
- Computer Science2020 10th International Conference on Cloud Computing, Data Science & Engineering (Confluence)
- 2020
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
- Computer ScienceNature Methods
- 2020
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
- Mathematics
- 2021
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
- Computer SciencePeerJ Prepr.
- 2019
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.
- Computer SciencePeerJ. Computer science
- 2019
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
- Physics
- 2021
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
- Computer Science
- 2022
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
- Computer ScienceJ. Open Source Softw.
- 2018
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
- Mathematics, Computer Science
- 2017
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
- Computer ScienceComputing 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
- Computer ScienceComput. Phys. Commun.
- 2007
Learning Python
- Computer Science
- 1999
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
- Computer ScienceComputing in Science & Engineering
- 2007
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
- PhysicsArXiv
- 2014
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
- Computer Science
- 2017
The following example computes 50 digits of pi by numerically evaluating the Gaussian integral with mpmath.
Domain Specific Languages
- Computer Science
- 2010
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
- Computer Science, MathematicsSIGS
- 2005
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
- Computer Science
- 1996
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
- Computer ScienceISSAC '04
- 2004
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.