Symbolic Computation with Python using SymPy
Yathartha Joshi (~Yathartha22) |
In this tutorial we will introduce attendees to SymPy, a computer algebra system (CAS) written in Python. We will show basics of constructing and manipulating mathematical expressions in SymPy, the most common issues and differences from other computer algebra systems, and how to deal with them. In the last part of this tutorial, we will show how to solve practical problems with SymPy. This will include showing how to interface SymPy with popular numeric libraries like NumPy.
Attendees will take home an introductory level understanding of SymPy. This knowledge should be enough for attendees to start using SymPy for solving mathematical problems and hacking SymPy's internals (though hacking core modules may require additional expertise).
SymPy is a pure Python library for symbolic computation. 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. The tutorial will cover the following topics and more.
- What is Symbolic Computation?
- A More Interesting Example
- The Power of Symbolic Computation
- Why SymPy?
- Equals signs
- Two Final Notes: ^ and /
- Basic Operations
- Converting Strings to SymPy Expressions
- Setting up Pretty Printing
- Printing Functions
- Polynomial/Rational Function Simplification
- Trigonometric Simplification
- Exponentials and logarithms
- Special Functions
- Series Expansion
- Finite differences
- A Note about Equations
- Solving Equations Algebraically
- Solving Differential Equations
- Basic Operations
- Basic Methods
- Matrix Constructors
- Advanced Methods
- Advanced Expression Manipulation
- Understanding Expression Trees
- Recursing through an Expression Tree
The tutorial will only assume a basic knowledge of Python. No prior knowledge of SymPy or other Python libraries is required, although it is suggested that attendees be familiar with the IPython notebook. A mathematical knowledge of calculus is recommended.
We recommend that the attendees install the Anaconda Python distribution which includes SymPy, NumPy, and IPython. Once Anaconda is installed simply type the following in a terminal to install the necessary packages:
$ conda install numpy ipython-notebook sympy
Other alternative installation instructions can be found here: http://docs.sympy.org/dev/install.html
SymPy team has developed and delivered many talks and tutorials at SciPy and other conferences. We are constantly building on new content and improving the present at the same time. The website for the workshop is here. You can find the introduction slides here, the sphinx tutorial here and the exercises in form of IPython notebooks.
Note: The notebooks are hosted statically, you can download from here and run locally to have an interactive session.
SymPy India developers will be conducting the workshop:
- Shekhar Prasad Rajak: GSoC 2016 | Solvers
- Sidhant Nagpal: NSIT Delhi | Core Developer at SymPy, GSoC 2018 | Discrete module
- Yathartha Joshi: BTKIT Dwarahat | Core Developer at SymPy, GSoC 2018 | Solvers Module
- Ravicharan: IIIT Allahabad | Core Developer at SymPy, GSoC 2018 | Combinatorics module
- Jashanpreet Singh: TIET Patiala | Core Developer at SymPy, GSoC 2018 | Beam Bending module
- Resource repository: https://git.io/sympy-pycon-india-18
- SymPy website: http://www.sympy.org/en/index.html
- SymPy live: http://live.sympy.org/
- GitHub repository: https://github.com/sympy/sympy
Link to previous SymPy Tutorials/Talks
- Automatic Code Generation with SymPy, SciPy 2017: https://youtu.be/5jzIVp6bTy0
- SymPy, EuroSciPy 2017: https://youtu.be/nfRyux3wEhw
- Symbolic Compution with Python using SymPy Beginner, SciPy 2016: https://youtu.be/AqnpuGbM6-Q
- SymPy, SciPy 2014: https://youtu.be/Lgp442bibDM
- Symbolic Computing with SymPy, SciPy 2013: https://youtu.be/dAgShwIx72c