Fourier series of a 2step function?



On Sept. 17, Edwin Woollett wrote:

>(%i7) bn : ( (1/10)*(integrate( -5*sin(n*%pi*x/10), x, -5, 0 ) +
>            integrate( 5*sin(n*%pi*x/10), x, 0, 5 )  ),
>            ratsimp(%%) );
>(%o7) -( 10*cos(%pi*n/2) - 10 )/(%pi*n)
>/* get a Maxima function using expressions bn  */
>(%i8) define( b(n), bn );
>(%o8) b(n) := -( 10*cos(%pi*n/2) - 10 )/(%pi*n)
>
>/* what are the first seven coefficients?  */
>
>(%i9) (bnlist : [], for i thru 7 do bnlist : cons( b(i), bnlist ),
>                                reverse( bnlist )  );
>(%o9) [ 10/%pi,  10/%pi,  10/(3*%pi),  0,
>                       2/%pi,  10/(3*%pi),  10/(7*%pi)  ]
>
getting that list of b(n) values was too complicated!!

Just use map and makelist:

(%i9) map( 'b, makelist( i, i, 1, 7 ) );
(%o9) [10/%pi, 10/%pi, 10/(3*%pi), 
               0, 2/%pi, 10/(3*%pi), 10/(7*%pi) ]

Likewise with fs(nmax):

(%i10) fs(nmax) :=  sum( b(m)*sin(m*%pi*x/10), m, 1, nmax )$
(%i11) map( 'fs, [ 1, 2, 3 ] );

(%o11) [ 10*sin(%pi*x/10)/%pi,  
              10*sin(%pi*x/5)/%pi + 10*sin(%pi*x/10)/%pi,
        10*sin(3*%pi*x/10)/(3*%pi) + 10*sin(%pi*x/5)/%pi + 
                                           10*sin(%pi*x/10)/%pi ]

Ted Woollett