# How to define a mathematical series (in Python, using SymPy)

See all solutions.

In mathematics, a series is a sum of values from a sequence, typically real numbers. Finite series are written as $a_0+a_1+\cdots+a_n$, or

$\sum_{i=0}^n a_i.$

Infinite series are written as $a_0+a_1+a_2+\cdots$, or

$\sum_{n=0}^\infty a_n.$

How can we express series in mathematical software?

## Solution

This answer assumes you have imported SymPy as follows.

1
2
from sympy import *                   # load all math functions
init_printing( use_latex='mathjax' )  # use pretty math output


We define here the same sequence we defined in the task entitled how to define a mathematical sequence.

1
2
3
4
var( 'n' )                       # use n as a symbol
a_n = 1 / ( n + 1 )              # formula for a term
seq = sequence( a_n, (n,0,oo) )  # build the sequence
seq


$\displaystyle \left[1, \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \ldots\right]$

We can turn it into a mathematical series by simply replacing the word sequence with the word Sum. This does not compute the answer, but just writes the series for us to view. In this case, it is an infinite series.

1
Sum( a_n, (n,0,oo) )


$\displaystyle \sum_{n=0}^{\infty} \frac{1}{n + 1}$

You can compute the answer by appending the code .doit() to the above code, which asks SymPy to “do” (or evaluate) the sum.

1
Sum( a_n, (n,0,oo) ).doit()


$\displaystyle \infty$

In this case, the series diverges.

We can also create and evaluate finite series by replacing the oo with a number.

1
Sum( a_n, (n,0,10) ).doit()


$\displaystyle \frac{83711}{27720}$