SymPy is an open source Python library for symbolic mathematics.
It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible.
SymPy is written entirely in Python.
Key Features
- Core functionality:
- Basic arithmetic: Support for operators such as +, -, *, /, ** (power).
- Simplification Trigonometry, Polynomials.
- Expansion: of a polynomial .
- Functions: trigonometric, hyperbolic, exponential, roots, logarithms, absolute value, spherical harmonics, factorials and gamma functions, zeta functions, polynomials, special functions, …
- Substitution:.
- Numbers: arbitrary precision integers, rationals, and floats.
- Non-commutative symbols.
- Pattern matching.
- Polynomials.
- Calculus:
- Limits: limit(x*log(x), x, 0) -> 0
- Differentiation
- Integration: It uses extended Risch-Norman heuristic.
- Taylor (Laurent) series
- Solving polynomial, algebraic, differential, difference, systems of, and diophantine equations.
- Combinatorics – permutations, combinations, partitions, subsets, permutation groups, and Prufer and Gray codes.
- Discrete mathematics – binomial coefficients, summations, products, number theory, and logic expressions.
- Matrices – basic arithmetic, eigenvalues / eigenvectors, determinants, inversion, solving, and abstract expressions.
- Geometric algebra.
- Geometry – points, lines, rays, segments, ellipses, circles, polygons. Intersection, tangency, and similarity are also supported.
- Plotting – coordinate modes, plotting geometric entities, 2D and 3D, interactive interface, colours, and mathplotlib support.
- Physics – units, mechanics, quantum, Gaussian optics, and Pauli algebra.
- Statistics:
- Random variable types:
- Normal distributions.
- Uniform distributions.
- Bernoulli distributions.
- Binomial distributions.
- Hypergeometric distributions.
- Probability.
- Expected value and variance.
- Probability density.
- Random variable types:
- Cryptography:
- Shift cipher.
- Affine cipher.
- Bifid ciphers.
- Vigenere’s cipher.
- Substitution ciphers.
- Hill’s cipher.
- RSA.
- Kid RSA.
- Linear feedback shift registers.
- ElGamal encryption.
- Parsing:
- Conversion from Python objects to SymPy objects.
- Optional implicit multiplication and function application parsing.
- Limited Mathematica and Maxima parsing.
- Custom parsing transformations.
- Printing, with pretty printing, code generation (C, Fortran, Python), and Theano interaction.
Website: www.sympy.org
Support: Documentation, Mailing List, Gitter, GitHub Code Repository
Developer: SymPy Development Team
License: New BSD License
SymPy is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Python Mathematics Tools | |
|---|---|
| scikit-learn | Machine learning library for Python |
| NumPy | Core package for scientific computing with Python |
| SciPy | Ecosystem for mathematics, science, and engineering. |
| statsmodels | Statistical modeling and econometrics |
| JAX | Python library for high-performance numerical computing |
| SageMath | Computer algebra system |
| SymPy | Library for symbolic mathematics |
| PyMC | Bayesian statistical modeling and probabilistic programming |
| Pyomo | Object-oriented algebraic modeling language |
| patsy | Package for describing statistical models and to build design matrices |
| mpmath | Library for arbitrary-precision floating-point arithmetic |
| SfePy | Finite element software package |
Read our verdict in the software roundup.
| Computer Algebra Systems | |
|---|---|
| Scilab | Numerical computational package |
| Maxima | System for the manipulation of symbolic and numerical expressions |
| Octave | Powerful programming language with built-in plotting and visualization tools |
| SageMath | Open source alternative to Magma, Maple, Mathematica and Matlab |
| SymPy | Python library for symbolic mathematics |
| SINGULAR | Computer Algebra System for polynomial computations |
| Macaulay2 | Software system for research in algebraic geometry |
| Cadabra | Symbolic computer algebra system for field theory problems |
| PARI/GP | Widely used algebra system designed for fast computations in number theory |
| GAP | System for computational discrete algebra |
| FriCAS | Fork of Axiom |
| CoCoA | System for doing computations in commutative algebra |
| Mathics | General-purpose CAS with Mathematica-compatible syntax and functions |
| FORM | Symbolic Manipulation System |
| Nelson | Numerical computational language |
| wxMaxima | GUI for the sublime Maxima CAS |
| Xcas | Cross-platform mathematical environment |
| REDUCE | General-purpose computer algebra system for symbolic computation |
| OSCAR | Comprehensive computer algebra system for advanced mathematics |
| Axiom | General purpose Computer Algebra system |
| Symja | Computer algebra system and symbolic mathematics library |
| CGSuite | For research in combinatorial game theory |
| Eigenmath | Compact symbolic mathematics and computer algebra application |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.