Vorlesung 14b

Transcription

Vorlesung 14b
Fourier-Reihen
Die Botschaft des Tages:
Man kann praktisch alle periodischen Funktionen
als Überlagerung von Sinus- und Cosinusschwingungen
darstellen
Joseph Fourier (1768-1830)
Betrachten wir eine Sägezahnfunktion:
3
2
1
0
-6
-4
0
-2
4
2
6
t
-1
-2
-3
Wie kann man sie als Überlagerung von Sinusschwingungen
darstellen?
Hier ist eine erste Annäherung
3
2
1
0
-6
-4
0
-2
2
4
6
t
-1
-2
-3
mit einer einzigen Sinusschwingung.
Und hier eine zweite
3
2
1
0
-6
-4
-2
0
2
4
6
t
-1
-2
-3
mit einer Überlagerung von zwei Sinusschwingungen.
eine Schwingung
3
3
2
2
1
1
0
-6
-4
0
0
-2
4
2
6
-6
-4
0
-2
2
t
4
6
t
-1
-1
-2
-2
-3
-3
+ eine zweite= die Überlagerung von zweien
3
3
2
2
1
1
0
-6
-4
-2
0
2
4
6
0
-6
-4
-2
0
2
4
t
-1
-1
-2
-2
-3
-3
6
Und hier eine dritte Näherung
3
2
1
0
-6
-4
-2
0
4
2
6
t
-1
-2
-3
mit einer Überlagerung von drei Sinusschwingungen.
die Überlagerung von zweien
3
3
2
2
1
1
0
-6
-4
0
0
-2
4
2
6
-6
-4
-2
0
2
t
4
6
t
-1
-1
-2
-2
-3
-3
+ eine dritte = die Überlagerung von dreien
3
3
2
2
1
1
0
-6
-4
-2
0
2
4
6
0
-6
-4
-2
0
4
2
t
-1
-1
-2
-2
-3
-3
6
.... eine vierte Näherung
3
2
1
0
-6
-4
-2
0
2
4
6
t
-1
-2
-3
mit einer Überlagerung von vier Sinusschwingungen.
... und eine zehnte Näherung
3
2
1
t
-6
-4
-2
0
2
4
6
0
-1
-2
-3
mit einer Überlagerung von zehn Sinusschwingungen.
Was geht hier ab?
Die zu approximierende Sägezahnfunktion war
f : [−π, π] → R,
t
7→
t,
periodisch fortgesetzt auf ganz R.
Wir werden einen Raum von Funktionen f : [−π, π] → C
mit einem Skalarprodukt
und dadurch mit einer Geometrie ausstatten.
Warum C und nicht R?
Weil man mit Sinus und Cosinus
besonders schön über die Euler-Formel rechnen kann!
Dazu zwei Vorbemerkung:
1. Das Integral
Z b
a
φ(t)dt,
a<b∈R
einer komplexwertigen Funktion φ(t) = g(t) + i h(t)
bekommt man
- über Realteil und Imaginärteil gesondert:
Z b
a
φ(t)dt =
Z b
a
g(t)dt + i
Z b
a
h(t)dt
- oder auch “direkt im Komplexen ” als Grenzwert von
P
φ(t)∆t.
Es gelten die vertrauten Formeln (mit µ ∈ C)
d µt
e = µeµ t
dt
Z b
µt
a
e
1 µt b
1 µb
dt = e |a = (e − eµa).
µ
µ
Für stetige f, g : [−π, π] 7→ C setzen wir
< f, g > :=
Z π
−π
f (t)g(t)dt.
P
Das erinnert an < f~, ~g > = n
j=1 fj gj
für Vektoren f~, ~g ∈ Rn
(die Funktionswerte f (t) von f entsprechen
den Koordinaten fj eines Vektors f~.)
Warum steht im Integral f¯ und nicht f ?
Zur Erinnerung: α + iβ = α − iβ
ist die Komplexkonjugierte der Zahl α + iβ.
f¯(t) := f (t) definiert die Komplexkonjugierte der Funktion f .
Warum also f¯ und nicht f ?
Weil damit das “Längenquadrat” < f, f >
reell und nichtnegativ ist!
Denn für
f (t) = u(t) + iv(t)
mit reellwertigen Funktionen u(t) und v(t) hat man
f (t)f (t) = (u(t) − iv(t))(u(t) + iv(t)) = u2(t) + v 2(t)
und damit
2
||f || :=< f, f > =
Z π 2
−π
2
u (t) + v (t) dt ≥ 0.
BEISPIEL
Sei f (t) := eit. Dann ist
< f, f > =
=
=
Z π
Z π
−π
−π
Z π
−π
=
Z π
Die Funktion
eit
−π
f (t)f (t)dt
eiteitdt
e−iteitdt
1 dt = 2π.
hat also “Länge”
√
2π.
BEISPIEL
Sei g(x) := 1 die Funktion, die identisch gleich 1 ist,
und sei wieder f (t) := eit.
< f, g > =
Z π
=
Z π
=
Z π
−π
−π
−π
f (t)g(t)dt
eit 1 dt
e−itdt
1 −it π
=
e
|−π = 0.
−i
Die Funktionen eit und 1 sind also orthogonal.
Die Fourier-Basis:
Wir setzen für k ∈ Z
ek (t) := eikt,
−π ≤ t ≤ π.
Die {ek } sind paarweise orthogonal, denn für k 6= ℓ gilt:
< ek , eℓ >=
=
Z π
−π
Z π
−π
e−ikteiℓtdt =
eikteiℓtdt
Z π
−π
ei(ℓ−k)tdt
1
ei(ℓ−k)t |π
=
−π = 0.
i(ℓ − k)
Für k = ℓ hat man
Z π
Z π
< ek , ek >=
e−ikteiktdt =
1 dt = 2π.
−π
−π
Man kann zeigen:
Jedes
f : [−π, π] → C
mit
||f ||2
= −π |f (t)|2dt < ∞
Rπ
( also insbesondere die stetigen
oder auch nur stückweise stetigen f : [−π, π] → C )
lässt sich als Fourierreihe,
sprich als Grenzwert von Linearkombinationen
des Orthogonalsystems {ek }∞
k=−∞ darstellen:
Es gibt Koeffizienten {ck } so, dass
||f −
K
X
k=−K
ck ek || → 0 für K → ∞.
Man schreibt dafür kurz:
f =
∞
X
−∞
ck ek .
Die Orthogonalität der ek macht es leicht,
die Fourierkoeffizienten
 ck zu berechnen:

