Dear Sandona,
I am not a skilled Sympy user. However, I guess the fact that you do not
give the periodicity does not allow sympy to compute the Fourier Series. I
did this that seems satisfactory :
from sympy import *
x, n = symbols("x, n")
N = 10
expr = 2 * (Heaviside(x / 2) - Heaviside(x / 2 -1)) - 1
fs = fourier_series(expr,(x,-2,2))
wolfram = 4 / pi * sin(n * pi * x / 2) / n
wolfram_expr = 0
for i in range(1, N + 1):
if i % 2 != 0:
wolfram_expr += (4 / pi * sin(n * pi * x / 2) / n).subs(n, i)
plot(expr, fs.truncate(N/2), wolfram_expr, (x, -5, 5))
Moreover, I guess (I did not check in Sympy documentation) that Sympy only
displays non-zero harmonics on "truncate" ?
Hope this helps,
Mike
Le mardi 25 août 2020 à 14:56:28 UTC+2, [email protected] a écrit :
> Hello everyone,
>
> Today I decided to refresh my knowledge of Fourier Expansion. I tried to
> use Sympy but I'm not sure if the result is correct or if I did something
> wrong, so I need a fresh pair of eyes on this :)
> I was following the "Fourier Series of a Square Wave" in the Wolfram
> documentation [1], and I compare the result with Sympy. Here is the code
> and the picture.
>
> x, n = symbols("x, n")
> N = 10
> expr = 2 * (Heaviside(x / 2) - Heaviside(x / 2 - 1)) - 1
> fs = expr.fourier_series()
> wolfram = 4 / pi * sin(n * pi * x / 2) / n
> wolfram_expr = 0
> for i in range(1, N + 1):
> if i % 2 != 0:
> wolfram_expr += (4 / pi * sin(n * pi * x / 2) / n).subs(n, i)
> plot(expr, fs.truncate(N), wolfram_expr, (x, -5, 5))
>
> [image: Figure 70.png]
>
>
>
> Did I do something wrong?
> Thanks for you time! :)
>
> [1] https://mathworld.wolfram.com/FourierSeriesSquareWave.html
>
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/44d21160-2242-4b1c-9d45-7436e0935181n%40googlegroups.com.