Zurück Vor +Ebene Home Inhalt Index Hilfe

Fourierreihenentwicklung einer periodischen Funktion

MapleV hat kein eigenes Kommando für die Fourierreihenentwicklung. Man kann aber eine Prozedur schreiben, die diese Entwicklung durchführt.

restart:

ff:=       ;# (* Funktion eingeben *)

tt:=           ;# (* Variable eingeben *)

TT:=         ; # (* Periode *)

nn:=      ;# (* Anzahl der Summationsglieder *)

r:=         ;#(* Rundungsprozedur ,r = Anzahl der Nachkommastellen *)
rund:=t->evalf(round(evalf(t)*10^r)/10^r):
`(* Berechnung der Fourierkoeffizienten *)`:
ak:=2/T_*Int(f_*cos(2*Pi*t_*k_/T_),t_=0..T_):
bk:=2/T_*Int(f_*sin(2*Pi*t_*k_/T_),t_=0..T_):
`(* Prozedur zur Entwicklung *)`:
fourierreihe:=(f,t,T,n)->
rund(subs(k_=0,f_=f,t_=t,T_=T,ak/2))+
sum('rund(subs(k_=i,f_=f,t_=t,T_=T,ak))'*cos(2*Pi*i*t/T),i=0..n)+
sum('rund(subs(k_=i,f_=f,t_=t,T_=T,bk))'*sin(2*Pi*i*t/T),i=0..n):
fr:=fourierreihe(ff,tt,TT,nn);

Beispiel: Sägezahnkurve.

restart:
ff:=  t     ;
tt:=   t        ;
TT:=    Pi     ;
nn:=   10   ;
`(* Rundungsprozedur ,r = Anzahl der Nachkommastellen *)`;
r:=    5     ;
rund:=t->evalf(round(evalf(t)*10^r)/10^r):
`(* Berechnung der Fourierkoeffizienten *)`:
ak:=2/T_*Int(f_*cos(2*Pi*t_*k_/T_),t_=0..T_):
bk:=2/T_*Int(f_*sin(2*Pi*t_*k_/T_),t_=0..T_):
`(* Prozedur zur Entwicklung *)`:
fourierreihe:=(f,t,T,n)->
rund(subs(k_=0,f_=f,t_=t,T_=T,ak/2))+
sum('rund(subs(k_=i,f_=f,t_=t,T_=T,ak))'*cos(2*Pi*i*t/T),i=0..n)+
sum('rund(subs(k_=i,f_=f,t_=t,T_=T,bk))'*sin(2*Pi*i*t/T),i=0..n):
fr:=fourierreihe(ff,tt,TT,nn);
plot(fr,t=-Pi..2*Pi);

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik