A full-featured computer algebra system (CAS) written in pure Python for symbolic mathematics.
SymPy is a Python library for symbolic mathematics, providing a full-featured computer algebra system (CAS) entirely in Python. It allows users to perform algebraic manipulations, calculus, equation solving, and discrete mathematics symbolically, enabling exact computations rather than numerical approximations. It integrates seamlessly with the Python scientific stack, making it accessible for research, education, and engineering applications.
Scientists, engineers, researchers, educators, and students who need to perform symbolic mathematics within a Python environment, particularly those in fields like physics, mathematics, and engineering.
SymPy offers a free, open-source alternative to expensive proprietary CAS software, with the advantage of being written entirely in Python for easy integration, extensibility, and a gentle learning curve compared to systems like Mathematica or Maple.
A computer algebra system written in pure Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written entirely in Python, SymPy installs easily via pip or conda and integrates seamlessly with the scientific Python ecosystem, as emphasized in the installation and philosophy sections.
Provides a wide range of functions for algebra, calculus, equation solving, and discrete math, making it a full-featured computer algebra system, as listed in the key features.
Supported by contributions from Google Summer of Code and a welcoming community on Gitter, ensuring continuous development and accessible support, as noted in the history and community chat.
Can generate LaTeX code for documentation and convert expressions to languages like C or Fortran, facilitating academic publishing and code integration, from the code generation feature.
Symbolic computations can be slower for large or complex expressions compared to compiled CAS systems like Mathematica, and SymPy's lightweight design may impact speed for intensive tasks.
Regenerating the experimental LaTeX parser requires ANTLR toolchain setup, which is non-trivial and mentioned as needing external tools, potentially hindering advanced modifications.
While extensive, some modules like plotting or advanced physics might not be as robust or user-friendly as in Mathematica or Maple, as it relies on community-driven development.
SymPy is an open-source alternative to the following products:
Maple is a symbolic and numeric computing environment and programming language developed by Maplesoft, used for mathematics, engineering, and scientific research.
Mathematica is a proprietary computational software system developed by Wolfram Research used for symbolic and numeric computation, visualization, and programming.
MATLAB Symbolic Math Toolbox is a MathWorks toolbox that provides functions for solving, simplifying, and manipulating symbolic mathematical expressions and equations.