Fourier-reeksen

Deze worksheet sluit aan bij paragraaf 3.2 op pagina 15 e.v.

restart;
assume(n,integer);
with(plots):

Warning, the name changecoords has been redefined

Iedere lijn definieert een functie en de corresponderende periode. Kies er een uit door het # symbool te verwijderen.
#f:=x->x+Pi; L:=Pi;
#f:=x->piecewise(x <0,x+Pi,Pi-x); L:=Pi;
f:=x->piecewise(abs(x) <1,1,0); L:=2;
#f:=x->piecewise(x<0,1,-1); L:=Pi;
#f:=x->piecewise(abs(x)<Pi/2,sin(x),0); L:=Pi;
#f:=x->abs(sin(x)); L:=Pi;
plot(f(x),x=-L..L);
teken de functie
aantaltermen:=20:
definieer het aantaltermen dat je hoogstens zal tonen

f := proc (x) options operator, arrow; piecewise(ab...

L := 2

[Maple Plot]

De formules van Euler
a[0]:='1/(2*L)*int( f(x),x=-L..L)'=1/(2*L)*int(f(x),x=-L..L);
a[0]:=1/(2*L)*int(f(x),x=-L..L):
a[n]:='1/(L)*int(f(x)*cos(n*x*Pi/L),x=-L..L)'=1/L*int(f(x)*cos(n*x*Pi/L),x=-L..L);
a[n]:=1/L*int(f(x)*cos(n*x*Pi/L),x=-L..L):
b[n]:='1/(L)*int(f(x)*sin(n*x*Pi/L),x=-L..L)'=1/L*int(f(x)*sin(n*x*Pi/L),x=-L..L);
b[n]:=1/L*int(f(x)*sin(n*x*Pi/L),x=-L..L):

a[0] := 1/2/L*int(f(x),x = -L .. L) = 1/2

a[n] := 1/L*int(f(x)*cos(n*x*Pi/L),x = -L .. L) = 2...

b[n] := 1/L*int(f(x)*sin(n*x*Pi/L),x = -L .. L) = 0...

Hier wordt een benadering met N termen gedefinieerd. benadering:=N->a[0]+sum(a[n]*cos(n*Pi*x/L)+b[n]*sin(n*Pi*x/L),n=1..N);

benadering := proc (N) options operator, arrow; a[0...

Wil je de formule voor een zekere benadering zien ? Je kunt de benadering ook vergelijken met de functie zelf
benadering(7);
plot({benadering(7),f(x)},x=-L..L,discont=true);

1/2+2/Pi*cos(1/2*x*Pi)-2/3*1/Pi*cos(3/2*x*Pi)+2/5/P...

[Maple Plot]

Je kunt de opeenvolgende benaderingen tonen met een animatie. animate({f(x),benadering(nr)},x=-L..L,nr=0..aantaltermen);

[Maple Plot]

Hoe goed is de benadering ? De fout moet dalen naarmate het aantal termen in de benadering toeneemt.
for k from 1 to aantaltermen do
err[k]:=evalf(integrate((f(x)-benadering(k))^2,x=-L..L)) ;
od;

err[1] := .1894305311

err[2] := .1894305311

err[3] := .9936725681e-1

err[4] := .9936725681e-1

err[5] := .6694447808e-1

err[6] := .6694447808e-1

err[7] := .5040224438e-1

err[8] := .5040224438e-1

err[9] := .4039521351e-1

err[10] := .4039521351e-1

err[11] := .3369629196e-1

err[12] := .3369629196e-1

err[13] := .2890002301e-1

err[14] := .2890002301e-1

err[15] := .2529749213e-1

err[16] := .2529749213e-1

err[17] := .2249275333e-1

err[18] := .2249275333e-1

err[19] := .2024740885e-1

err[20] := .2024740885e-1

>