Link Search Menu Expand Document (external link)

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

See all solutions.

Task

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?

Related tasks:

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}$

Content last modified on 24 July 2023.

See a problem? Tell us or edit the source.

Contributed by Nathan Carter (ncarter@bentley.edu)