In [1]:
import sympy as s
s.init_printing()
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

In [2]:
s.var('x,F0,T,w',real=True,positive=True)
i = s.var('i',integer=True,positive=True)
x1 = T/10
x2 = 2*T/5
x3 = T/2
x4 = T
y1 = F0
m1 = y1/x1
m2 = -m1*x1/(x3-x2)
#w = 2*s.pi*i/T

f = s.Piecewise(
        (m1*x,x<x1),
        (y1,x<x2),
        (m2*(x-x3),x<x3),
        (0,x<=x4))

In [5]:
(2/T * s.integrate(f*s.cos(w*x),(x,0,x1))).expand()


Out[5]:
$$\frac{2 F_{0}}{T w} \sin{\left (\frac{T w}{10} \right )} + \frac{20 F_{0}}{T^{2} w^{2}} \cos{\left (\frac{T w}{10} \right )} - \frac{20 F_{0}}{T^{2} w^{2}}$$

In [3]:
f


Out[3]:
$$\begin{cases} \frac{10 F_{0}}{T} x & \text{for}\: x < \frac{T}{10} \\F_{0} & \text{for}\: x < \frac{2 T}{5} \\- \frac{10 F_{0}}{T} \left(- \frac{T}{2} + x\right) & \text{for}\: x < \frac{T}{2} \\0 & \text{for}\: x \leq T \end{cases}$$

In [11]:
2/T * s.integrate(f*s.sin(w*x),(x,0,x4))


Out[11]:
$$\frac{1}{T} \left(\frac{2 F_{0}}{w} \cos{\left (\frac{T w}{10} \right )} - \frac{2 F_{0}}{w} \cos{\left (\frac{2 T}{5} w \right )} + \frac{20 F_{0}}{T} \left(- \frac{T}{10 w} \cos{\left (\frac{T w}{10} \right )} + \frac{1}{w^{2}} \sin{\left (\frac{T w}{10} \right )}\right) + \frac{20 F_{0}}{T} \left(\frac{T}{10 w} \cos{\left (\frac{2 T}{5} w \right )} + \frac{1}{w^{2}} \sin{\left (\frac{2 T}{5} w \right )}\right) - \frac{20 F_{0}}{T w^{2}} \sin{\left (\frac{T w}{2} \right )}\right)$$

In [10]:
2/T * s.integrate(f,(x,0,x4))


Out[10]:
$$\frac{4 F_{0}}{5}$$

In [ ]:


In [47]:
print("$a_i = "+s.latex(ai)+"$")


$a_i = \frac{1}{T} \left(- \frac{5 \left(-1\right)^{i} F_{0} T}{\pi^{2} i^{2}} - \frac{F_{0} T}{\pi i} \sin{\left (\frac{\pi i}{5} \right )} + \frac{F_{0} T}{\pi i} \sin{\left (\frac{4 \pi}{5} i \right )} - \frac{5 F_{0} T}{\pi^{2} i^{2}} + \frac{20 F_{0}}{T} \left(\frac{T^{2} \sin{\left (\frac{\pi i}{5} \right )}}{20 \pi i} + \frac{T^{2} \cos{\left (\frac{\pi i}{5} \right )}}{4 \pi^{2} i^{2}}\right) + \frac{20 F_{0}}{T} \left(- \frac{T^{2}}{20 \pi i} \sin{\left (\frac{4 \pi}{5} i \right )} + \frac{T^{2}}{4 \pi^{2} i^{2}} \cos{\left (\frac{4 \pi}{5} i \right )}\right)\right)$

In [48]:
print("$b_i = "+s.latex(bi)+"$")


$b_i = \frac{1}{T} \left(- \frac{5 \left(-1\right)^{i} F_{0} T}{\pi^{2} i^{2}} - \frac{F_{0} T}{\pi i} \sin{\left (\frac{\pi i}{5} \right )} + \frac{F_{0} T}{\pi i} \sin{\left (\frac{4 \pi}{5} i \right )} - \frac{5 F_{0} T}{\pi^{2} i^{2}} + \frac{20 F_{0}}{T} \left(\frac{T^{2} \sin{\left (\frac{\pi i}{5} \right )}}{20 \pi i} + \frac{T^{2} \cos{\left (\frac{\pi i}{5} \right )}}{4 \pi^{2} i^{2}}\right) + \frac{20 F_{0}}{T} \left(- \frac{T^{2}}{20 \pi i} \sin{\left (\frac{4 \pi}{5} i \right )} + \frac{T^{2}}{4 \pi^{2} i^{2}} \cos{\left (\frac{4 \pi}{5} i \right )}\right)\right)$

In [49]:
print("$a_0 = "+s.latex(a0)+"$")


$a_0 = \frac{4 F_{0}}{5}$

In [52]:
fs = s.fourier_series(f,(x,0,x4))


Out[52]:
$$\frac{4.0}{\pi^{2}} \sin{\left (\frac{\pi x}{2} \right )} - \frac{0.444444444444444}{\pi^{2}} \sin{\left (\frac{3 \pi}{2} x \right )} - \frac{4.0}{\pi^{2}} \cos{\left (\frac{\pi x}{2} \right )} - \frac{0.444444444444444}{\pi^{2}} \cos{\left (\frac{3 \pi}{2} x \right )} + 0.5 + \ldots$$

In [82]:
fsn = fs.truncate(n=5)
ff = s.lambdify(x,fsn)

In [83]:
fsn


Out[83]:
$$\frac{4.0}{\pi^{2}} \sin{\left (\frac{\pi x}{2} \right )} - \frac{0.444444444444444}{\pi^{2}} \sin{\left (\frac{3 \pi}{2} x \right )} + \frac{0.16}{\pi^{2}} \sin{\left (\frac{5 \pi}{2} x \right )} - \frac{0.0816326530612245}{\pi^{2}} \sin{\left (\frac{7 \pi}{2} x \right )} - \frac{4.0}{\pi^{2}} \cos{\left (\frac{\pi x}{2} \right )} - \frac{0.444444444444444}{\pi^{2}} \cos{\left (\frac{3 \pi}{2} x \right )} - \frac{0.16}{\pi^{2}} \cos{\left (\frac{5 \pi}{2} x \right )} - \frac{0.0816326530612245}{\pi^{2}} \cos{\left (\frac{7 \pi}{2} x \right )} + 0.5$$

In [84]:
xx = np.linspace(0,x4,1001)
yy = np.zeros_like(xx)
for i,xi in enumerate(xx):
    yy[i] = ff(xi)
plt.plot(xx,yy)


Out[84]:
[<matplotlib.lines.Line2D at 0x7f738fab2160>]