< ek , f > = <
=
∞
X
ℓ=−∞

ek , 
∞
X
ℓ=−∞
 >
cℓ eℓ
cℓ < ek , eℓ >
= ck < ek , ek > = 2π ck .
1 Z π −ikt
1
< ek , f > =
e
f (t)dt.
ck =
2π
2π −π
Für k = 0 ergibt sich:
e0(t) = 1.
Der nullte Fourierkoeffizient ist damit:
1 Zπ
1
< e0 , f > =
f (t) dt
c0 =
2π
2π −π
also der Mittelwert von f .
Mit der Euler-Formel
eikt = cos kt + i sin kt
können wir die Sinusfunktion und die Cosinusfunktion
ins Spiel bringen.
Das erlaubt es (wie wir gleich sehen werden)
die Fourierreihe einer reellen Funktion f
reell zu schreiben.
f (t) =
∞
X
−∞
ck ekt =
∞
X
−∞
ck (cos kt + i sin kt).
Unter Berücksichtigtigung von
cos(−kt) = cos(kt),
f (t) = c0 +
∞
X
1
sin(−kt) = − sin(kt) ergibt dies
(ck + c−k ) cos kt + i
∞
X
1
(ck − c−k ) sin kt.
Also mit
a0 := c0
ak := ck + c−k
f (t) =
∞
X
k=0
bk := i(ck − c−k )
(ak cos kt + bk sin kt).
f (x) =
∞
X
(ak cos kt + bk sin kt)
k=0
Ist f eine gerade Funktion, d.h. f (−t) = f (t),
dann ist
f (t) = 1
2 (f (t) + f (−t))
Weil bei dieser Addition die Sinusterme wegfallen
(denn sin(x) = − sin(x)),
ist die Fourierreihe einer geraden Funktion
eine reine Cosinusreihe:
f (t) =
∞
X
0
ak cos kt.
f (t) =
∞
X
k=0
(ak cos kt + bk sin kt)
Ist f eine ungerade Funktion, d.h. f (−t) = −f (t),
dann ist
f (t) = 1
2 (f (t) − f (−t))
Weil bei dieser Subtraktion die Cosinusterme wegfallen
(denn cos(x) = cos(−x)),
ist die Fourierreihe einer ungeraden Funktion
eine reine Sinusreihe:
f (t) =
∞
X
1
bk sin kt.
Beispiel: “Sägezahnfunktion”
f (t) := t,
t ∈ [−π, π]
1 Zπ
t dt = 0.
c0 =
−π
2π
1 Z π −ikt
ck =
e
t dt =?
−π
2π
Wir erinnern an die (aus der Produktregel folgende)
Formel der “partiellen Integration”
Z d
c
h′(t)g(t)dt = hg|dc −
Z d
c
h(t)g ′(t)dt.
Damit folgt für k 6= 0
1 Z π −ikt
e
t dt
ck =
−π
2π
1
1 −ikt π
1 −ikt
=
e
|−π −
e
dt
t
−π
2π −ik
−ik
Z π
!
k
(−1)
1
1
=
i
(−1)k t |π
−π − 0 =
2π −ik
k
!
(denn eikt = e−ikt = (−1)k , und < ek , 1 > = 0 ).
f (t) = t,
t ∈ [−π, π]
(−1)k
i
ck =
k
Also:
ak = ck + c−k = 0
bk = i(ck − c−k ) = (−1)k+1 2
k
f (t) =
∞
X
1
bk sin kt
Es gilt die überraschende Formel
sin 3t
sin t sin 2t
−
+
− ... ,
t=2
1
2
3
!
−π < t < π.
t)
2( sin
1
f (t)
3
3
2
2
1
1
0
-6
-4
0
0
-2
4
2
6
-6
-4
0
-2
2
t
-1
-1
-2
-2
-3
-3
t − sin 2t )
2( sin
1
2
-4
3
3
2
2
1
1
-2
6
t − sin 2t + sin 3t )
2( sin
1
2
3
0
0
-6
4
t
0
2
4
6
-6
-4
-2
0
4
2
t
t
-1
-1
-2
-2
-3
-3
6
sin 3t
sin t sin 2t
−
+
− ... ,
t=2
1
2
3
!
−π < t < π
Für t = π/2 ergibt sich wegen
{sin(k π2 )} = {0, 1, 0, −1, 0, 1, ...},
k = 0, 1, 2, ...,
eine hübsche,
allerdings von der Konvergenzgeschwindigkeit her
kaum brauchbare Reihendarstellung für die Zahl π:
1 1
1
π = 4 1 − + − + ... .
3
5 7
!
Noch ein Wort zur Wärmeleitung in einem (homogenen) Stab:
Ist θ(t, x) die Temperatur zur Zeit t,
dann besagt die Wärmeleitungsgleichung
∂2
∂
θ(t, x) = γ 2 θ(t, x).
∂t
∂x
γ ist dabei eine positive Konstante,
wir setzten sie der Einfachheit halber gleich 1.
Mulden des Temperaturprofils x 7→ θ(t, x) werden gehoben,
Kuppen werden gesenkt.
t=0
35
30
25
20
15
10
5
0
0
3
t=0
35
30
25
20
15
10
5
0
0
3
t=0
35
30
25
20
15
10
5
0
0
3
∂
∂2
θ(t, x) =
θ(t, x).
2
∂t
∂x
Spezielle Lösungen davon sind
harmonische Schwingungen
mit in der Zeit abklingender Amplitude:
2t
−k
e
cos kx,
2t
−k
e
sin kx.
In der Tat:
2 2
2
∂ −k2t
∂
−k t cos kx ,
e
e
cos kx = −k2e−k t cos kx =
∂t
∂x2
2 2
2
∂
∂ −k2t
−k t
e
sin kx .
e
sin kx = −k2e−k t sin kx =
2
∂t
∂x
2
2
Auch Linearkombinationen von e−k t cos kx und e−k t sin kx
lösen die Wärmeleitungsgleichung
(denn das Bilden von Ableitungen operiert ja linear):
K
2t
∂ X
−k
e
(ak cos kx + bk sin kx)
∂t k=0
K
∂2 X
−k2t
nnnnnnnnnnnn =
e
(ak cos kx + bk sin kx)
2
∂x k=0
Und auch der Grenzwert K → ∞
verhält sich hier in aller Regel gutartig,
sodass man bekommt:
∂ P∞ e−k2t a cos kx + b sin kx
( k
)
k
∂t k=0
∞
∂2 X
−k2t
e
nnnnnnnnnnnn =
(ak cos kx + bk sin kx)
2
∂x k=0
Um die Wärmeleitungsgleichung
mit gegebenem Anfangsprofil
θ(0, x) = f (x)
zu lösen, reicht es also,
die Funktion f in eine Fourier-Reihe zu entwicken:
f (x) =
P∞
k=0 (ak cos kx + bk sin kx).
Es ergibt sich dann als Lösung:
θ(t, x) =
∞
X
k=0
2t
−k
e
(ak cos kx + bk sin kx) .
Beispiel:
Gegeben sei ein Anfangsprofil f : [0, π] → R+
mit f (0) = f (π) = 0.
Denken wir uns f “ungerade fortgesetzt” auf [−π, π]
(also f (−x) := −f (x))
und die Fortsetzung in eine reine Sinusreihe entwickelt:
f (x) =
∞
X
k=1
bk sin kx.
θ(t, x) := f (x) =
∞
X
k=1
bk sin kx
Dann löst
θ(t, x) :=
∞
X
k=1
2t
−k
e
bk sin kx
auf [0, π] die Wärmeleitungsgleichung
mit Anfangsbedingung f und Randbedingung
θ(t, 0) = θ(t, π) = 0.
t=0
35
30
25
20
15
10
5
0
0
3
t=0
35
30
25
20
15
10
5
0
0
3
t=0
35
30
25
20
15
10
5
0
0
3
t = 0 und t = 0.05
35
30
25
20
15
10
5
0
0
x
3
t = 0, t = 0.05 und t = 0.1
35
30
25
20
15
10
5
0
x
3
t = 0,..., t = 0.15
35
30
25
20
15
10
5
0
0
x
3
t = 0.15 und t = 0.2
35
30
25
20
15
10
5
0
0
x
3
t = 0.15, t = 0.2 und t = 0.25
35
30
25
20
15
10
5
0
0
x
3
t = 0.5
35
30
25
20
15
10
5
0
0
x
3
t=2
35
30
25
20
15
10
5
0
0
x
3
Wenigstens theoretisch kann man ein Temperaturprofil
auch “zurück in die Vergangenheit” berechnen:
Angenommen ein Temperaturprofil hat sich
nach der Wärmeleitungsgleichung entwickelt
und ist zur Zeit Null gleich θ(0, x) = f (x).
Wie war es zur Zeit −T < 0?
Die Antwort ist:
θ(−T, x) =
∞
X
k=1
2T
k
e
bk sin kx
Rückwärts in die Zeit
wachsen die Amplituden der kleinen Frequenzen schneller!
t = 0 und t = −0.0025
35
30
25
20
15
10
5
0
0
x
3
t = 0 und t = −0.0035
35
30
25
20
15
10
5
0
x
3
t = 0 und t = −0.005
35
30
25
20
15
10
5
0
0
x
3
bk
15
Fourierkoeffizienten von f
10
5
k
0
2
5
4
6
8
10
12
14
16
18
20
Die diskrete Fouriertransformation:
Wir betrachten (für festes n ∈ N) die endliche Fourierreihe
fn(x) =
n−1
X
k=0
eik xck ,
ausgewertet nur an den n Argumenten
2π 2π · 2 2π · 3
2π · (n − 1)
x = 0,
,
,
, ....,
n
n
n
n
sprich bei
2π · j
,
xj =
n
j = 0, 1, ..., n − 1.
xj = 2π·j
n , j = 0, 1 ..., n − 1
n−1
X ik x
yj := fn(xj ) =
e j ck
k=0
Kann man zwischen den Funktionswerten yj
und den Fourierkoeffizienten ck bequem hin-und herrechnen?
In der Tat: den Vektor y
~ = (y0, y1, ..., yn−1)T
bekommt man in Matrixschreibweise als
~
y = Fn~c
mit
(Fn)jk =
und
ik 2πj
e n
~c =
!
j,k=0,...,n−1
(c0, ..., cn−1)T .
Die n mal n-Matrix
(Fn)jk =
ik 2πj
e n
!
j,k=0,...,n−1
heißt die n-te Fouriermatrix.
(Fn)jk =
ik 2πj
e n
!
j,k=0,...,n−1
Die Spalten von Fn sind paarweise orthogonal
bzgl. des Skalarproduktes
<~
u, ~v >:=
n−1
X
k=0
P
~
u, ~v ∈ Cn.
uj v j ,
In der Tat ist für j 6= ℓ
ℓ
−ik 2πn j ik 2π
n
e
e
=
n−1
X
e
ik 2π (ℓ−j)
n
k=0
ei 2π (ℓ−j) − 1
= 0.
= i 2π (ℓ−j)/n
e
−1
(Eine Erinnerung an die geometrische Reihe:
Pn−1 k
n − 1)/(q − 1). )
q
=
(q
k=0
Und das Längenquadrat jeder Spalte von Fn ist n:
n−1
X
−ik 2πn j ik 2πn j
e
e
=
k=0
n−1
X
1 = n.
k=0
Bezeichnet F∗n die Matrix, die aus Fn
durch Transponieren und komplexes Konjugieren aller
Einträge hervorgeht,
dann haben wir uns soeben vergewissert, dass
F∗n Fn = n I.
F∗n Fn = n I.
Die Transformation
y
~ = Fn ~c
hat somit die Inverse
1 ∗
~.
~c = Fn y
n
Dies ist die so genannte
“diskrete Fouriertransformation”.
Durch ein schlaues Zurückspielen von F2n auf Fn
gelang es Cooley und Tukey (1965), die Anzahl
der zur Berechnung von Fn ~c nötigen Multiplikationen
1 n log n zu reduzieren.
von n2 auf 2
2
Dieser Algorithmus der “Schnellen Fouriertransformation”
wurde von Gauss 1805 vorgeahnt.
Mehr dazu findet man in Abschnitt 10.3 des Buches
“Lineare Algebra”, G. Strang, Springer 2003,
und noch viel mehr in den Quellen,
auf die in http://www.fftw.org/links.html verwiesen wird.