Maple Three Coursework - Inner product, Fourier series
The following code is to define the fourier()
procedure, It takes as it's input; a function to apply the fourier process to, and a number.
My code declares the variables k
a
and b
as local to the procedure, then sets g
to a0. While looping through k
, the procedure adds ak and bk to g (there is no special case for b0).
fourier:= proc(f, n) local k, a, b; g:= (1/(2*Pi))*(int(f, x=-Pi..Pi)); for k from 1 to n do a:= ((1/Pi)*int(f*cos(k*x), x=-Pi..Pi))*cos(k*x); b:= ((1/Pi)*int(f*sin(k*x), x=-Pi..Pi))*sin(k*x); g:= g + a + b; od; eval(g); end:
I am really not sure why this works but the end result of this rather complicated equation, is that you start of with a function which displays a graph; the fourier series starts as either a sin or a cos wave then gradually fits itself to approximate your original function.
For more detailed explanations than mine, have a look at this site it even has an interactive applet to play with :)