About
SymPy is a 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 and does not require any external libraries.
Google Summer of Code (GSoC) 2013
SymPy is a mentoring organization for GSoC 2013. Apply now, the deadline is May 2, 2013. See the G+ announcement for links and information how to apply.
Features
Core capabilities
- Basic arithmetic: Support for operators such
as
+,-,*,/,**(power) - Simplification
- Expansion
- 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
- Noncommutative symbols
- Pattern matching
Polynomials
- Basic arithmetic: division, gcd, ...
- Factorization
- Square-free decomposition
- Gröbner bases
- Partial fraction decomposition
- Resultants
Calculus
-
Limits:
limit(x*log(x), x, 0) -> 0 - Differentiation
- Integration: It uses extended Risch-Norman heuristic
- Taylor (Laurent) series
Solving equations
- Polynomial equations
- Algebraic equations
- Differential equations
- Difference equations
- Systems of equations
Combinatorics
- Permutations
- Combinations
- Partitions
- Subsets
- Permutation Groups: Polyhedral, Rubik, Symmetric, ...
- Prufer and Gray Codes
Discrete math
- Binomial coefficients
- Summations
- Products
- Number theory: generating prime numbers, primality testing, integer factorization, ...
- Logic expressions
Matrices
- Basic arithmetic
- Eigenvalues/eigenvectors
- Determinants
- Inversion
- Solving
- Abstract expressions
Geometric Algebra
Geometry
- points, lines, rays, segments, ellipses, circles, polygons, ...
- Intersection
- Tangency
- Similarity
Plotting
- Coordinate modes
- Plotting Geometric Entities
- 2D and 3D
- Interactive interface
- Colors
Physics
- Units
- Mechanics
- Quantum
- Gaussian Optics
- Pauli Algebra
Statistics
- Normal distributions
- Uniform distributions
- Probability
Printing
- Pretty printing: ASCII/Unicode pretty printing, LaTeX
- Code generation: C, Fortran, Python
SymPy