Maths

SymPy – Python library for symbolic mathematics

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.
  • 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-learnMachine learning library for Python
NumPyCore package for scientific computing with Python
SciPyEcosystem for mathematics, science, and engineering.
statsmodelsStatistical modeling and econometrics
SymPyLibrary for symbolic mathematics
SageMathComputer algebra system
patsyPackage for describing statistical models and to build design matrices
mpmathLibrary for arbitrary-precision floating-point arithmetic

Read our verdict in the software roundup.

Computer Algebra Systems
ScilabNumerical computational package
MaximaSystem for the manipulation of symbolic and numerical expressions
OctavePowerful programming language with built-in plotting and visualization tools
SageMathOpen source alternative to Magma, Maple, Mathematica and Matlab
SymPyPython library for symbolic mathematics
SINGULARComputer Algebra System for polynomial computations
Macaulay2Software system for research in algebraic geometry
CadabraSymbolic computer algebra system for field theory problems
PARI/GPWidely used algebra system designed for fast computations in number theory
GAPSystem for computational discrete algebra
FriCASFork of Axiom
CoCoASystem for doing computations in commutative algebra
MathicsGeneral-purpose CAS with Mathematica-compatible syntax and functions
FORMSymbolic Manipulation System
NelsonNumerical computational language
wxMaximaGUI for the sublime Maxima CAS
XcasCross-platform mathematical environment
REDUCEGeneral-purpose computer algebra system for symbolic computation
AxiomGeneral purpose Computer Algebra system
SymjaComputer algebra system and symbolic mathematics library
CGSuiteFor research in combinatorial game theory

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments