# Getting started with sympy

## Installing SymPy #

The easiest and recommended way to install SymPy is to install Anaconda.

If you already have Anaconda or Miniconda installed, you can install the latest version with conda:

``````conda install sympy
``````

Another way of installing SymPy is using pip:

``````pip install sympy
``````

Note that this might require root privileges, so one might acually need

``````sudo pip install sympy
``````

Most linux distributions also offer SymPy in their package repositories. For Fedora one would install SymPy with

``````sudo dnf install python-sympy
sudo dnf install python3-sympy
``````

The first one installs the python 2 version of the package, the latter python 3.

On OpenSuse the respective commands are:

``````sudo zypper install python-sympy
sudo zypper install python3-sympy
``````

The packages for OpenSuse 42.2 seem rather outdated, so one of the first methods should be prefered.

## Integration and Differentiation #

Sympy is made for symbolic math, so let’s have a look at some basic integration and differentiation.

``````from sympy import symbols, sqrt, exp, diff, integrate, pprint

x, y = symbols('x y', real=True)

pprint(diff(4*x**3+exp(3*x**2*y)+y**2,x))
pprint(diff(4*x**3+exp(3*x**2*y)+y**2,y))
pprint(integrate(exp(x*y**2)+sqrt(x)*y**2,x))
pprint(integrate(exp(x*y**2)+sqrt(x)*y**2,y))
``````

First we import the necessary functions from sympy. Next we define our variables x and y. Note that these are considered complex by default, so we tell sympy that we want a simple example by making them real. Next we differentiate some expression with respect to x and then y. Finally we integrate some expression, again with respect to x and then y. The call of `pprint` ensures that our functions get written in some nice human readable style.

## Alternate installation (not conda) #

Alternate ways to install SymPy from conda. conda is the recommended way, but these are some alternate ways. Including: git, pip, etc.

## ‘Hello World’ #

Sympy is a Python library for doing symbolic — rather than numeric — calculations.

For instance, consider the quadratic equation in x,

x**2 + HELLO * x + WORLD = 0

where HELLO and WORLD are constants. What’s the solution of this equation?

In Python, using Sympy we can code,

``````from sympy import symbols, solve, latex

x, HELLO, WORLD = symbols('x, HELLO, WORLD')
print ( latex ( solve ( x**2 + HELLO * x + WORLD, x ) ) )
``````

Since I made a call to Latex the solutions are almost ready for publication! Sympy provides the two of them packed in a list. Here’s one: If you need to do more work on an expression then you would leave out the call to latex.