Example 1

We consider the triangle (or hat) function defined as :

$$f(x)=1-|x|,\qquad-1\le x<1$$

In order to calculate the Fourier series approximation we use SymPy package.

import sympy as sp
from sympy.abc import x

triangle = 1 - abs(x)
fourier = sp.fourier_series(triangle, (x, -1, 1))
approx = []
norder = 10

for order in range(norder):
    approx.append(fourier.truncate(n=order))
    display(approx[-1])

Which gives us:

$$ 0 $$ $$ \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{4 \cos{\left(7 \pi x \right)}}{49 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{4 \cos{\left(7 \pi x \right)}}{49 \pi^{2}} + \frac{4 \cos{\left(9 \pi x \right)}}{81 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{4 \cos{\left(7 \pi x \right)}}{49 \pi^{2}} + \frac{4 \cos{\left(9 \pi x \right)}}{81 \pi^{2}} + \frac{4 \cos{\left(11 \pi x \right)}}{121 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{4 \cos{\left(7 \pi x \right)}}{49 \pi^{2}} + \frac{4 \cos{\left(9 \pi x \right)}}{81 \pi^{2}} + \frac{4 \cos{\left(11 \pi x \right)}}{121 \pi^{2}} + \frac{4 \cos{\left(13 \pi x \right)}}{169 \pi^{2}} + \frac{1}{2} $$ $$ \frac{4 \cos{\left(\pi x \right)}}{\pi^{2}} + \frac{4 \cos{\left(3 \pi x \right)}}{9 \pi^{2}} + \frac{4 \cos{\left(5 \pi x \right)}}{25 \pi^{2}} + \frac{4 \cos{\left(7 \pi x \right)}}{49 \pi^{2}} + \frac{4 \cos{\left(9 \pi x \right)}}{81 \pi^{2}} + \frac{4 \cos{\left(11 \pi x \right)}}{121 \pi^{2}} + \frac{4 \cos{\left(13 \pi x \right)}}{169 \pi^{2}} + \frac{4 \cos{\left(15 \pi x \right)}}{225 \pi^{2}} + \frac{1}{2} $$

# uncomment the following line if you are using a Jupyter Notebook
#%config InlineBackend.figure_formats = ['svg']

s = sp.plot(triangle, (x, -1, 1),show = True, legend = False)
s[0].line_color = "red"

for series in approx:
    fs = sp.plot(series, (x, -1, 1), show=False, legend=False)
    fs[0].line_color = "black"
    s.append(fs[0])

s.show()