Happy it helped ;-)

Le mardi 25 août 2020 à 21:42:17 UTC+2, sandona...@gmail.com a écrit :

> Hello Mike,
>
> thank you very much, you really helped me! I was too focused exploring the 
> different methods, and the solution was just under my nose. Thank you! :)
>
> Of course, the example I've chosen (the square wave) takes a tremendous 
> amount of time to be solved by Sympy. Anyway, I tried a sawtooth wave and 
> it works great! Thank you again!
>
> Davide.
>
>
> Il giorno mar 25 ago 2020 alle ore 18:48 mikhae...@umontpellier.fr <
> mikhae...@umontpellier.fr> ha scritto:
>
>> 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, sandona...@gmail.com 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 sympy+un...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sympy/44d21160-2242-4b1c-9d45-7436e0935181n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sympy/44d21160-2242-4b1c-9d45-7436e0935181n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/c8a402c1-bdc9-4273-a4f5-3972f41bce2bn%40googlegroups.com.

Reply via email to