Question: Using subs for the upper boundary of a sum in plot

Hi everyone,

I wanted to plot the fourier series up to a given order of a step function using the code I attached, to change the order I used a sum with upper boundary M. When setting M to a particular value and plotting the function the result is obtained within a second, when on the otherhand using plot(subs(M=11,...),...) it takes close to a minute to produce a picture.

This might be a misuse of subs, in any case, I wanted to share my experience and maybe get an explanation about why this takes that much longer.

Cheers,

Sören

restart

f := proc (t) options operator, arrow; sum(-4*sin((2*n+1)*t)/(Pi*(2*n+1)), n = 0 .. M) end proc

proc (t) options operator, arrow; sum(-4*sin((2*n+1)*t)/(Pi*(2*n+1)), n = 0 .. M) end proc

(1)

plot(subs(M = 11, f(t)), t = 0 .. 2*Pi)

 

M := 11; plot(f(t), t = 0 .. 2*Pi)

 

Download fourier_subs.mw

Please Wait...