Mathematica 9 is now available
Student Support Forum
-----
Student Support Forum: 'Help with a Procedure' topicStudent Support Forum > General > Archives > "Help with a Procedure"

Next Comment >Help | Reply To Topic
Author Comment/Response
Jason
02/27/10 02:55am

Somehow when i'm compiling a procedure line by line it works out just fine but when i compile the procedure to work on the inputs automatically it doesn't work. can anyone point out what's wrong please ? - this procedure is set to manually work out the fourier series and plot it -

So: Line by line;

Clear[init, final, a, b, n, x, f, s]

f[x_] := Piecewise[{{-1, -Pi < x <= 0}, {1, 0 < x <= Pi}}]

s := Infinity

final := Pi

init := -Pi

interval := {init, final}

L := (interval[[2]] - interval[[1]])/2

a[n_] := 2/L Integrate[
f[x] Cos[(n Pi x)/L], {x, interval[[1]], interval[[2]]}]

b[n_] := 2/L Integrate[
f[x] Sin[(n Pi x)/L], {x, interval[[1]], interval[[2]]}]

FourierFunction :=
a[0]/2 + Sum[a[n] Cos[(n Pi x)/L] + b[n] Sin[(n Pi x)/L], {n, 1, s}]

Plot[FourierFunction, {x, init, final}]

Now for the procedure the pre-requisite is that the user inputs the function ... so :

Clear[init, final, a, b, n, x, f, s]

f[x_] := Piecewise[{{-1, -Pi < x <= 0}, {1, 0 < x <= Pi}}]

ProgFourier[init_,final_,s_]:=
(
interval := {init, final};

L := (interval[[2]] - interval[[1]])/2;

a[n_] := 2/L Integrate[
f[x] Cos[(n Pi x)/L], {x, interval[[1]], interval[[2]]}];

b[n_] := 2/L Integrate[
f[x] Sin[(n Pi x)/L], {x, interval[[1]], interval[[2]]}];

FourierFunction :=
a[0]/2 + Sum[a[n] Cos[(n Pi x)/L] + b[n] Sin[(n Pi x)/L], {n, 1, s}];

Plot[FourierFunction, {x, init, final}]
)

Thanks for any help

URL: ,

Subject (listing for 'Help with a Procedure')
Author Date Posted
Help with a Procedure Jason 02/27/10 02:55am
Re: Help with a Procedure Tom 03/26/10 01:14am
Next Comment >Help | Reply To Topic