Luennolla 13.11.
# Fourier-sarjat, Eulerin kaavat (Maple V.3 tai V.4)
> assume(m,integer);
> assume(n,integer):
Symbolit m ja n käsitetään erisuuriksi, kun ne ovat eri symboleja.
Ortogonaalisuusrelaatiot:
==========================
> int(cos(m*Pi*x/l)*cos(n*Pi*x/l),x=-l..l);
0
> int(cos(0*Pi*x/l)*cos(0*Pi*x/l),x=-l..l);
2 l
> int(cos(m*Pi*x/l)*sin(n*Pi*x/l),x=-l..l);
0
> int(sin(n*Pi*x/l)*sin(m*Pi*x/l),x=-l..l);
0
> int(sin(n*Pi*x/l)*sin(n*Pi*x/l),x=-l..l);
l
> f:='f': # Varmistetaan, että f on "vapaa".
Eulerin Fourier-kerroinkaavat:
===============================
> a[0]:=(1/(2*l))*int(f(x),x=-l..l);
l~
/
|
| f(x) dx
|
/
-l~
a[0] := 1/2 -------------
l~
> a[n]:=(1/l)*int(f(x)*cos(n*Pi*x/l),x=-l..l);
l
/
| n~ Pi x
| f(x) cos(-------) dx
| l
/
-l
a[n~] := -------------------------
l
> b[n]:=(1/l)*int(f(x)*sin(n*Pi*x/l),x=-l..l);
l
/
| n~ Pi x
| f(x) sin(-------) dx
| l
/
-l
b[n~] := -------------------------
l
Yllä käytettiin alaindeksoituja muuttujia a[0],a[n],b[n]. Nämä eivät
ole funktiomäärittelyjä, tästä siten ei seuraa, että Maple tietäisi jotain
vaikkapa a[1]:stä tai b[m]:stä.
(Madot tulevat assume-komentojen seurauksena, ne saa jollain komennolla pois)
---------------------------------------------------------------------------
#
# Esim: Kanttiaalto: f(x)=0, kun -l < x < 0 ja f(x)=1, kun 0 < x < l
====================
> f:=x->c*Heaviside(x);
f := x -> c Heaviside(x)
> a[0];
1/2 c
> assume(l,positive):
> a[n];
0
> b[n];
n~
(-1) l~ c l~ c
- ----------- + -----
n~ Pi n~ Pi
---------------------
l~
> simplify(");
n~
c ((-1) - 1)
- --------------
n~ Pi
> s:=a[0]+sum(simplify(b[n]*sin(n*Pi*x/l)),n=1..infinity);
/infinity / n~ n~ Pi x \\
| ----- | c ((-1) - 1) sin(-------)||
| \ | l~ ||
s := 1/2 c + | ) |- ---------------------------||
| / \ n~ Pi /|
| ----- |
\ n~ = 1 /
> osasum:=seq(a[0]+sum(simplify(b[n]*sin(n*Pi*x/l)),n=1..N),N=1..8):
> osasum:=a[0],osasum:
> p1:= plot(subs(c=1,l=Pi,{osasum}),x=-Pi..Pi):
> p2:=plot(Heaviside(x),x=-Pi..Pi):
> with(plots):
> display({p1,p2});