mneu mathematik: numerik für energie- und umwelttechnikdublin.zhaw.ch/~kirs/mneu/mneunotes.pdf ·...

89
MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember 2014 Inhaltsverzeichnis 0 Überblick 2 1 Approximation: Taylor- und Fourierreihen 3 1.1 Taylor-Reihen ............................. 3 1.1.1 Erinnerung: Konvergenzradius ............... 4 1.1.2 Approximationsfehler, O-Notation ............. 5 1.1.3 Taylorpolynome in MATLAB ................ 6 1.1.4 Anwendungen ......................... 6 1.2 Fourierreihen ............................. 8 1.2.1 Definitionen .......................... 8 1.2.2 Beispiele ............................ 9 1.2.3 Fourierpolynome in MATLAB ............... 14 2 Lineare Gleichungssysteme 14 2.1 Direkte Verfahren ........................... 15 2.1.1 Gausssches Eliminationsverfahren und LR-Zerlegung . . . 15 2.1.2 LR-Zerlegung mit Spaltenpivotsuche (Spaltenpivotisierung) 24 2.2 Iterative Verfahren .......................... 28 2.2.1 Jacobi-Verfahren (Gesamtschrittverfahren) ........ 28 2.2.2 Gauss-Seidel-Verfahren (Einzelschrittverfahren) ...... 32 2.2.3 Allgemeine Splitting-Verfahren und Konvergenz ...... 35 2.2.4 Krylow-Unterraum-Verfahren ................ 36 3 Interpolation 36 3.1 Polynominterpolation ........................ 37 3.2 Spline-Interpolation ......................... 43 1

Upload: tranquynh

Post on 19-Jul-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

MNEUMathematik: Numerik

für Energie- und Umwelttechnik

Christoph Kirsch

21. Dezember 2014

Inhaltsverzeichnis0 Überblick 2

1 Approximation: Taylor- und Fourierreihen 31.1 Taylor-Reihen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1 Erinnerung: Konvergenzradius . . . . . . . . . . . . . . . 41.1.2 Approximationsfehler, O-Notation . . . . . . . . . . . . . 51.1.3 Taylorpolynome in MATLAB . . . . . . . . . . . . . . . . 61.1.4 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Fourierreihen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.1 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.3 Fourierpolynome in MATLAB . . . . . . . . . . . . . . . 14

2 Lineare Gleichungssysteme 142.1 Direkte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1.1 Gausssches Eliminationsverfahren und LR-Zerlegung . . . 152.1.2 LR-Zerlegung mit Spaltenpivotsuche (Spaltenpivotisierung) 24

2.2 Iterative Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.1 Jacobi-Verfahren (Gesamtschrittverfahren) . . . . . . . . 282.2.2 Gauss-Seidel-Verfahren (Einzelschrittverfahren) . . . . . . 322.2.3 Allgemeine Splitting-Verfahren und Konvergenz . . . . . . 352.2.4 Krylow-Unterraum-Verfahren . . . . . . . . . . . . . . . . 36

3 Interpolation 363.1 Polynominterpolation . . . . . . . . . . . . . . . . . . . . . . . . 373.2 Spline-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 43

1

Page 2: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

0 ÜBERBLICK 2

4 Numerisch Differenzieren und Integrieren 484.1 Numerische Differenziation . . . . . . . . . . . . . . . . . . . . . 48

4.1.1 Numerische Differenziation mit Hilfe der Interpolation . . 484.1.2 Numerische Differenziation mit Hilfe von Differenzenquo-

tienten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2 Numerische Integration . . . . . . . . . . . . . . . . . . . . . . . 58

4.2.1 Interpolatorische Quadraturformeln . . . . . . . . . . . . 584.2.2 Zusammengesetzte Quadraturformeln . . . . . . . . . . . 624.2.3 Gauss-(Legendre-)Quadratur . . . . . . . . . . . . . . . . 64

5 Numerik nichtlinearer Gleichungen und Gleichungssysteme 655.1 Das Newton-Verfahren für n = 1 . . . . . . . . . . . . . . . . . . 675.2 Das Newton-Verfahren für n > 1 . . . . . . . . . . . . . . . . . . 69

6 Lineare und nichtlineare Ausgleichsrechnung 716.1 Die Methode der kleinsten Quadrate für lineare Ausgleichspro-

bleme (QR-Zerlegung) . . . . . . . . . . . . . . . . . . . . . . . . 726.2 Die Methode der kleinsten Quadrate für nichtlineare Ausgleichs-

probleme (Gauss-Newton-Verfahren) . . . . . . . . . . . . . . . . 74

7 Numerik gewöhnlicher Differenzialgleichungen 777.1 Einschrittverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.1.1 Explizites und implizites Euler-Verfahren . . . . . . . . . 797.1.2 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . 83

8 Randwertprobleme 86

0 ÜberblickIn dieser einsemestrigen Vorlesung über Numerik für Energie- und Umwelttech-nik sollen einige wichtige Verfahren der numerischen Mathematik jeweils kurzbehandelt und auch von den Studierenden programmiert werden.

• Approximation: Taylor- und Fourier-Reihen

• Numerik gewöhnlicher Differenzialgleichungen und -gleichungssysteme anausgewählten Beispielen: Runge-Kutta-Verfahren

• Numerik linearer und nichtlinearer Gleichungen und Gleichungssysteme

• Interpolation: Lagrange- und Newton-Interpolation sowie Splines

• Lineare und nichtlineare Ausgleichsrechnung

• Numerisch Differenzieren und Integrieren

• Randwertprobleme und partielle Differenzialgleichungen an ausgewähltenBeispielen: Finite-Differenzen- und Finite-Elemente-Methoden

Page 3: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 3

1 Approximation: Taylor- und FourierreihenIn diesem Kapitel werden wir aufzeigen, dass sich differenzierbare Funktio-nen durch Taylorpolynome und periodische Funktionen durch Fourierpolynomeapproximieren lassen. Durch einen formalen Grenzübergang im Polynomgrad,n→∞, erhalten wir Taylor- bzw. Fourierreihen.

1.1 Taylor-ReihenWir erinnern uns an die Taylor-Formel (nach B. Taylor, 1685–1731) mit Lagrange-Restglied (J. L. Lagrange, 1736–1813):

Satz 1 (Taylor-Formel mit Lagrange-Restglied) Sei I ⊆ R ein Intervall undf : I → R eine (n+ 1)-mal differenzierbare Funktion, n ∈ N0. Dann gilt für allea, x ∈ I:

f(x) = (Tnf) (x; a) + (Rnf) (x; a), (1)

mit dem n-ten Taylorpolynom an der Entwicklungsstelle a:

(Tnf) (x; a) :=

n∑k=0

f (k)(a)

k!(x− a)

k (2)

= f(a) + f ′(a) (x− a) +1

2f ′′(a) (x− a)

2+ · · ·

· · ·+ f (n)(a)

n!(x− a)

n.

Für das n-te (Lagrangesche) Restglied (Rnf) (x; a) gilt:

∃ϑ ∈ (0, 1) : (Rnf) (x; a) =f (n+1) ((1− ϑ)a+ ϑx)

(n+ 1)!(x− a)

n+1. (3)

Bemerkungen:

• Die j-te Ableitung des n-ten Taylorpolynoms von f ist das (n − j)-teTaylorpolynom der j-ten Ableitung von f :

(Tnf)(j)

= Tn−jf(j), j = 0, . . . , n. (4)

• Wegen (Tnf) (a; a) = f(a), n ∈ N0, stimmen an der Stelle x = a dieAbleitungen von Tnf mit den Ableitungen von f überein:

(Tnf)(j)

(a; a)(4)=(Tn−jf

(j))

(a; a) = f (j)(a), j = 0, . . . , n. (5)

• Ist die Funktion f in einer Umgebung der Entwicklungsstelle a beliebig oftdifferenzierbar und erfüllt das Restglied in dieser Umgebung

limn→∞

(Rnf) (x; a) = 0,

Page 4: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 4

dann ist f analytisch bei a, also in eine Taylor-Reihe entwickelbar:

(Tf) (x; a) :=

∞∑n=0

f (n)(a)

n!(x− a)

n. (6)

Die Taylor-Reihe von f stimmt in ihrem Konvergenzbereich (!) mit derFunktion f überein; man nennt sie auch die Taylor-Entwicklung von f .Die Taylor-Reihe mit Entwicklungsstelle a = 0 heisst auch Maclaurin-Reihe (nach C. Maclaurin, 1698–1746):

(Tf) (x; 0) =

∞∑n=0

f (n)(0)

n!xn. (7)

Beispiel: f(x) = ln(x), x0 = 1. Wir berechnen zunächst die Ableitungen von fan der Stelle x0:

n = 0 : f(x) = ln(x), f(1) = 0,n = 1 : f ′(x) = 1

x , f ′(1) = 1,n = 2 : f ′′(x) = − 1

x2 , f ′′(1) = −1,n = 3 : f (3)(x) = 1·2

x3 , f (3)(1) = 1 · 2,n = 4 : f (4)(x) = − 1·2·3

x4 , f (4)(1) = −1 · 2 · 3.

Die n-te Ableitung von f ist gegeben durch

f (n)(x) =

{ln(x), n = 0

(−1)n+1 (n−1)!xn , n ≥ 1

,

und damit erhalten wir an der Stelle x0 = 1:

f (n)(1) =

{0, n = 0(−1)n+1 (n− 1)!, n ≥ 1

.

Durch Einsetzen in (6) erhalten wir die Taylor-Reihe

(Tf) (x; 1) =

∞∑n=1

(−1)n+1

n(x− 1)

n (8)

= x− 1− (x− 1)2

2+

(x− 1)3

3− (x− 1)

4

4+− · · ·

1.1.1 Erinnerung: Konvergenzradius

Für eine reelle Zahlenfolge 〈an〉 und eine Entwicklungsstelle x0 ∈ R betrachtenwir die Potenzreihe

P (x) :=

∞∑n=0

an (x− x0)n. (9)

Die Funktion P ist gemäss (9) für all jene x ∈ R definiert, für welche die rechteSeite konvergent ist, d. h. der Definitionsbereich von P entspricht dem Konver-genzbereich der Potenzreihe.

Der Konvergenzradius einer Potenzreihe (9) wird berechnet durch

Page 5: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 5

• r = limn→∞

∣∣∣∣ anan+1

∣∣∣∣, falls an 6= 0, n ∈ N, oder

• r =1

limn→∞n√|an|

,

falls die Grenzwerte existieren. Potenzreihen (9) sind konvergent für |x−x0| < rund divergent für |x− x0| > r. Für |x− x0| = r muss die Konvergenz gesondertuntersucht werden.Bemerkung: Sowohl r = 0 (Konvergenz nur bei x = x0) wie auch r = ∞(Konvergenz für alle x ∈ R) sind möglich!Beispiel (Forts.): Die Taylor-Reihe (8) ist eine Potenzreihe mit x0 = 1 und

an = (−1)n+1

n 6= 0, n ∈ N, und daher

r = limn→∞

∣∣∣∣ anan+1

∣∣∣∣ = limn→∞

n+ 1

n= limn→∞

(1 +

1

n

)= 1 + lim

n→∞

1

n= 1.

Die Taylor-Reihe (8) ist also konvergent für |x−1| < 1 und divergent für |x−1| >1. Für |x− 1| = 1 erhalten wir die harmonischen Reihen

x = 0 :

∞∑n=1

(−1)2n+1

n= −

∞∑n=1

1

n(divergent),

x = 2 :

∞∑n=1

(−1)n+1

n= −

∞∑n=1

(−1)n

n(konvergent).

Der Konvergenzbereich der Taylor-Reihe (8) ist also gegeben durch das halbof-fene Intervall (0, 2].

1.1.2 Approximationsfehler, O-Notation

Der Fehler bei der Approximation einer Funktion f durch ihr n-tes Taylorpoly-nom (der Approximationsfehler) ist gegeben durch den Absolutbetrag des n-tenRestglieds:

|f(x)− (Tnf) (x; a)| = |(Rnf) (x; a)| .Falls die (n+ 1)-te Ableitung von f beschränkt ist im Intervall I, d. h. falls

∃M ∈ R :∣∣∣f (n+1)(x)

∣∣∣ ≤M ∀x ∈ I,

so können wir den Approximationsfehler mit der Restgliedformel von Lagrange(3) abschätzen durch

|(Rnf) (x; a)| ≤ M

(n+ 1)!|x− a|n+1

, x ∈ I.

Im Grenzübergang x→ a gilt dann

limx→a

∣∣∣∣∣ (Rnf) (x; a)

(x− a)n+1

∣∣∣∣∣ ≤ M

(n+ 1)!=: Mn ∈ R. (10)

Page 6: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 6

In diesem Fall schreiben wir (Rnf) (x; a) = O((x− a)n+1

), x→ a. Die Schreib-

weise drückt aus, dass für x → a das n-te Restglied (Rnf) (x; a) mindestensso schnell gegen 0 geht wie (x− a)

n+1. Damit können wir für eine (n + 1)-maldifferenzierbare Funktion f auch schreiben:

f(x) =

n∑k=0

f (k)(a)

k!(x− a)

k+O

((x− a)n+1

), x→ a. (11)

Die Schreibweise (11) werden wir in dieser Vorlesung noch einige Male verwen-den.

1.1.3 Taylorpolynome in MATLAB

Der MATLAB-Befehl taylor kann zur (symbolischen) Berechnung von Tay-lorpolynomen verwendet werden. Das 5. Taylorpolynom der (natürlichen) Ex-ponentialfunktion mit Entwicklungsstelle a = 0 wird z. B. durch die Eingabevon

>> syms x % x ist eine symbolische (unabhaengige) Variable>> T5 = taylor(exp(x)) % T5 ist ebenfalls eine symbolische>> % (abhaengige) Variable

berechnet. Ausserdem gibt es den “Taylor series calculator” taylortool. Umden Funktionsgraphen eines Taylorpolynoms mit dem MATLAB-Befehl plot zuzeichnen, benötigen wir Vektoren anstatt symbolische Variablen. Wir erzeugeneinen Vektor mit Werten auf der x-Achse und berechnen die entsprechendenFunktionswerte mit den MATLAB-Befehlen subs und eval:

>> xx = -5:0.01:5; % xx ist ein Vektor mit Zahlen zwischen -5 und 5>> yy = eval(subs(T5,x,xx)); % in T5 wird die symbolische Variable x>> % durch den Vektor xx ersetzt (subs)>> % und ausgewertet (eval)>> % --> yy ist ebenfalls ein Vektor,>> % der die Funktionswerte von T5>> % an den Stellen xx enthaelt>> plot(xx,exp(xx),xx,yy) % Zeichnen der beiden Funktionsgraphen

1.1.4 Anwendungen

Näherungspolynome von Funktionen Der Graph der linearen Funktion(T1f) (x; a) heisst die Tangente an den Graphen der Funktion f an der Stelle a.Der Graph der quadratischen Funktion (T2f) (x; a) heisst die Schmiegeparabelan den Graphen der Funktion f an der Stelle a. Für beliebig oft differenzierbareFunktionen f können wir auch den Grad des Taylorpolynoms beliebig hochwählen.Bemerkung: Ist die Funktion f selbst eine Polynomfunktion vom Grad n, so istdie Approximation durch das n-te Taylorpolynom exakt, d. h. der Approxima-tionsfehler ist Null.

Page 7: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 7

Beispiel: f(x) = x2 − 3x + 1 =(x− 3

2

)2 − 54 . Wir berechnen die Ableitun-

gen f ′(x) = 2x − 3, f ′′(x) = 2, f (k)(x) = 0, k ≥ 3. Daher gilt für die n-tenTaylorpolynome mit einer beliebige Entwicklungsstelle a ∈ R:

(T0f) (x; a) = f(a) = a2 − 3a+ 1,

(T1f) (x; a) = f(a) + f ′(a)(x− a) = a2 − 3a+ 1 + (2a− 3) (x− a)

= (2a− 3)x− a2 + 1,

(Tnf) (x; a) = f(a) + f ′(a)(x− a) +1

2f ′′(a)(x− a)2

= a2 − 3a+ 1 + (2a− 3) (x− a) +1

2· 2(x− a)2

= x2 − 3x+ 1 = f(x), n ≥ 2.

Weitere Beispiele für Näherungspolynome von Funktionen finden Sie in denÜbungen.

Integration durch Taylor-Entwicklung des Integranden Die Berech-nung von Integralen mit Hilfe des Hauptsatzes der Differenzial- und Integral-rechnung erfordert die Kenntnis einer Stammfunktion des Integranden:

b∫a

f(x) dx = F (b)− F (a) = F (x)|ba ,

wobei F eine beliebige Stammfunktion von f ist (d. h. F ′ ≡ f). Es gibt nunaber Funktionen, deren unbestimmte Integrale (Menge aller Stammfunktionen)sich nicht mit elementaren Funktionen ausdrücken lassen, z. B.∫

sin(x)

xdx,

∫sin(x2)

dx,

∫e−x

2

dx,

∫1

ln(x)dx,

∫ex

xdx.

Falls sich der Integrand in eine Potenzreihe entwickeln lässt, so kann man diese(in ihrem Konvergenzbereich) gliedweise integrieren und so eine Potenzreihe desunbestimmten Integrals erhalten.Beispiel: Sei f(x) = sin(x2). Die Maclaurin-Reihe der Sinusfunktion ist gegebendurch

sin(t) =

∞∑n=0

(−1)nt2n+1

(2n+ 1)!, t ∈ R.

Wir ersetzen t = x2 und integrieren gliedweise mit der Potenzregel:∫sin(x2)

dx =

∞∑n=0

(−1)n

(2n+ 1)!

∫x2(2n+1) dx =

∞∑n=0

(−1)nx4n+3

(4n+ 3)(2n+ 1)!+ C

=x3

3− x7

7 · 3!+

x11

11 · 5!− x15

15 · 7!+− · · ·+ C,

Page 8: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 8

mit Integrationskonstante C ∈ R. Nun können wir z. B. das folgende bestimmteIntegral beliebig genau approximieren:

I :=

1∫0

sin(x2)

dx 'N∑n=0

(−1)n

(4n+ 3) (2n+ 1)!=: SN .

Der Approximationsfehler nimmt sehr schnell ab für zunehmendes N (Vergleichmit einer Referenzlösung für I ' 0.310268):

N 0 1 2 3 4|I − SN | 2.31 · 10−2 7.44 · 10−4 1.31 · 10−5 1.44 · 10−7 1.08 · 10−9

1.2 Fourierreihen1.2.1 Definitionen

Sei f : R→ R eine periodische Funktion, d. h.

∃L > 0 : f(x+ L) = f(x) ∀x ∈ R (12)

(üblicherweise sind wir an der kleinstmöglichen Periode L > 0 interessiert).Dann ist die Fourierreihe von f (nach J. Fourier, 1768–1830) gegeben durch

f(x) =a02

+

∞∑n=1

(an cos (nωx) + bn sin (nωx)) (13)

=a02

+

∞∑n=1

An sin (nωx+ ϕn) , ω :=2π

L, (14)

mit an = An sin(ϕn), bn = An cos(ϕn), n ∈ N, und mit den Fourierkoeffizienten

an =2

L

x0+L∫x0

f(x) cos (nωx) dx, n ∈ N0, (15)

bn =2

L

x0+L∫x0

f(x) sin (nωx) dx, n ∈ N, (16)

wobei x0 ∈ R beliebig ist.In (14) steht eine Überlagerung von harmonischen Schwingungen mit Am-

plituden |An|, Kreisfrequenzen ωn = nω = 2πnL und Nullphasenwinkeln ϕn,

n ∈ N.Analog zum n-ten Taylorpolynom ist das n-te Fourierpolynom gegeben durch

die n-te Partialsumme der Fourierreihe:

fn(x) :=a02

+

n∑k=1

(ak cos (kωx) + bk sin (kωx)) , n ∈ N0. (17)

Page 9: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 9

Das n-te Fourierpolynom fn ist eine Polynomfunktion in sin(ωx) und cos(ωx)(“trigonometrisches Polynom”), denn nach den Mehrfachwinkelformeln gelten jaz. B.

cos(2ωx) = 2 cos2(ωx)− 1,

cos(3ωx) = 4 cos3(ωx)− 3 cos(ωx),

cos(4ωx) = 8 cos4(ωx)− 8 cos2(ωx) + 1,

usw., sowie ähnliche Formeln für sin(kωx), k = 1, . . . , n.

1.2.2 Beispiele

1. Für L > 0 betrachten wir die Sägezahnwelle

f(x) :=x

L, x ∈ [0, L) , f(x+ kL) := f(x), k ∈ Z.

Die Funktion ist offensichtlich periodisch mit Periode L. Für die Berech-nung der Fourierkoeffizienten wählen wir x0 = 0 und erhalten, mit parti-eller Integration:

a0 =2

L

L∫0

x

Ldx =

2

L2

x2

2

∣∣∣∣L0

=2

L2

L2

2= 1,

an =2

L

L∫0

x

Lcos (nωx) dx, ω :=

L,

=2

L2

x 1

nωsin (nωx)

∣∣∣∣L0

− 1

L∫0

sin (nωx) dx

=

2

L2

(x

1

nωsin (nωx)

∣∣∣∣L0

+1

n2ω2cos (nωx)|L0

)ωL=2π

= 0, n ∈ N,

bn =2

L

L∫0

x

Lsin (nωx) dx

=2

L2

−x 1

nωcos (nωx)

∣∣∣∣L0

+1

L∫0

cos (nωx) dx

=

2

L2

(−x 1

nωcos (nωx)

∣∣∣∣L0

+1

n2ω2sin (nωx)|L0

)ωL=2π

=2

L2

(− L

)= − 2

nωL= − 1

πn, n ∈ N.

Page 10: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 10

Also ist die Fourierreihe von f gegeben durch

f(x) =1

2−∞∑n=1

1

πnsin (nωx) , ω =

L.

−0.5 0 0.5 1 1.5−0.2

0

0.2

0.4

0.6

0.8

1

1.2

x/L

y

y = f(x)y = f

3(x)

y = f10

(x)

y = f40

(x)

Die Amplituden der überlagerten harmonischen Schwingungen sind gege-ben durch

|An| =√a2n + b2n =

1

πn, n ∈ N.

2. Für L > 0 und α ∈ (0, 1) betrachten wir die Rechteckschwingung

fα(x) :=

{1, x ∈ [0, αL)0, x ∈ [αL,L)

, f(x+ kL) := f(x), k ∈ Z.

Die Funktion ist L-periodisch. Für die Berechnung der Fourierkoeffizientenwählen wir x0 = 0 und erhalten

a0 =2

L

L∫0

fα(x) dx =2

L

αL∫0

1 dx+

L∫αL

0 dx

=2

LαL = 2α,

an =2

L

αL∫0

cos (nωx) dx =2

L

1

nωsin (nωx)|αL0 , ω :=

L,

=1

πnsin (nωαL) =

sin (2πnα)

πn, n ∈ N,

bn =2

L

αL∫0

sin (nωx) dx = − 2

L

1

nωcos (nωx)|αL0

= − 1

πn(cos (nωαL)− 1) =

1− cos (2πnα)

πn, n ∈ N.

Page 11: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 11

Daher ist die Fourierreihe von fα gegeben durch

fα(x) = α+

∞∑n=1

(sin (2πnα)

πncos (nωx) +

1− cos (2πnα)

πnsin (nωx)

),

mit ω = 2πL . Die Amplituden der überlagerten harmonischen Schwingun-

gen sind gegeben durch

|An| =√a2n + b2n =

2 |sin (πnα)|πn

, n ∈ N.

Speziell ist der Fall α = 12 (symmetrische Rechteckschwingung), für den

alle geraden Fourierkoeffizienten verschwinden:

f 12(x) =

1

2+

∞∑n=1

1− (−1)n

πnsin (nωx)

=1

2+

∞∑n=1

n ungerade

2

πnsin (nωx) , ω =

L.

Die Grenzwerte für α→ 0 und α→ 1 sind gegeben durch die konstantenFunktionen

limα→0

fα(x) = 0, limα→1

fα(x) = 1, x ∈ R.

−0.5 0 0.5 1 1.5−0.2

0

0.2

0.4

0.6

0.8

1

y

−0.5 0 0.5 1 1.5−0.2

0

0.2

0.4

0.6

0.8

1

x/L

y

y = f1/3

(x)

y = f1/3,3

(x)

y = f1/3,10

(x)

y = f1/3,40

(x)

y = f1/2

(x)

y = f1/2,3

(x)

y = f1/2,10

(x)

y = f1/2,40

(x)

Page 12: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 12

3. Für L > 0 betrachten wir die Dreieckschwingung

f(x) :=2

L|x|, x ∈ [−L/2, L/2) , f(x+ kL) = f(x), k ∈ Z.

Für die Berechnung der Fourierkoeffizienten wählen wir x0 = −L/2 underhalten

a0 =2

L

L/2∫−L/2

2

L|x|dx =

4

L2

0∫−L/2

(−x) dx+

L/2∫0

xdx

=

4

L2

(− x2

2

∣∣∣∣0−L/2

+x2

2

∣∣∣∣L/20

)=

4

L2

(L2

8+L2

8

)= 1,

an =2

L

L/2∫−L/2

2

L|x| cos (nωx) dx, ω :=

L,

=4

L2

− 0∫−L/2

x cos (nωx) dx+

L/2∫0

x cos (nωx) dx

=

8

L2

L/2∫0

x cos (nωx) dx = 2(−1)

n − 1

π2n2, n ∈ N,

bn =2

L

L/2∫−L/2

2

L|x| sin (nωx) dx

=4

L2

− 0∫−L/2

x sin (nωx) dx+

L/2∫0

x sin (nωx) dx

= 0, n ∈ N.

Weil alle geraden Fourierkoeffizienten verschwinden, ist die Fourierreihevon f gegeben durch

f(x) =1

2−

∞∑n=1

n ungerade

4

π2n2cos (nωx) , ω =

L.

Page 13: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

1 APPROXIMATION: TAYLOR- UND FOURIERREIHEN 13

−0.5 0 0.5 1 1.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x/L

y

y = f(x)y = f

3(x)

y = f10

(x)

y = f40

(x)

Die Amplituden der überlagerten harmonischen Schwingungen sind gege-ben durch

|An| =√a2n + b2n =

{0, n gerade

4π2n2 , n ungerade , n ∈ N.

Für diese drei Beispiele zeichnen wir die Amplitudenspektren (|An| als Funk-tion von n). Bei einem hörbaren Signal mit Grundfrequenz ω bestimmen dieAmplituden der Obertöne (|An|, n ≥ 2) die Klangfarbe.

100

101

102

103

10−6

10−4

10−2

100

n

|An|

Saegezahn

Rechteck, α = 1/3

Rechteck, α = 1/2

Dreieck

1/n

1/n2

Wir beobachten, dass die Amplituden für die stetige Funktion (Dreieckschwin-gung) viel schneller abfallen mit zunehmendem n (|An| = O(n−2), n→∞) alsdie Amplituden der unstetigen Funktionen (Sägezahn- und Rechteckschwingung;|An| = O(n−1), n→∞). Auf die allgemeine Konvergenztheorie von Fourierrei-hen wollen wir hier nicht eingehen, aber man kann sagen, dass die Amplitudender überlagerten harmonischen Schwingungen desto schneller mit n abfallen, jeglatter die Funktion f ist.

Beachten Sie auch die “Überschwinger” der Fourierpolynome in der Näheder Unstetigkeitsstellen. Während diese für zunehmendes n immer näher an dieUnstetigkeitsstelle rücken, nimmt ihre Amplitude nicht ab, sondern beträgt fürn→∞ ca. 9 % der Sprunghöhe! Dieses Gibbssche Phänomen (nach J. W. Gibbs,1839–1903) hat weitreichende Auswirkungen in der Signalverarbeitung.

Page 14: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 14

1.2.3 Fourierpolynome in MATLAB

In MATLAB können wir die symbolische Integration verwenden, um die Fou-rierkoeffizienten an und bn nach (15), (16) zu berechnen.

Für die π-periodische Funktion f(x) = sin2(x) (ω = 2ππ = 2) berechnen wir

z. B. die ersten 10 Fourierkoeffizienten und speichern sie in Vektoren a, b ∈ R10

ab:

>> syms x>> f = sin(x)^2;>> L = pi; % Periode der Funktion f>> w = 2*pi/L; % Kreisfrequenz>> n=0;>> a0 = 2/L*eval(int(f*cos(n*w*x),x,0,L));>> for n=1:10>> a(n) = 2/L*eval(int(f*cos(n*w*x),x,0,L));>> b(n) = 2/L*eval(int(f*sin(n*w*x),x,0,L));>> end

Wir erhalten a0 = 1, a1 = − 12 , an = 0, n ≥ 2, und bn = 0, n ∈ N. Die

Fourierreihe der Funktion f(x) = sin2(x) bricht also nach endlich vielen Gliedernab (!):

f(x) = sin2(x) =1

2− 1

2cos(ωx) =

1

2(1− cos (ωx))

ω=2=

1

2(1− cos (2x)) .

Dies hätten wir natürlich auch mit dem Additionstheorem für die Kosinusfunk-tion und mit dem Trigonometrischen Pythagoras beweisen können:

cos(2x) = cos(x+ x) = cos(x) cos(x)− sin(x) sin(x) = cos2(x)− sin2(x)

= 1− sin2(x)− sin2(x) = 1− 2 sin2(x).

Daraus folgt f(x) = sin2(x) = 12 (1− cos(2x)).

2 Lineare GleichungssystemeIn diesem Kapitel geht es um die numerische Lösung von linearen Gleichungs-systemen der Form

Ax = b, (18)

wobei die Matrix A ∈ Rn×n und der Vektor b ∈ Rn (“rechte Seite”) gegebensind. Viele numerische Methoden, die wir später noch in dieser Vorlesung sehenwerden, führen die Lösung von komplizierteren Problemen auf die Lösung voneinem oder mehreren linearen Gleichungssystemen zurück; deshalb ist es wichtig,dass wir lineare Gleichungssysteme effizient numerisch lösen können.

Im Allgemeinen gibt es drei Fälle für die Lösbarkeit von linearen Gleichungs-systemen (vgl. Vorlesung MLAE):

Page 15: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 15

• Das lineare Gleichungssystem hat keine Lösung, z. B.(1 22 4

)x =

(13

),

• das lineare Gleichungssystem hat genau eine Lösung, z. B.(1 23 2

)x =

(13

)(Lösung x =

(10

)),

• das lineare Gleichungssystem hat unendlich viele Lösungen, z. B.(1 22 4

)x =

(12

)(Lösungen xt =

(2t

12 − t

), t ∈ R).

Wir nehmen im Folgenden an, dass unser lineares Gleichungssystem (18) genaueine Lösung hat. In diesem Fall ist A invertierbar und die Lösung von (18) gege-ben durch x = A−1b. Zur numerischen Lösung von (18) werden wir aber nichtdie Inverse A−1 berechnen, weil das zu aufwändig ist, wie wir sehen werden.

Die Methoden zur Lösung solcher linearen Gleichungssysteme werden in di-rekte und iterative Verfahren aufgeteilt.

2.1 Direkte VerfahrenEin direktes Verfahren zur numerischen Lösung von (18) liefert nach endlichvielen Schritten die Lösung x ∈ Rn, die bis auf Rundungsfehler (!) exakt ist.

2.1.1 Gausssches Eliminationsverfahren und LR-Zerlegung

Das Gausssche Eliminationsverfahren (nach C. F. Gauss, 1777–1855) ist eindirektes Verfahren zur Lösung linearer Gleichungssysteme. Es besteht aus denbeiden Etappen

1. Vorwärtselimination: Verwendung von elementaren Zeilenumformungen,um das Gleichungssystem auf Stufenform zu bringen,

2. Rückwärtseinsetzen: Ausrechnen der Variablen, beginnend bei der letztenZeile, und Einsetzen in die darüberliegenden Zeilen.

Beispiel Wir wenden das Gausssche Eliminationsverfahren auf das lineareGleichungssystem 3 −2 5

2 1 0−4 −2 1

x1x2x3

=

334−4

(n = 3) an:

Page 16: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 16

1. Vorwärtselimination:3 −2 52 1 0−4 −2 1︸ ︷︷ ︸

=A

334−4︸ ︷︷ ︸=b

3 −2 5 330 7

3 − 103 −18

0 − 143

233 40

3 −2 50 7

3 − 103

0 0 1︸ ︷︷ ︸=:R

33−18

4︸ ︷︷ ︸=:y

Bemerkung: Im k-ten Vorwärtseliminationsschritt werden die Elementeunterhalb der Diagonalen in der k-ten Spalte auf 0 gebracht. Es werdenn− 1 solche Schritte benötigt, um das lineare Gleichungssystem auf Stu-fenform zu bringen.

2. Rückwärtseinsetzen:3 −2 50 7

3 − 103

0 0 1︸ ︷︷ ︸=R

33−18

4︸ ︷︷ ︸=y

x3=4 einsetzen→

3 −2 0 130 7

3 0 − 143

0 0 1 4

x2 ausrechnen→

3 −2 0 130 1 0 −20 0 1 4

x2=−2 einsetzen→

3 0 0 90 1 0 −20 0 1 4

x1 ausrechnen→

1 0 00 1 00 0 1︸ ︷︷ ︸

I

3−24︸ ︷︷ ︸=x

Wir erhalten also die Lösung x = (3,−2, 4)

>. Allgemein bringen wir bei derVorwärtselimination das Gleichungssystem Ax = b durch elementare Zeilenum-formungen auf die Form Rx = y, wobei R eine rechte (obere) Dreiecksmatrixist. Das neue Gleichungssystem kann dann durch Rückwärtseinsetzen gelöst wer-den.

LR-Zerlegung Für die Lösung des linearen Gleichungssystems (18) mit einemComputerprogramm ist es praktisch, das Gausssche Eliminationsverfahren alsLR-Zerlegung A = LR mit einer linken (unteren) Dreiecksmatrix L und miteiner rechten (oberen) Dreiecksmatrix R zu interpretieren.

Page 17: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 17

Bemerkung: Im englischen Sprachraum heisst die LR-Zerlegung “LU decompo-sition”, und man schreibt A = LU mit einer “lower triangular matrix” L undeiner “upper triangular matrix” U .

Sehen wir uns nämlich die Vorwärtseliminationsschritte im vorherigen Bei-spiel genauer an, so erkennen wir, dass sie als Matrixmultiplikationen mit sog. Fro-beniusmatrizen (nach F. G. Frobenius, 1849–1917) geschrieben werden können: 1 0 0

− 23 1 0

43 0 1

︸ ︷︷ ︸

=:L1

3 −2 52 1 0−4 −2 1

︸ ︷︷ ︸

=A

=

3 −2 50 7

3 − 103

0 − 143

233

=: A,

1 0 00 1 00 2 1

︸ ︷︷ ︸

=:L2

3 −2 50 7

3 − 103

0 − 143

233

︸ ︷︷ ︸

=A

=

3 −2 50 7

3 − 103

0 0 1

︸ ︷︷ ︸

=R

,

also L2A = L2L1A = R. Damit gilt tatsächlich A = L−11 L−12︸ ︷︷ ︸=:L

R, mit der

unteren Dreiecksmatrix

L = L−11 L−12 =

1 0 023 1 0− 4

3 0 1

1 0 00 1 00 −2 1

=

1 0 023 1 0− 4

3 −2 1

,

und wir erhalten die LR-Zerlegung 3 −2 52 1 0−4 −2 1

︸ ︷︷ ︸

=A

=

1 0 023 1 0− 4

3 −2 1

︸ ︷︷ ︸

=L

3 −2 50 7

3 − 103

0 0 1

︸ ︷︷ ︸

=R

. (19)

Für eine allgemeine (3 × 3)-Matrix gehen die Vorwärtssubstitutionen wiefolgt: a11 a12 a13

a21 a22 a23a31 a32 a33

a11 a12 a130 a22 − a21

a11a12 a23 − a21

a11a13

0 a32 − a31a11a12 a33 − a31

a11a13

=:

a11 a12 a130 a21 a230 a32 a33

,

a11 a12 a130 a22 a230 a32 a33

a11 a12 a130 a22 a230 0 a33 − a32

a22a23

=: R,

Page 18: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 18

was wir wieder als Produkte mit Frobeniusmatrizen schreiben können: 1 0 0−a21a11

1 0

−a31a110 1

︸ ︷︷ ︸

=:L1

a11 a12 a13a21 a22 a23a31 a32 a33

︸ ︷︷ ︸

=A

=

a11 a12 a130 a22 − a21

a11a12 a23 − a21

a11a13

0 a32 − a31a11a12 a33 − a31

a11a13

=: A,

1 0 00 1 00 − a32a22

1

︸ ︷︷ ︸

=:L2

a11 a12 a130 a22 a230 a32 a33

︸ ︷︷ ︸

=A

=

a11 a12 a130 a22 a230 0 a33 − a32

a22a23

= R.

Es gilt also wieder L2A = L2L1A = R und damit A = L−11 L−12 R, mit derunteren Dreiecksmatrix

L = L−11 L−12 =

1 0 0a21a11

1 0a31a11

0 1

1 0 00 1 00 a32

a221

=

1 0 0a21a11

1 0a31a11

a32a22

1

.

Für eine allgemeine (n× n)-Matrix A, n ∈ N erhalten wir den folgenden Pseu-docode zur Berechnung der LR-Zerlegung:

L = In (Einheitsmatrix der Grösse n× n)

for k = 1, 2, . . . , n− 1

for i = k + 1, k + 2, . . . , n

`ik =aikakk

aik = 0

for j = k + 1, k + 2, . . . , n

aij = aij − `ikakjend

end(nach dieser Schleife gilt aik = 0, i > k, d. h. in der k-ten Spalte sindalle Einträge unterhalb der Diagonalen gleich 0)

end

R = A

Beachten Sie, dass die Diagonalelemente von L gleich 1 sind.

Lösung eines linearen Gleichungssystems mit Hilfe einer LR-ZerlegungDie Lösung des linearen GleichungssystemsAx = bmit Hilfe einer LR-Zerlegungder Matrix A erfolgt in drei Schritten:

1. Bestimmung einer LR-Zerlegung der Matrix A = LR,

Page 19: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 19

2. Lösung des linearen Gleichungssystems Ly = b nach y(durch Vorwärtseinsetzen, s. u.),

3. Lösung des linearen Gleichungssystems Rx = y nach x(durch Rückwärtseinsetzen, s. u.).

Dieser Algorithmus folgt aus den äquivalenten Umformungen

Ax = b ⇔ L Rx︸︷︷︸=:y

= b ⇔ Ly = bRx = y

Vorwärtseinsetzen Wir betrachten wieder das lineare Gleichungssystem ausdem vorherigen Beispiel. Die Matrix A hat die LR-Zerlegung (19). Wir lösendas lineare Gleichungssystem Ly = b durch Vorwärtseinsetzen: 1 0 0 33

23 1 0 4− 4

3 −2 1 −4

y1=33 einsetzen→

1 0 0 330 1 0 −180 −2 1 40

y2=−18 einsetzen→

1 0 0 330 1 0 −180 0 1 4

Wir erhalten also die Lösung y = (33,−18, 4)

>.Für eine allgemeine linke (untere) Dreiecksmatrix der Grösse 3×3 mit Einsen

auf der Diagonalen geht das Vorwärtseinsetzen wie folgt: 1 0 0 b1`21 1 0 b2`31 `32 1 b3

y1=b1 einsetzen→

1 0 0 b10 1 0 b2 − `21y10 `32 1 b3 − `31y1

y2=b2−`21y1 einsetzen→

1 0 0 b10 1 0 b2 − `21y10 0 1 b3 − (`31y1 + `32y2)

Für eine linke (untere) Dreiecksmatrix der Grösse n × n mit Einsen auf derDiagonalen erhalten wir den folgenden Pseudocode für das Vorwärtseinsetzen:

y1 = b1

for i = 2, . . . , n

s = 0

for j = 1, 2, . . . , i− 1

s = s+ `ijyj

endyi = bi − s

end

Page 20: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 20

Rückwärtseinsetzen Wir lösen das lineare Gleichungssystem Rx = y mitder rechten (oberen) Dreiecksmatrix R aus (19) und mit der vorhin durch Vor-wärtseinsetzen berechneten rechten Seite y = (33,−18, 4)

>: 3 −2 5 330 7

3 − 103 −18

0 0 1 4

x3=4 einsetzen→

3 −2 0 130 7

3 0 − 143

0 0 1 4

x2 ausrechnen→

3 −2 0 130 1 0 −20 0 1 4

x2=−2 einsetzen→

3 0 0 90 1 0 −20 0 1 4

x1 ausrechnen→

1 0 0 30 1 0 −20 0 1 4

Wir erhalten also wieder die Lösung x = (3,−2, 4)

>.Für eine allgemeine rechte (obere) Dreiecksmatrix der Grösse 3× 3 geht das

Rückwärtseinsetzen wie folgt: r11 r12 r13 y10 r22 r23 y20 0 r33 y3

x3 ausrechnen→

r11 r12 r13 y10 r22 r23 y20 0 1 y3

r33

x3=

y3r11

einsetzen→

r11 r12 0 y1 − r13x30 r22 0 y2 − r23x30 0 1 y3

r33

x2 ausrechnen→

r11 r12 0 y1 − r13x30 1 0 y2−r23x3

r220 0 1 y3

r33

x2=

y2−r23x3r22

einsetzen→

r11 0 0 y1 − (r13x3 + r12x2)0 1 0 y2−r23x3

r220 0 1 y3

r33

x1 ausrechnen→

1 0 0 y1−(r13x3+r12x2)r11

0 1 0 y2−r23x3

r220 0 1 y3

r33

Page 21: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 21

Für eine rechte (obere) Dreiecksmatrix der Grösse n × n erhalten wir den fol-genden Pseudocode für das Rückwärtseinsetzen:

xn = ynrnn

for i = n− 1, n− 2, . . . , 1

s = 0

for j = i+ 1, i+ 2 . . . , n

s = s+ rijxj

end

xi =yi − srii

end

Rechenaufwand und Speicherplatzbedarf Die (n × n)-Matrizen A, diebei der numerischen Lösung von Problemen aus der Praxis auftreten, sind oftsehr gross (n = 105 ∼ 107). Wir wollen den Rechenaufwand und den Speicher-platzbedarf für die vorher beschriebenen Algorithmen zur LR-Zerlegung undzum Vorwärts- und Rückwärtseinsetzen als Funktion von n berechnen. Für denRechenaufwand zählen wir nur Multiplikations- und Divisionsoperationen, undwir erhalten

ALR(n) =

n−1∑k=1

n∑i=k+1

1 +

n∑j=k+1

1

=

n−1∑k=1

n∑i=k+1

(1 + n− k)

=

n−1∑k=1

(n− k) (n− k + 1) =

n−1∑k=1

(k2 − (2n+ 1) k + n(n+ 1)

)=

n−1∑k=1

k2 − (2n+ 1)

n−1∑k=1

k + (n− 1)n(n+ 1)

=(n− 1)n(2n− 1)

6− (2n+ 1)

(n− 1)n

2+ (n− 1)n(n+ 1)

=n3

3− n

3= O(n3), n→∞,

AVE(n) =

n∑i=2

i−1∑j=1

1 = · · · = n2

2− n

2= O(n2), n→∞,

ARE(n) = 1 +

n−1∑i=1

1 +

n∑j=i+1

1

= · · · = n2

2+n

2= O(n2), n→∞.

Der gesamte Rechenaufwand zur Lösung eines linearen GleichungssystemsAx =b mit Hilfe einer LR-Zerlegung der Matrix A ist also gegeben durch

ALGS(n) = ALR(n)+AVE(n)+ARE(n) =n3

3+n2−n

3= O(n3), n→∞. (20)

Page 22: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 22

Der Speicherplatzbedarf verhält sich offensichtlich wie O(n2), n→∞.

Nebenprodukt der LR-Zerlegung: Determinante Ist die LR-ZerlegungA = LR einer Matrix berechnet, so kann man auch die Determinante von Aleicht berechnen. Es gilt nämlich

det (A) = det (LR) = det (L) det (R) =

n∏i=1

rii, (21)

wobei wir verwendet haben, dass L und R Dreiecksmatrizen sind und dass dieDiagonalelemente von L alle gleich 1 sind. Also kann auch die Determinanteeiner (n× n)-Matrix mit Aufwand O(n3), n→∞, berechnet werden.

Für die Matrix aus dem vorherigen Beispiel mit LR-Zerlegung (19) erhaltenwir die Determinante

det

3 −2 52 1 0−4 −2 1

= det

3 −2 50 7

3 − 103

0 0 1

= 3 · 7

3· 1 = 7.

Lösung für mehrere rechte Seiten, Berechnung der Inversen Es seienm > 1 lineare Gleichungssysteme der Form Ax` = b`, ` = 1, . . . ,m, gegeben.Ein m-maliges Anwenden des vorhin beschriebenen Lösungsalgorithmus führtauf einen Rechenaufwand von

mALGS(n) =mn3

3+mn2 − mn

3.

Insbesondere erhalten wir für m = n einen Aufwand von O(n4), n→∞!Da die Matrix A nicht von ` abhängt, müssen wir ihre LR-Zerlegung aber

nur ein einziges Mal berechnen:

Berechnung der LR-Zerlegung A = LR

for ` = 1, 2, . . . ,m

Lösung von Ly = b` nach y (Vorwärtseinsetzen)

Lösung von Rx` = y nach x` (Rückwärtseinsetzen)

end

Der Rechenaufwand ist dann nur

ALR(n) +m (AVE(n) +ARE(n)) =n3

3+mn2 − n

3,

und daher auch für m = n nur O(n3), n→∞.Als Anwendung können wir die Inverse von A mit Rechenaufwand O(n3),

n → ∞, berechnen: Die Inverse der Matrix A ist Lösung der Matrixgleichung

Page 23: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 23

AA−1 = I. Bezeichnen wir die `-te Spalte von A−1 mit x`, so erhalten wirdie linearen Gleichungssysteme Ax` = e`, ` = 1, . . . , n, wobei e` den `-tenEinheitsvektor bezeichnet. Dies ist genau der Fall von oben mit m = n, und wirerhalten den folgenden Rechenaufwand für die Berechnung der Inversen einer(n× n)-Matrix:

AINV(n) =4

3n3 − n

3. (22)

Zur Berechnung der Inversen der Matrix aus unserem Beispiel müssen wir diedrei linearen Gleichungssysteme 3 −2 5

2 1 0−4 −2 1

x1 =

100

,

3 −2 52 1 0−4 −2 1

x2 =

010

,

3 −2 52 1 0−4 −2 1

x3 =

001

lösen, wozu wir natürlich die bereits berechnete LR-Zerlegung (19) verwenden.Wir erhalten die Inverse

A−1 =

3 −2 52 1 0−4 −2 1

−1 =1

7

1 −8 −5−2 23 100 14 7

.

Die Lösung des linearen GleichungssystemsAx = b kann auch als x = A−1bberechnet werden, z. B.

x = A−1b =1

7

1 −8 −5−2 23 100 14 7

334−4

=1

7

21−1428

=

3−24

.

Weil der Aufwand für ein Matrix-Vektor-Produkt gleich n2 ist, erhalten wir fürdiese Methode

ALGS,INV(n) =4

3n3 + n2 − n

3.

Im Vergleich zu unserem vorher beschriebenen Lösungsalgorithmus mit Hilfeeiner LR-Zerlegung (Aufwand ALGS(n) (20)) erhalten wir

ALGS,INV(n)

ALGS(n)=

43n

3 + n2 − n3

n3

3 + n2 − n3

=4 + 3

n −1n2

1 + 3n −

1n2

n→∞−→ 4.

Die Lösung eines linearen Gleichungssystems über die Inverse der Matrix ist alsofür n & 100 etwa viermal aufwändiger als die Lösung des Gleichungssystems mitHilfe der LR-Zerlegung der Matrix.

Page 24: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 24

100

101

102

103

104

105

106

2

2.2

2.4

2.6

2.8

3

3.2

3.4

3.6

3.8

4

n

AL

GS

,IN

V(n

)/A

LG

S(n

)

2.1.2 LR-Zerlegung mit Spaltenpivotsuche (Spaltenpivotisierung)

Im Algorithmus für die LR-Zerlegung aus Kap. 2.1.1,

L = In

for k = 1, 2, . . . , n− 1

for i = k + 1, k + 2, . . . , n

`ik =aikakk

aik = 0

for j = k + 1, k + 2, . . . , n

aij = aij − `ikakjend

end

end

R = A,

heisst akk das Pivotelement im k-ten Vorwärtseliminationsschritt. Im Allgemei-nen kann im Verlauf des Algorithmus akk = 0 gelten, worauf der Algorithmuszusammenbricht (vgl. Serie 3, Aufg. 2a).

Beispiel 3 6 52 4 0−4 −2 1︸ ︷︷ ︸

=:A

17−2−4︸ ︷︷ ︸=:b

→ 3 6 5 17

0 0 − 103 − 40

30 6 23

3563

Page 25: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 25

Um die Division durch Null zu vermeiden, kann eine Zeilenvertauschung vorge-nommen werden; diese Operation verändert nicht die Lösungsmenge: 3 6 5 17

2 4 0 −2−4 −2 1 −4

→ 3 6 5 17

0 0 − 103 − 40

30 6 23

3563

2↔3→

3 6 5 170 6 23

3563

0 0 − 103 − 40

3

Wir erhalten ein lineares Gleichungssystem in Stufenform, das wir durch Rück-wärtseinsetzen lösen können (Lösung x = (3,−2, 4)

>). Hier wurden im zweitenVorwärtseliminationsschritt einfach die zweite und die dritte Zeile vertauscht,so dass nach dieser Vertauschung das Pivotelement gleich 6 (also 6= 0) war.

LR-Zerlegung mit Spaltenpivotsuche Im Prinzip kann im k-ten Vorwärts-eliminationsschritt ein beliebiges Pivotelement unterhalb der Diagonalen in derk-ten Spalte gewählt werden – das nennen wir “Spaltenpivotsuche” oder “Spal-tenpivotisierung”. Rechentechnisch ist es jedoch günstig, wenn man jeweils dasbetragsgrösste Element als Pivotelement wählt (dies verhindert in der Regel dieDivision durch sehr kleine Zahlen, vgl. Serie 3, Aufg. 2b). Für das lineare Glei-chungssystem aus dem vorherigen Beispiel führt diese Strategie auf die folgendeStufenform:

3 6 52 4 0−4 −2 1︸ ︷︷ ︸

=A

17−2−4︸ ︷︷ ︸=b

1↔3→

−4 −2 1 −42 4 0 −23 6 5 17

−4 −2 1 −40 3 1

2 −40 9

2234 14

2↔3→

−4 −2 1 −40 9

2234 14

0 3 12 −4

−4 −2 10 9

2234

0 0 − 103︸ ︷︷ ︸

=:R

−414− 40

3︸ ︷︷ ︸=:y

Rückwärtseinsetzen führt auf die Lösung von Rx = y: x = (3,−2, 4)

>. Dieeinzelnen Vorwärtseliminationsschritte lassen sich wieder als Matrixprodukte

Page 26: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 26

mit Frobeniusmatrizen bzw. mit Permutationsmatrizen darstellen: 0 0 10 1 01 0 0

︸ ︷︷ ︸

=:P 1

3 6 52 4 0−4 −2 1

︸ ︷︷ ︸

=A

=

−4 −2 12 4 03 6 5

,

1 0 012 1 034 0 1

︸ ︷︷ ︸

=:L1

−4 −2 12 4 03 6 5

︸ ︷︷ ︸

=P 1A

=

−4 −2 10 3 1

20 9

2234

,

1 0 00 0 10 1 0

︸ ︷︷ ︸

=:P 2

−4 −2 10 3 1

20 9

2234

︸ ︷︷ ︸

=L1P 1A

=

−4 −2 10 9

2234

0 3 12

,

1 0 00 1 00 − 2

3 1

︸ ︷︷ ︸

=:L2

−4 −2 10 9

2234

0 3 12

︸ ︷︷ ︸

=P 2L1P 1A

=

−4 −2 10 9

2234

0 0 − 103

︸ ︷︷ ︸

=R

.

Es gilt alsoL2P 2L1P 1A = L2P 2L1P

>2 P 2P 1A = R,

wobei wir verwendet haben, dass Permutationsmatrizen orthogonal sind (P−12 =P>2 ). Diese Gleichung lässt sich umschreiben zu PA = LR, mit einer Permu-tationsmatrix P und mit einer linken (unteren) Dreiecksmatrix L:

P := P 2P 1 =

0 0 11 0 00 1 0

,

L :=(L2P 2L1P

>2

)−1= P 2L

−11 P>2 L

−12 =

1 0 0− 3

4 1 0− 1

223 1

.

Ausgeschrieben gilt also 0 0 11 0 00 1 0

︸ ︷︷ ︸

=P

3 6 52 4 0−4 −2 1

︸ ︷︷ ︸

=A

=

1 0 0− 3

4 1 0− 1

223 1

︸ ︷︷ ︸

=L

−4 −2 10 9

2234

0 0 − 103

︸ ︷︷ ︸

=R

.

Bemerkungen:

• In MATLAB berechnen Sie die LR-Zerlegung mit Spaltenpivotsuche mitdem Befehl [L,R,P] = lu(A) (vgl. Serie 3, Aufg. 3a).

Page 27: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 27

• Der Algorithmus zur LR-Zerlegung mit Spaltenpivotsuche bricht genaudann zusammen, wenn die Matrix A singulär ist (d. h. er funktioniert fürjede invertierbare Matrix!).

Lösung eines linearen Gleichungssystems mit Hilfe einer LR-Zerlegungmit Spaltenpivotsuche Die Schritte zur Lösung des linearen Gleichungssys-tems Ax = b mit Hilfe einer LR-Zerlegung mit Spaltenpivotsuche lauten

1. Bestimmung einer LR-Zerlegung mit Spaltenpivotsuche, PA = LR,

2. Lösen von Ly = Pb nach y (Vorwärtseinsetzen),

3. Lösen von Rx = y (Rückwärtseinsetzen).

Für das vorherige Beispiel erhalten wir

Pb =

0 0 11 0 00 1 0

17−2−4

=

−417−2

.

Das Vorwärtseinsetzen geht dann wie folgt:1 0 0− 3

4 1 0− 1

223 1︸ ︷︷ ︸

=L

−417−2︸ ︷︷ ︸=Pb

y1=−4 einsetzen→

1 0 0 −40 1 0 140 2

3 1 −4

y2=14 einsetzen→

1 0 00 1 00 0 1︸ ︷︷ ︸

=I

−414− 40

3︸ ︷︷ ︸=:y

,

Durch Rückwärtseinsetzen erhalten wir−4 −2 10 9

2234

0 0 − 103︸ ︷︷ ︸

=R

−414− 40

3︸ ︷︷ ︸=y

x3 ausrechnen→

−4 −2 1 −40 9

2234 14

0 0 1 4

x3=4 einsetzen→

−4 −2 0 −80 9

2 0 −90 0 1 4

x2 ausrechnen→

−4 −2 0 −80 1 0 −20 0 1 4

x2=−2 einsetzen→

−4 0 0 −120 1 0 −20 0 1 4

Page 28: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 28

x1 ausrechnen→

1 0 00 1 00 0 1︸ ︷︷ ︸

=I

3−24︸ ︷︷ ︸=x

,

also wieder die Lösung x = (3,−2, 4)>.

Eine weitere Zerlegung von Matrizen, die QR-Zerlegung, werden wir im Ka-pitel über lineare Ausgleichsprobleme (Kap. 6.1) kennen lernen.

2.2 Iterative VerfahrenEin iteratives Lösungsverfahren für lineare Gleichungssysteme konstruiert aus-gehend von einem Startwert x0 ∈ Rn eine Vektorfolge 〈xk〉, die idealerweise fürk →∞ gegen die Lösung x∗ ∈ Rn von Ax = b, A ∈ Rn×n, b ∈ Rn, konvergiert.In diesem Fall kann die Lösung mit Hilfe eines geeigneten Abbruchkriteriumsbeliebig genau approximiert werden. Iterative Verfahren benötigen oft viel we-niger Speicherplatz als direkte Verfahren und werden deshalb gerne für grosseMatrizen A verwendet.

2.2.1 Jacobi-Verfahren (Gesamtschrittverfahren)

Dieses Verfahren ist nach C. G. J. Jacobi (1804–1851) benannt. Wir illustrierenes zunächst an einem Beispiel mit einer (3× 3)-Matrix.

Beispiel (n = 3): 5 −2 31 2 0−2 1 −4

︸ ︷︷ ︸

=:A

x =

31−1−24

︸ ︷︷ ︸

=:b

. (23)

Wir wählen den Startwert x0 := 0 ∈ R3 (x0 ist offensichtlich keine Lösung von(23)). Im ersten Iterationsschritt lösen wir die folgenden Gleichungen für denVektor x1 = (x1,1, x1,2, x1,3)

>:

5x1,1 − 2x0,2 + 3x0,3 = 31,x0,1 + 2x1,2 = − 1,

− 2x0,1 + x0,2 − 4x1,3 = − 24.

Nachdem der Startvektor x0 = 0 gewählt wurde, lassen sich die Gleichungenleicht lösen:

x1,1 =1

5(31 + 2x0,2 − 3x0,3) = 6.2,

x1,2 =1

2(−1− x0,1) = −0.5,

x1,3 = −1

4(−24 + 2x0,1 − x0,2) = 6,

Page 29: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 29

also x1 = (6.2,−0.5, 6)>. Dieses Verfahren geht jetzt im gleichen Stil weiter,

d. h. im k-ten Iterationsschritt wird der Vektor xk aus dem (bekannten) Vektorxk−1 berechnet als Lösung der Gleichungen

5xk,1 − 2xk−1,2 + 3xk−1,3 = 31,xk−1,1 + 2xk,2 = − 1,

− 2xk−1,1 + xk−1,2 − 4xk,3 = − 24,

also

xk,1 =1

5(31 + 2xk−1,2 − 3xk−1,3) ,

xk,2 =1

2(−1− xk−1,1) ,

xk,3 = −1

4(−24 + 2xk−1,1 − xk−1,2) ,

für k ∈ N. Wir erhalten also eine Folge von Vektoren 〈xk〉, deren erste Gliedergegeben sind durch

k 2 3 4 5 6 7 8 9 10xk,1 2.40 3.10 3.18 2.96 3.03 3.01 3.00 3.00 3.00xk,2 −3.60 −1.70 −2.05 −2.09 −1.98 −2.01 −2.01 −2.00 −2.00xk,3 2.78 3.90 4.03 3.90 4.00 3.99 3.99 4.00 4.00

Die Vektorfolge konvergiert offenbar gegen x∗ := (3,−2, 4)>, und dies ist auch

tatsächlich die Lösung des linearen Gleichungssystems (23): 5 −2 31 2 0−2 1 −4

3−24

=

31−1−24

.

Jacobi-Verfahren Für eine beliebig grosse Matrix A ∈ Rn×n, n ∈ N, berech-nen wir im k-ten Iterationsschritt den Vektor xk ∈ Rn aus dem (bekannten)Vektor xk−1 ∈ Rn als Lösung der Gleichungen

a11xk,1 + a12xk−1,2 + · · · + a1nxk−1,n = b1,a21xk−1,1 + a22xk,2 + · · · + a2nxk−1,n = b2,

......

. . .... =

...an1xk−1,1 + an2xk−1,2 + · · · + annxk,n = bn.

Die Lösung ist gegeben durch

xk,1 =1

a11(b1 − (a12xk−1,2 + · · ·+ a1nxk−1,n)) ,

xk,2 =1

a22(b2 − (a21xk−1,1 + · · ·+ a2nxk−1,n)) ,

...

xk,n =1

ann(bn − (an1xk−1,1 + an2xk−1,2 + . . . )) ,

Page 30: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 30

oder kurz

xk,i =1

aii

bi − n∑j=1j 6=i

aijxk−1,j

=1

aii

bi + aiixk−1,i −n∑j=1

aijxk−1,j

=

1

aii

bi +

n∑j=1

(aiiδij − aij)xk−1,j

, i = 1, . . . , n, k ∈ N,

mit dem Kronecker-Delta (L. Kronecker, 1823 – 1891)

δij :=

{1, i = j0, i 6= j

. (24)

In Matrix-Vektor-Schreibweise erhalten wir

xk = D−1 (b+ (D −A)xk−1)

= D−1 (D −A)xk−1 +D−1b, k = 1, 2, 3, . . . , (25)

mit der Diagonalmatrix

D :=

a11 0

a22. . .

0 ann

, D−1 =

1a11

01a22

. . .0 1

ann

.

Das Jacobi-Verfahren kann nur dann durchgeführt werden, wenn die Diagonal-elemente der Matrix A ungleich 0 sind. Es ist ein sog. Splitting-Verfahren, weildie Matrix A wie folgt aufgeteilt (gesplittet) wird: A = D − (D −A).

Abbruchkriterium Um beurteilen zu können, wie nahe der Vektor xk an derexakten Lösung x∗ (die wir ja nicht kennen!) ist, betrachten wir das Residuumnach dem k-ten Iterationsschritt,

rk := b−Axk ∈ Rn, k ∈ N.

Wenn xk → x∗, k → ∞, mit Ax∗ = b gilt, dann gilt rk → 0, k → ∞. Daherkönnen wir die Iteration z. B. dann abbrechen, wenn eine Norm des Residuums(z. B. die Euklidische Norm im Rn) unter eine vorher gewählte Toleranz tol > 0fällt, wenn also ‖rk‖ ≤ tol gilt. Für das vorherige Beispiel erhalten wir diefolgende Grafik für die (Euklidische) Norm der Residuen rk:

Page 31: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 31

0 10 20 30 40 50 6010

−20

10−15

10−10

10−5

100

k

|| r

k ||

Eine Toleranz tol := 10−6 wäre in diesem Beispiel nach 17 Iterationen erreicht(‖r17‖ ' 6.43 · 10−7).

Pseudocode Bei der Implementierung des Jacobi-Verfahrens auf einem Rech-ner verwenden wir zwei Vektoren x,xold ∈ Rn, die ständig mit neuen Wertenüberschrieben werden. Wir erhalten den folgenden Pseudocode zur Lösung deslinearen Gleichungssystems Ax = b mit dem Jacobi-Verfahren:

Setze k = 0, wähle einen Startwert x ∈ Rn und eine Toleranz tol > 0

while ‖b−Ax‖ > tol (Abbruchkriterium: ‖b−Ax‖ ≤ tol)

k = k + 1 (k ist nur ein Zähler für die Anzahl der Iterationen)

xold = x

for i = 1, 2, . . . , n

s = 0

for j = 1, 2, . . . , n

if j 6= i

s = s+ aijxoldj

endend

xi =bi − saii

end

end

Beachten Sie, dass die Einträge xi, i = 1, . . . , n, in jedem Iterationsschritt par-allel berechnet werden können.

Page 32: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 32

Rechenaufwand Die Anzahl der Multiplikationen im k-ten Iterationsschrittdes Jacobi-Verfahrens ist gegeben durch

AJ,k(n) =

n∑i=1

n∑

j=1j 6=i

1

+ 1

=

n∑i=1

(n− 1 + 1) = n2 = O(n2), n→∞.

2.2.2 Gauss-Seidel-Verfahren (Einzelschrittverfahren)

Das nach C. F. Gauss (1777–1855) und P. L. von Seidel (1821–1896) benannteVerfahren funktioniert ähnlich wie das Jacobi-Verfahren, ist aber sequenziell.Im k-ten Iterationsschritt werden nämlich zur Berechnung von xk,i die bereitszuvor berechneten Einträge xk,1, xk,2, . . . , xk,i−1 hinzugezogen.

Beispiel Im k-ten Iterationsschritt berechnen wir ausgehend vom Vektor xk−1 ∈R3 die Einträge xk,i, i = 1, . . . , 3, schrittweise als Lösung der Gleichungen

5xk,1 − 2xk−1,2 + 3xk−1,3 = 31,xk,1 + 2xk,2 = − 1,

− 2xk,1 + xk,2 − 4xk,3 = − 24,

für k ∈ N. Wir erhalten also

xk,1 =1

5(31 + 2xk−1,2 − 3xk−1,3) ,

xk,2 =1

2(−1− xk,1) ,

xk,3 = −1

4(−24 + 2xk,1 − xk,2) .

Für den Startvektor x0 = 0 ∈ R3 erhalten wir die folgenden ersten Glieder derVektorfolge 〈xk〉:

k 1 2 3 4 5 6 7 8 9xk,1 6.20 3.56 3.10 3.02 3.00 3.00 3.00 3.00 3.00xk,2 −3.60 −2.28 −2.05 −2.01 −2.00 −2.00 −2.00 −2.00 −2.00xk,3 2.00 3.65 3.94 3.99 4.00 4.00 4.00 4.00 4.00

Das Gauss-Seidel-Verfahren konvergiert für dieses Beispiel schneller als das Jacobi-Verfahren, wie man auch an den Normen der Residuen sehen kann:

Page 33: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 33

0 10 20 30 40 50 6010

−20

10−15

10−10

10−5

100

105

k

|| r

k ||

Gauss−Seidel

Jacobi

Eine Toleranz tol := 10−6 wäre mit dem Gauss-Seidel-Verfahren schon nach 11Iterationen erreicht (‖r11‖ ' 3.56 · 10−7).

Gauss-Seidel-Verfahren Im Unterschied zum Jacobi-Verfahren werden zurLösung der i-ten Gleichung im k-ten Iterationsschritt die bereits berechnetenEinträge xk,1, xk,2, . . . , xk,i−1 verwendet (Vorwärtseinsetzen), und wir erhalten

xk,i =1

aii

bi − i−1∑j=1

aijxk,j −n∑

j=i+1

aijxk−1,j

, i = 1, . . . , n, k ∈ N. (26)

Dies schreiben wir auch in der Form

i−1∑j=1

aijxk,j + aiixk,i = bi −n∑

j=i+1

aijxk−1,j , i = 1, . . . , n, k ∈ N,

und wir erhalten in Matrix-Vektor-Schreibweise

xk = (L+D)−1

((L+D)−A)xk−1 + (L+D)−1b, k = 1, 2, 3, . . . , (27)

mit derselben Diagonalmatrix D wie im Jacobi-Verfahren sowie mit der linken(unteren) Dreiecksmatrix

L :=

0 0 · · · 0 0a21 0 · · · 0 0...

.... . .

......

an−1,1 an−1,2 · · · 0 0an1 an2 · · · an,n−1 0

.

Page 34: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 34

Beachten Sie, dass diese Matrix L nichts mit der linken (unteren) Dreiecksmatrixaus der LR-Zerlegung (Kap. 2.1.1) zu tun hat!

Die Aufteilung (splitting) der Matrix A ist beim Gauss-Seidel-Verfahrengegeben durch A = L+D − (L+D −A).

Pseudocode Wir benötigen nur einen Vektor x ∈ Rn, der ständig mit neuenEinträgen überschrieben wird. Wir erhalten den folgenden Pseudocode zur Lö-sung des linearen Gleichungssystems Ax = b mit dem Gauss-Seidel-Verfahren:

Setze k = 0, wähle einen Startvektor x ∈ Rn und eine Toleranz tol > 0

while ‖b−Ax‖ > tol (Abbruchkriterium: ‖b−Ax‖ ≤ tol)

k = k + 1 (Zähler)

for i = 1, 2, . . . , n

s = 0

for j = 1, 2, . . . , n

if j 6= i

s = s+ aijxj

end

end

xi =bi − saii

end

end

Rechenaufwand Wie das Jacobi-Verfahren benötigt auch das Gauss-Seidel-Verfahren AGS,k(n) = n2 = O(n2), n → ∞, Multiplikationen im k-ten Iterati-onsschritt.

Das Gauss-Seidel-Verfahren lässt sich auch sehr leicht von Hand durchführen,und dies wurde im 19. Jahrhundert natürlich gemacht. In einem Brief von 1823schrieb Gauss an C. L. Gerling (1788–1864) anschliessend an eine Erklärungseines Verfahrens:

Ich empfehle Ihnen diesen Modus zur Nachahmung. Schwerlich wer-den Sie je wieder direct eliminiren, wenigstens nicht, wenn Sie mehrals 2 Unbekannte haben. Das indirecte Verfahren lässt sich halb imSchlafe ausführen, oder man kann während desselben an andere Din-ge denken.

Page 35: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

2 LINEARE GLEICHUNGSSYSTEME 35

2.2.3 Allgemeine Splitting-Verfahren und Konvergenz

Es seien eine invertierbare Matrix A ∈ Rn×n und ein Vektor b ∈ Rn gegeben,und gesucht sei die Lösung x∗ ∈ Rn des linearen Gleichungssystems Ax = b.

Sei B ∈ Rn×n eine beliebige invertierbare Matrix, dann teilen wir die MatrixA wie folgt auf (splitting):

A = B − (B −A) .

Jetzt formen wir das lineare Gleichungssystem äquivalent um in eine sog. Fix-punktgleichung:

Ax = b,

(B − (B −A))x = b,

B−1∣∣ Bx− (B −A)x = b,

x−B−1 (B −A)x = B−1b∣∣+B−1 (B −A)x ,

x = B−1 (B −A)x+B−1b =: ϕ(x),

x = ϕ(x).

Allgemeines Splitting-Verfahren Zur numerischen Lösung des linearen Glei-chungssystems Ax = b verwenden wir jetzt eine sog. Fixpunktiteration miteinem Startwert x0 ∈ Rn:

xk = B−1 (B −A)︸ ︷︷ ︸=:M

xk−1 +B−1b, k = 1, 2, 3, . . . . (28)

Der Vektor xk ∈ Rn kann auch als Lösung des linearen GleichungssystemsBxk = (B −A)xk−1 + b interpretiert werden. Für spezielle Wahlen der Ma-trix B erhalten wir die vorher behandelten Jacobi- und Gauss-Seidel-Verfahren,sowie zwei weitere Verfahren:

• B := D: Jacobi-Verfahren (vgl. (25)),

• B := L+D: Gauss-Seidel-Verfahren (vgl. (27)),

• B := 1ωIn, ω ∈ R\{0}: Richardson-Verfahren (L. Richardson, 1881–1953),

• B := L+ 1ωD, ω ∈ R\{0}: “Successive Over-Relaxation”-(SOR)-Verfahren.

Konvergenz Das Splitting-Verfahren (28) konvergiert genau dann gegen dieLösung x∗ des linearen Gleichungssystems Ax = b, wenn der Spektralradiusρ(M) der Matrix M = B−1 (B −A) die Ungleichung ρ(M) < 1 erfüllt. DerSpektralradius der Matrix M ist dabei definiert als

ρ(M) := max {|λi(M)| | i ∈ {1, 2, . . . , n}} , (29)

wobei λi(M) ∈ C, i = 1, . . . , n, die Eigenwerte der Matrix M bezeichnen.Mit der (3 × 3)-Matrix aus dem vorherigen Beispiel erhalten wir ρ(MJ) '

0.500 und ρ(MGS) ' 0.175 für das Jacobi bzw. für das Gauss-Seidel-Verfahren:

Page 36: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 36

−1 −0.5 0 0.5 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Re

Im

Jacobi

Gauss−Seidel

Beide Verfahren konvergieren also für diese Matrix. Für die (3× 3)-Matrix ausdem Beispiel in Kap. 2.1.2 gilt hingegen ρ(MJ) ' 2.40 und ρ(MGS) = 4, alsowerden sowohl das Jacobi- wie auch das Gauss-Seidel-Verfahren für diese Ma-trix divergieren. Für diese Matrix muss ein SOR-Verfahren mit einem geeignetgewählten Wert für den Parameter ω verwendet werden (s. Übungen).

Die Konvergenzordnung von Splitting-Verfahren ist 1, d. h.

∃ c ∈ (0, 1) : ‖xk − x∗‖ ≤ c ‖xk−1 − x∗‖ , k ∈ N (30)

(lineare Konvergenz ), wobei x∗ ∈ Rn die exakte Lösung des linearen Gleichungs-systems Ax = b bezeichnet.

2.2.4 Krylow-Unterraum-Verfahren

Diese nach A. N. Krylow (1863–1945) benannten Verfahren bilden eine weiterewichtige Klasse von iterativen Verfahren zur Lösung von linearen Gleichungs-systemen, die wir hier aus Zeitgründen nicht behandeln.

3 InterpolationIn diesem Kapitel geht es um die Lösung des folgenden Interpolationsproblems:Für n ∈ N0 seien n+ 1 Stützpunkte

(x0, y0), (x1, y1), (x2, y2), . . . , (xn, yn) ∈ R2,

mit Stützstellen x0, x1, x2, · · · , xn ∈ R und mit Stützwerten y0, y1, y2, . . . , yn ∈ Rgegeben. Die Stützstellen sollen dabei paarweise verschieden sein, d. h. xi 6=xj , i 6= j. Die Stützpunkte können z. B. durch Messungen einer unbekannten

Page 37: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 37

Funktion gewonnen werden. Gesucht ist eine Funktion Φ(x; a0, a1, . . . , an) mitn+ 1 Parametern a0, a1, . . . , an ∈ R, deren Graph durch die n+ 1 Stützpunktegeht – die Werte der Parameter a0, a1, . . . , an sind also so zu bestimmen, dass

Φ(xi; a0, a1, . . . , an) = yi, i = 0, 1, . . . , n,

gilt. Je nach Art der Ansatzfunktion Φ unterscheiden wir zwei Arten von Inter-polationsproblemen:

• Bei einem linearen Interpolationsproblem hängt Φ linear von den Parame-tern ab:

Φ(x; a0, a1, . . . , an) = a0Φ0(x) + a1Φ1(x) + · · ·+ anΦn(x),

mit beliebigen Funktionen Φ0,Φ1, . . . ,Φn. Dazu zählen die

– Polynominterpolation, z. B. mit

Φ(x; a0, a1, . . . , an) = a0 + a1x+ a2x2 + · · · anxn. (31)

– trigonometrische Interpolation für n ∈ N0 gerade (n = 2j, j ∈ N0):

Φ(x; a0, a1, . . . , aj , b1, . . . , bj) =a02

+

j∑k=1

(ak cos(kωx) + bk sin(kωx)) ,

wobei ω > 0 gegeben ist (vgl. j-tes Fourierpolynom aus Kap. 1.2).

• Ein Beispiel für ein nichtlineares Interpolationsproblem ist die rationaleInterpolation, bei der

Φ(x; a0, a1, . . . , aj , b0, b1, . . . , bk−1) =a0 + a1x+ a2x

2 + · · · ajxj

b0 + b1x+ · · ·+ bk−1xk−1 + xk

gilt, mit j, k ∈ N0, j + k = n.

Wir beschränken uns im Folgenden auf die Polynominterpolation (31).Bemerkung: Die Unterscheidung zwischen linearen und nichtlinearen Interpola-tionsproblemen geschieht lediglich auf Grund der Abhängigkeit der Ansatzfunk-tion Φ von den Parametern a0, . . . , an. Die Abhängigkeit der Funktion Φ von xist hingegen in beiden Fällen beliebig und i. A. nichtlinear.

3.1 PolynominterpolationBei der Polynominterpolation ist die Ansatzfunktion eine Polynomfunktion. Fürn+ 1 gegebene Stützpunkte (xi, yi) ∈ R2, i = 0, 1, . . . , n, ist also eine Polynom-funktion p vom Grad n gesucht mit

p(xi) = yi, i = 0, 1, . . . , n. (32)

Page 38: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 38

Beispiel Es seien die drei Stützpunkte (−2, 13), ( 54 ,

398 ) und (3, 18) gegeben.

Das gesuchte Interpolationspolynom vom Grad n = 2 ist von der Form

p(x) = a0 + a1x+ a2x2,

mit noch zu bestimmenden Koeffizienten a0, a1, a2 ∈ R. Aus den Interpolations-bedingungen (32) erhalten wir die drei linearen Gleichungen

a0 − 2a1 + 4a2 = 13, a0 +5

4a1 +

25

16a2 =

39

8, a0 + 3a1 + 9a2 = 18,

oder, in Matrix-Vektor-Schreibweise, 1 −2 41 5

42516

1 3 9

a0a1a2

=

13398

18

. (33)

Die Lösung von (33) ist gegeben durch a0 = 3, a1 = −1, a2 = 2, also ist dasgesuchte Interpolationspolynom gegeben durch p(x) = 3− x+ 2x2.

Das so bestimmte Interpolationspolynom kann nun auch zwischen den Stütz-stellen ausgewertet werden, und damit können Werte an Stellen angegeben wer-den, an denen keine Messung erfolgt ist. So z. B. für x = 0 (−2 < 0 < 5

4 ):p(0) = 3.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 32

4

6

8

10

12

14

16

18

x

y

Interpolationspolynom y = p(x), deg(p) = 2Stuetzpunkte (x

i,y

i), i=0,1,2

durch Interpolation erzeugter Punkt (0,3)

Vektorraum der Polynome vom Grad ≤ n Für n ∈ N0 definieren wir dieMenge aller Polynomfunktionen vom Grad kleiner oder gleich n als

Pn := {p : R→ R | p Polynomfunktion, deg(p) ≤ n} . (34)

Zusammen mit der Addition und Skalarmultiplikation von Polynomfunktionen,

(p+ q) (x) := p(x) + q(x), p, q ∈ Pn,(λp) (x) := λp(x), p ∈ Pn, λ ∈ R,

wird Pn zu einem (n+ 1)-dimensionalen Vektorraum über R (vgl. MLAE).

Page 39: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 39

Eindeutigkeit der Lösung des Interpolationsproblems Seien p, q ∈ Pnzwei Lösungen des Interpolationsproblems (32), d. h. p(xi) = q(xi) = yi, i =0, 1, . . . , n. Dann ist r := p − q ∈ Pn, und es gilt r(xi) = p(xi) − q(xi) =yi − yi = 0, i = 0, 1, . . . , n. r ist also eine Polynomfunktion vom Grad ≤ n mitn + 1 Nullstellen. Nach dem Fundamentalsatz der Algebra muss r ≡ 0 gelten,also p ≡ q.

Daher hat das Interpolationsproblem (32) höchstens eine Lösung p ∈ Pn. DieExistenz einer Lösung hat J.-L. Lagrange (1736–1813) konstruktiv nachgewiesen(s. u.).

Basisdarstellung des Interpolationspolynoms Sei {Φ0,Φ1, . . . ,Φn} ⊆ Pneine Basis von Pn, und sei p ∈ Pn. Bzgl. dieser Basis hat die Polynomfunktionp die Darstellung

p(x) = a0Φ0(x) + a1Φ1(x) + a2Φ2(x) + · · ·+ anΦn(x), x ∈ R, (35)

mit den Koeffizienten a0, a1, . . . , an ∈ R. Aus den Interpolationsbedingungen(32) erhalten wir n+ 1 lineare Gleichungen für die n+ 1 unbekannten Koeffizi-enten a0, a1, . . . , an:

a0Φ0(xi) + a1Φ1(xi) + a2Φ2(xi) + · · ·+ anΦn(xi) = yi, i = 0, . . . , n,

oder in Matrix-Vektor-SchreibweiseΦ0(x0) Φ1(x0) Φ2(x0) · · · Φn(x0)Φ0(x1) Φ1(x1) Φ2(x1) · · · Φn(x1)

......

.... . .

...Φ0(xn) Φ1(xn) Φ2(xn) · · · Φn(xn)

︸ ︷︷ ︸

((n+1)×(n+1))-Matrix

a0a1...an

=

y0y1...yn

. (36)

Eine numerisch effiziente Berechnung des Interpolationspolynoms für gegebeneStützpunkte erfordert sowohl eine schnelle Lösung des linearen Gleichungssys-tems (36) zur Berechnung der Koeffizienten als auch eine schnelle Auswertungvon (35) an einer gegebenen Stelle x.

Je nach Wahl der Basis von Pn gelingt dies mehr oder weniger gut, wie wirim Folgenden zeigen werden.

Standardbasis (Monome) Die Standardbasisfunktionen von Pn sind dieMonome Φj(x) := xj , j = 0, . . . , n. Ausgewertet an den Stützstellen erhaltenwir Φj(xi) = xji , i, j = 0, . . . , n. Das lineare Gleichungssystem (36) hat daher inder Standardbasis die Form

1 x0 x20 · · · xn01 x1 x21 · · · xn1...

......

. . ....

1 xn x2n · · · xnn

a0a1...an

=

y0y1...yn

,

Page 40: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 40

mit einer sog. Vandermonde-Matrix (nach A.-T. Vandermonde, 1735–1796). InMATLAB wird diese Matrix mit dem Befehl vander(x) aufgestellt, wobei imVektor x die Stützstellen gespeichert sind. Mit dem Befehl a = vander(x)\ywird das Gleichungssystem gelöst und die Koeffizienten a0, a1, . . . , an des In-terpolationspolynoms berechnet, wobei im Vektor y die Stützwerte gespeichertsind. Der Rechenaufwand dafür ist O(n3), n→∞ (s. Kap. 2.1.1).

Sind die Koeffizienten des Interpolationspolynoms berechnet, so kann es aneiner beliebigen Stelle x nach (35) ausgewertet werden:

p(x) = a0 + a1x+ a2x2 + · · ·+ anx

n,

was O(n2), n→∞, Multiplikationen erfordert.Bemerkung: Die Auswertung des Interpolationspolynoms an einer Stelle ausser-halb des durch die kleinste und die grösste Stützstelle begrenzten Intervalls wirdals Extrapolation bezeichnet.

Die Auswertung des Interpolationspolynoms kann mit deutlich weniger Mul-tiplikationen erfolgen, wenn die folgende Darstellung verwendet wird:

p(x) = a0 + x (a1 + x (a2 + x (· · ·+ x (an−1 + xan)))) .

Die Auswertung mit dem sog. Horner-Schema (W. G. Horner, 1786–1837) er-fordert nur O(n), n→∞, Multiplikationen.

In MATLAB erfolgt die Auswertung des Interpolationspolynoms mit demBefehl yy = polyval(a,xx) wobei im Vektor a die zuvor berechneten Koef-fizienten des Interpolationspolynoms gespeichert sind. Der Vektor xx enthältdiejenigen Werte, an denen das Interpolationspolynom ausgewertet werden soll.

Lagrange-Basis (J.-L. Lagrange, 1736–1813) In der Lagrange-Basis,

Φj(x) :=

n∏k=0k 6=j

x− xkxj − xk

, j = 0, . . . , n, (37)

gilt Φj(xi) = δij , i, j = 0, . . . , n, mit dem Kronecker-Delta (24). Damit steht imlinearen Gleichungssystem (36) die Einheitsmatrix:

1 0 0 · · · 00 1 0 · · · 0...

......

. . ....

0 0 0 · · · 1

a0a1...an

=

y0y1...yn

,

und die Lösung ist daher gegeben durch ai = yi, i = 0, . . . , n. Dies erfordertüberhaupt keine Multiplikationen. Das Interpolationspolynom ist gegeben durch(35):

p(x) = y0

n∏k=0k 6=0

x− xkx0 − xk

+ y1

n∏k=0k 6=1

x− xkx1 − xk

+ y2

n∏k=0k 6=2

x− xkx2 − xk

+ · · ·+ yn

n∏k=0k 6=n

x− xkxn − xk

.

Page 41: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 41

Die Auswertung von p erfordert O(n2), n→∞, Multiplikationen.Bemerkung: Mit dem Lagrange-Interpolationspolynom wurde eine Lösung desInterpolationsproblems (32) konstruiert und damit die Existenz einer Lösungnachgewiesen.

Für das vorherige Beispiel erhalten wir die Lagrange-Basisfunktionen

Φ0(x) =x− 5

4

−2− 54

x− 3

−2− 3=

3

13− 17

65x+

4

65x2,

Φ1(x) =x− (−2)54 − (−2)

x− 354 − 3

=96

91+

16

91x− 16

91x2,

Φ2(x) =x− (−2)

3− (−2)

x− 54

3− 54

= −2

7+

3

35x+

4

35x2,

und das Interpolationspolynom

p(x) = 13

(3

13− 17

65x+

4

65x2)

+39

8

(96

91+

16

91x− 16

91x2)

+

+18

(−2

7+

3

35x+

4

35x2)

= 3− x+ 2x2.

Die Lagrange-Interpolation ist insbesondere dann zu empfehlen, wenn mehrereSätze von Stützwerten an denselben Stützstellen interpoliert werden sollen, weildann die Lagrange-Basisfunktionen nur einmal zu berechnen sind.

Die Hinzunahme eines neuen Stützpunktes ist hingegen aufwändig, weil alleBasisfunktionen (37) neu berechnet werden müssen.

Newton-Basis (I. Newton, 1642–1727) In der Newton-Basis,

Φ0(x) := 1, Φj(x) :=

j−1∏k=0

(x− xk), j = 1, . . . , n, (38)

gilt Φ0(xi) = 1, Φj(xi) =

j−1∏k=0

(xi − xk), j = 1, . . . , i, und Φj(xi) = 0, j =

i + 1, . . . , n. Damit steht im linearen Gleichungssystem (36) eine linke untereDreiecksmatrix:

1 0 0 · · · 01 x1 − x0 0 · · · 0...

......

. . ....

1 xn − x01∏k=0

(xn − xk) · · ·n−1∏k=0

(xn − xk)

a0a1...an

=

y0y1...yn

.

Das lineare Gleichungssystem kann also durch Vorwärtseinsetzen mit O(n2),n→∞, Multiplikationen gelöst werden (Kap. 2.1.1).

Page 42: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 42

In der Praxis werden zur Berechnung der Koeffizienten des Interpolationspo-lynoms sog. dividierte Differenzen (A. C. Aitken, 1895–1967, und E. H. Neville,1889–1961) verwendet, die wir hier anhand des vorherigen Beispiels illustrieren:

xi yi−2 1354

398 − 5

23 18 15

2 2

Die Koeffizienten des gesuchten Interpolationspolynoms stehen auf der Diago-nalen dieses Tableaus: a0 = 13, a1 = − 5

2 , a2 = 2.Die Newtonsche Darstellung des Interpolationspolynoms ist gegeben durch

p(x) = a0 + a1(x− x0) + a2(x− x0)(x− x1) + · · ·+ an

n−1∏k=0

(x− xk)

= a0 + (x− x0) (a1 + (x− x1) (a2 + (x− x2) (· · ·+ (x− xn−1)an))) .

Letztere Darstellung kann an einer Stelle x mit O(n), n→∞, Multiplikationenausgewertet werden (Horner-Schema).

Für das vorherige Beispiel sind die Newton-Basisfunktionen gegeben durch

Φ0(x) = 1,

Φ1(x) = x− (−2) = x+ 2,

Φ2(x) = (x− (−2))

(x− 5

4

)= −5

2+

3

4x+ x2,

und die Newtonsche Darstellung des Interpolationspolynoms ist gegeben durch

p(x) = 13 · 1− 5

2(x+ 2) + 2

(−5

2+

3

4x+ x2

)= 3− x+ 2x2.

In der Newton-Basis ist die Hinzunahme eines Stützpunktes sehr einfach, da le-diglich eine neue Basisfunktion und ein neuer Koeffizient berechnet werden müs-sen – alle zuvor berechneten Basisfunktionen und Koeffizienten bleiben gleichund können wieder verwendet werden.

Page 43: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 43

Pseudocode Der folgende Pseudocode berechnet die Koeffizienten a0, . . . , ander Newtonschen Darstellung des Interpolationspolynoms für die Stützpunkte(xi, yi) ∈ R2, i = 0, . . . , n, mit O(n2), n→∞, Multiplikationen mit dividiertenDifferenzen:

for i = 0, 1, . . . , n

ai = yi

end

for j = 1, 2, . . . , n

for i = n, n− 1, . . . , j

ai =ai − ai−1xi − xi−j

end

end

Sind die Koeffizienten a0, . . . , an berechnet, kann das Interpolationspolynoman einer gegebenen Stelle x mit Hilfe des Horner-Schemas mit O(n), n → ∞,Multiplikationen ausgewertet werden:

p = an

for i = n− 1, n− 2, . . . , 0

p = ai + (x− xi)p

end

3.2 Spline-InterpolationDie Polynominterpolation aus Kap. 3.1 hat den Nachteil, dass schon für relativkleine Werte von n das Interpolationspolynom zwischen den Stützstellen starkoszillieren kann. Als Beispiel betrachten wir die 6 Stützpunkte (n = 5)

i 0 1 2 3 4 5xi 0.065 0.197 0.251 0.473 0.616 0.852yi 0.352 0.831 0.585 0.917 0.550 0.286

Sie liegen alle im Einheitsquadrat (0, 1)2. Der Graph des Interpolationspolynoms

geht aber stellenweise deutlich darüber hinaus. Auch ist die Extrapolation meis-tens nicht sinnvoll, weil der Graph des Interpolationspolynoms ausserhalb desdurch die Stützstellen begrenzten Intervalls extrem steil ist.

Page 44: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 44

−1 −0.5 0 0.5 1 1.5 2−3.5

−3

−2.5

−2

−1.5

−1

−0.5

0

0.5

1

1.5

Daher wird oft die stückweise Polynominterpolation (Spline-Interpolation) ver-wendet. Die Ansatzfunktion (Spline-Funktion, nach I. J. Schoenberg (1903–1990)) für die Interpolation ist also stückweise definiert:

s(x) =

s1(x), x ∈ [x0, x1]s2(x), x ∈ [x1, x2]...

...sn(x), x ∈ [xn−1, xn]

,

wobei die Funktionen si Polynomfunktionen vom Grad k sind, d. h. si ∈ Pk,i = 1, . . . , n, für ein k ∈ N. Aus den Interpolationsbedingungen erhalten wir 2Gleichungen für jede Polynomfunktion si:

si(xi−1) = yi−1, si(xi) = yi, i = 1, . . . , n, (39)

Page 45: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 45

also insgesamt 2n Gleichungen. Die Funktion s hat hingegen (k+1)n Parameter(n Polynomfunktionen mit je k + 1 Parametern).

Stückweise lineare Interpolation (k = 1) Für den Fall k = 1 haben wir al-so bereits genügend viele Bedingungen, und wir erhalten die Interpolation durcheinen Polygonzug. Dabei werden einfach die Stützpunkte durch Liniensegmenteverbunden:

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Diese Interpolation wird von MATLAB automatisch ausgeführt, wenn der Befehlplot(x,y) verwendet wird.

Für k > 1 hingegen reichen die 2n Gleichungen aus den Interpolationsbe-dingungen nicht aus, um die (k + 1)n > 2n Parameter der Ansatzfunktion s zubestimmen. Wir stellen daher weitere Bedingungen an die Polynomfunktionensi, nämlich dass die Werte der Ableitungen von benachbarten Polynomfunktio-nen an den Stützstellen übereinstimmen:

s(j)i (xi) = s

(j)i+1(xi), j = 1, . . . , k − 1, i = 1, . . . , n− 1. (40)

Mit diesen Bedingungen ist die stückweise definierte Funktion s (k − 1)-malstetig differenzierbar, d. h. alle Ableitungen von s bis zur (k−1)-ten sind stetig.Die Gleichungen (40) ergeben (k − 1)(n − 1) zusätzliche Bedingungen, so dasswir jetzt (k − 1)(n− 1) + 2n = (k + 1)n− (k − 1) Bedingungen haben.

Page 46: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 46

Kubischer Spline (k = 3) Die Gleichungen (39) und (40) führen auf diefolgenden 4n− 2 Gleichungen für die 4n Parameter der Funktion s:

si(xi−1) = yi−1, i = 1, . . . , n,

si(xi) = yi, i = 1, . . . , n,

s′i(xi) = s′i+1(xi), i = 1, . . . , n− 1,

s′′i (xi) = s′′i+1(xi), i = 1, . . . , n− 1.

Die fehlenden zwei Gleichungen erhalten wir durch Randbedingungen an s. Hier-für gibt es mehrere Möglichkeiten:

• natürlicher Spline: s′′1(x0) = 0, s′′n(xn) = 0 (freier Rand),

• periodischer Spline: s′1(x0) = s′n(xn), s′′1(x0) = s′′n(xn),

• hermitescher Spline (nach C. Hermite, 1822–1901): s′1(x0) = y′0, s′n(xn) =y′n, mit vorgegebenen Werten y′0, y′n ∈ R (eingespanner Rand),

• not-a-knot Spline: s(3)1 (x1) = s(3)2 (x1), s(3)n−1(xn−1) = s

(3)n (xn−1).

Die Polynomfunktionen si und ihre Ableitungen haben die folgenden Darstel-lungen in der Standardbasis von P3:

si(x) = ai,0 + ai,1x + ai,2x2 + ai,3x

3,s′i(x) = ai,1 + 2ai,2x + 3ai,3x

2,s′′i (x) = 2ai,2 + 6ai,3x,

s(3)i (x) = 6ai,3,

für i = 1, . . . , n. Wir erhalten also die folgenden linearen Gleichungen für die 4nPolynomkoeffizienten ai,0, ai,1, ai,2, ai,3, i = 1, . . . , n:

ai,0 + xi−1ai,1 + x2i−1ai,2 + x3i−1ai,3 = yi−1,ai,0 + xiai,1 + x2i ai,2 + x3i ai,3 = yi,

für i = 1, . . . , n und

ai,1 + 2xiai,2 + 3x2i ai,3 − ai+1,1 − 2xiai+1,2 − 3x2i ai+1,3 = 0,2ai,2 + 6xiai,3 − 2ai+1,2 − 6xiai+1,3 = 0,

für i = 1, . . . , n − 1, sowie, je nach Randbedingungen, die beiden folgendenlinearen Gleichungen:

• kubisch natürlicher Spline: 2a1,2 + 6x0a1,3 = 0, 2an,2 + 6xnan,3 = 0,

• kubisch periodischer Spline: a1,1 + 2x0a1,2 + 3x20a1,3 = an,1 + 2xnan,2 +3x2nan,3, 2a1,2 + 6x0a1,3 = 2an,2 + 6xnan,3,

• kubisch hermitescher Spline: a1,1+2x0a1,2+3x20a1,3 = y′0, an,1+2xnan,2+3x2nan,3 = y′n,

Page 47: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

3 INTERPOLATION 47

• kubischer not-a-knot-Spline: 6a1,3 = 6a2,3, 6an−1,3 = 6an,3.

Für die 6 Punkte (n = 5) aus dem vorherigen Beispiel erhalten wir ein linearesGleichungssystem mit einer (20 × 20)-Matrix mit dem folgenden Besetzungs-muster für den kubischen natürlichen Spline:

5 10 15 20

2

4

6

8

10

12

14

16

18

20

Die drei kubischen Splines für dieses Beispiel sehen so aus:

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

kubisch natuerlicher Spline

kubisch periodischer Spline

kubisch hermitescher Spline

kubischer not−a−knot−Spline

Spline-Interpolation in MATLAB In MATLAB können Sie die in den Vek-toren x und y gespeicherten Stützpunkte mit dem Befehl yy = spline(x,y,xx)mit einem kubischen not-a-knot-Spline interpolieren und an den im Vektor xxgespeicherten Stellen auswerten.

Für das Beispiel von Runge aus Serie 6, Aufgabe 4, liefert der kubische not-a-knot-Spline auch bei äquidistanten Stützstellen noch eine gute Approximation:

Page 48: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 48

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−0.2

0

0.2

0.4

0.6

0.8

1

1.2

x

y

y = 1/(1 + 25 x2)

kubischer not−a−knot−Spline

Interpolationspolynom vom Grad 6

Die Menge der stückweise polynomialen Funktionen (Spline-Funktionen) kann– ähnlich wie der Raum der Polynomfunktionen in Kap. 3.1 – zu einem Vektor-raum gemacht werden. Als Basis für diesen Vektorraum können die B-Splines(Basis-Splines) verwendet werden; jede Spline-Funktion kann dann als Linear-kombination von B-Splines dargestellt werden. Besonders wichtig für die Dar-stellung von Freiformkurven und -flächen in CAD (computer-aided design, rech-nerunterstütztes Konstruieren) und CAM (computer-aided manufacturing, rech-nerunterstützte Fertigung) sind die non-uniform rational B-Splines (NURBS).

4 Numerisch Differenzieren und IntegrierenIn diesem Kapitel geht es darum, Ableitungen oder bestimmte Integrale fürFunktionen auszuwerten, die z. B. als “black box” gegeben sind, oder für die garnur eine Wertetabelle vorliegt.

4.1 Numerische DifferenziationEine Funktion sei entweder als “black box” gegeben, oder es liege eine Wer-tetabelle für sie vor. Bei der numerischen Differenziation geht es darum, dieAbleitung einer solchen Funktion an einer vorgegebenen Stelle zu bestimmen.

Dies kann z. B. bei der Suche nach lokalen Minima oder Maxima der un-bekannten Funktion nützlich sein, wie auch bei der numerischen Lösung vonDifferenzialgleichungen.

4.1.1 Numerische Differenziation mit Hilfe der Interpolation

Diese Methode ist nützlich, wenn nur eine Wertetabelle einer Funktion vorliegtund daher keine Möglichkeit besteht, weitere Funktionswerte zu erhalten.

Page 49: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 49

In diesem Fall können wir die gegebenen Punkte mit einer Funktion inter-polieren (z. B. mit einer Polynom- oder Spline-Funktion, s. Kap. 3), und danndie Ableitung der unbekannten Funktion mit der Ableitung der interpolierendenFunktion annähern.

Polynominterpolation Für gegebene Stützpunkte (xi, yi) ∈ R2, i = 0, 1, . . . , n,hat das Interpolationspolynom p ∈ Pn in einer beliebigen Basis {Φ0,Φ1, . . . ,Φn} ⊆Pn von Pn die Darstellung

p(x) =

n∑j=0

ajΦj(x),

wobei die Koeffizienten a0, a1, . . . , an ∈ R bzgl. dieser Basis mit Hilfe der Inter-polationsbedingungen p(xi) = yi, i = 0, 1, . . . , n, bestimmt werden (Kap. 3.1).Sind die Koeffizienten des Interpolationspolynoms p ∈ Pn einmal bestimmt, sokann die erste Ableitung von p an jeder beliebigen Stelle ausgewertet werden:

p′(x) =

n∑j=0

ajΦ′j(x), x ∈ R. (41)

Aus Kap. 3.1 wissen wir, dass die Standardbasis, Φj(x) = xj , j = 0, 1, . . . , n,keine günstige Wahl für die Interpolation ist. Ableitungen sind jedoch in die-ser Basis am einfachsten zu bestimmen, so dass wir hier aus Zeitgründen dieStandardbasis verwenden – auch wenn dies nicht besonders effizient ist!

Die erste Ableitung der Standardbasisfunktionen sind gegeben durch

Φ′j(x) =

{0, j = 0jxj−1, j = 1, . . . , n

, x ∈ R.

Eingesetzt in (41) erhalten wir die folgende Darstellung der ersten Ableitungp′ ∈ Pn in der Standardbasis:

p′(x) =

n∑j=1

ajjxj−1 j 7→j+1

=

n−1∑j=0

(j + 1)aj+1xj =

n∑j=0

a(1)j xj ,

mit den Koeffizienten

a(1)j :=

{(j + 1)aj+1, j = 0, . . . , n− 10, j = n

.

Die Koeffizienten der Darstellungen der höheren Ableitungen von p in der Stan-dardbasis können nun rekursiv bestimmt werden:

p(k)(x) = p(k−1)′(x) =

n∑j=0

a(k−1)j xj

′ =

n∑j=1

ja(k−1)j xj−1

j 7→j+1=

n−1∑j=0

(j + 1)a(k−1)j+1 xj =

n∑j=0

a(k)j xj , k ∈ N, (42)

Page 50: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 50

mit

a(0)j := aj , a

(k)j :=

{(j + 1)a

(k−1)j+1 , j = 0, . . . , n− 1

0, j = n, k = 1, 2, . . . . (43)

In MATLAB können Sie die folgenden Befehle verwenden, um das Interpolati-onspolynom durch die gegebenen Stützpunkte sowie seine Ableitungen auszu-werten:

% Stuetzstellen gespeichert im Vektor x, n := length(x) - 1% Stuetzwerte gespeichert im (Spalten-)Vektor y% Auswertungsstellen gespeichert im Vektor xx

% Auswertung des Interpolationspolynoms p an den Stellen xx% (‘‘0. Ableitung’’; Polynom vom Grad n)a0 = vander(x)\y;yy0 = polyval(a0,xx);

% Auswertung der 1. Ableitung p’ an den Stellen xx% (Polynom vom Grad n-1)a1 = polyder(a0);yy1 = polyval(a1,xx);

% Auswertung der 2. Ableitung p’’ an den Stellen xx% (Polynom vom Grad n-2)a2 = polyder(a1);yy2 = polyval(a2,xx);

% usw. fuer hoehere Ableitungen von p

Spline-Interpolation Für gegebene Stützpunkte (xi, yi) ∈ R2, i = 0, 1, . . . , n,ist der interpolierende Spline s abschnittweise definiert als

s(x) = si(x), x ∈ [xi−1, xi], i = 1, 2, . . . , n,

mit si ∈ Pk, k ∈ N. Die (k+1)n Parameter der Funktion s werden bestimmt ausden Interpolationsbedingungen s(xi) = yi, i = 0, 1, . . . , n, den Bedingungen für(k − 1)-mal stetige Differenzierbarkeit an den inneren Knoten i = 1, . . . , n− 1,sowie aus k− 1 zusätzlichen Bedingungen (z. B. an den Randknoten i ∈ {0, n}.s. Kap. 3.2).

Die Ableitungen der Spline-Funktion s sind wieder abschnittweise definierteFunktionen, deren Abschnitte durch die Ableitungen von si gegeben sind:

s(j)(x) = s(j)i (x), x ∈ [xi−1, xi], i = 1, 2, . . . , n, j = 1, . . . , k − 1.

Wegen si ∈ Pk, i = 0, 1, . . . , n, sind die Ableitungen s(j)i in der Standardbasiseinfach zu berechnen (s. vorherigen Abschnitt).

Page 51: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 51

MATLAB verwendet ein spezielles “piecewise polynomial”-Format für stück-weise polynomiale Funktionen (Spline-Funktionen). Funktionen in diesem For-mat können mit dem Befehl fnval ausgewertet und mit dem Befehl fnderabgeleitet werden. Wir können daher in MATLAB die folgenden Befehle ver-wenden, um den interpolierenden kubischen not-a-knot-Spline (k = 3) durchdie gegebenen Stützpunkte sowie seine Ableitungen auszuwerten:

% Stuetzstellen gespeichert im Vektor x% Stuetzwerte gespeichert im Vektor y% Auswertungsstellen gespeichert im Vektor xx

% Auswertung des interpolierenden kubischen not-a-knot-Splines s% an den Stellen xx (‘‘0. Ableitung’’)% (stueckweise kubisch und global stetig)pp0 = csapi(x,y);yy0 = fnval(pp0,xx);

% Auswertung der ersten Ableitung s’ an den Stellen xx% (stueckweise quadratisch und global stetig)pp1 = fnder(pp0);yy1 = fnval(pp1,xx);

% Auswertung der zweiten Ableitung s’’ an den Stellen xx% (stueckweise linear und global stetig)pp2 = fnder(pp1);yy2 = fnval(pp2,xx);

% die 3. Ableitung von s ist an den inneren Knoten% nicht mehr definiert

Beispiel Wir illustrieren das beschriebene Vorgehen zur numerischen Diffe-renziation mit Hilfe der Interpolation an der Beispielfunktion

f(x) := sin(3x) + 2x− 1,

f ′(x) = 3 cos(3x) + 2,

f ′′(x) = −9 sin(3x).

Wir erzeugen zufällig 5 Stützstellen im Intervall (−1, 1):

x0 ' −0.746, x1 ' 0.265, x2 ' 0.629, x3 ' 0.812, x4 ' 0.827,

und berechnen die Stützwerte yi := f(xi), i = 0, 1, . . . , 4. Für diese 5 Stütz-punkte bestimmen wir jetzt das Interpolationspolynom vom Grad p ∈ P4 sowieden interpolierenden kubischen not-a-knot-Spline s, und die ersten beiden Ab-leitungen von p und s.

In der folgenden Grafik zeichnen wir in der linken Spalte die Graphen derFunktionen f , p und s sowie von deren Ableitungen. In der rechten Spalte

Page 52: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 52

zeichnen wir die punktweisen absoluten Fehler |f(x) − p(x)|, |f(x) − s(x)|,|f ′(x)− p′(x)|, |f ′(x)− s′(x)|, |f ′′(x)− p′′(x)| und |f ′′(x)− s′′(x)|.

−2 −1 0 1 2−4

−3

−2

−1

0

1

2F

un

ktio

n

−2 −1 0 1 2−2

−1

0

1

2

3

4

5

6

7

1.

Ab

leitu

ng

−2 −1 0 1 2

10−4

10−2

100

102

−2 −1 0 1 2

−10

−5

0

5

10

2.

Ab

leitu

ng

−2 −1 0 1 210

−6

10−4

10−2

100

102

punktweiser absoluter Fehler

−2 −1 0 1 210

−4

10−2

100

102

(unbekannte) Funktion

kubischer not−a−knot−Spline

Interpolationspolynom

4.1.2 Numerische Differenziation mit Hilfe von Differenzenquotien-ten

Diese Methode ist nützlich, wenn eine Funktion als “black box” gegeben ist,d. h. wenn wir sie zwar an beliebigen Stellen auswerten können, aber eben keinanalytischer Ausdruck vorliegt, den wir ableiten könnten.

Für eine “black box”-Funktion f sei also eine Näherung an die Ableitungf ′(x) an einer Stelle x gesucht.

Vorwärts- und Rückwärtsdifferenzen Nach der Taylor-Formel (Satz 1) istder Wert von f an der Stelle x+ h, h > 0, gegeben durch

f(x+ h) = f(x) + f ′(x)h+1

2f ′′(x)h2 +O(h3), h→ 0.

Page 53: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 53

Es gilt also

D+f(x;h) :=f(x+ h)− f(x)

h= f ′(x) +

1

2f ′′(x)h+O(h2), h→ 0, (44)

d. h. der Vorwärtsdifferenzenquotient D+f(x;h) ist eine Näherung für f ′(x).Genauso können wir auch die Taylor-Formel an der Stelle x − h, h > 0,

verwenden:

f(x− h) = f(x)− f ′(x)h+1

2f ′′(x)h2 +O(h3), h→ 0.

Damit finden wir den Rückwärtsdifferenzenquotienten

D−f(x;h) :=f(x)− f(x− h)

h= f ′(x)− 1

2f ′′(x)h+O(h2), h→ 0. (45)

Der Fehler der Näherungen f ′(x) ' D±f(x;h) ist O(h), h→ 0:

|f ′(x)−D±f(x;h)| = 1

2f ′′(x)h+O(h2) = O(h), h→ 0.

Zentrale Differenzen Die Genauigkeit der Näherung kann erhöht werdendurch Verwendung des zentralen Differenzenquotienten, der als das arithmeti-sche Mittel der einseitigen Differenzenquotienten definiert ist:

D0(x;h) :=D+(x;h) +D−(x;h)

2=f(x+ h)− f(x− h)

2h(46)

= f ′(x) +O(h2), h→ 0. (47)

Der Fehler der Näherung f ′(x) ' D0(x;h) ist O(h2), h→ 0:

|f ′(x)−D0f(x;h)| = O(h2), h→ 0.

Beispiel Wir illustrieren die numerische Differenziation mit Hilfe von Diffe-renzenquotienten an dem Beispiel aus Kap. 4.1.1 (f(x) := sin(3x) + 2x − 1,f ′(x) = 3 cos(3x) + 2). Für gegebene Schrittweiten h > 0 berechnen wir dieWerte D±f(x;h) und D0f(x;h), an Stellen x ∈ [−2, 2]. Dann berechnen wir fürjede Schrittweite die maximalen absoluten Fehler der Näherungen an die ersteAbleitung f ′ in diesem Intervall:

Emax,±(h) := maxx∈[−2,2]

|f ′(x)−D±f(x;h)| ,

Emax,0(h) := maxx∈[−2,2]

|f ′(x)−D0f(x;h)| .

Theoretisch gilt natürlich

limh→0

Emax,±(h) = limh→0

Emax,0(h) = 0,

Page 54: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 54

aber praktisch tritt bei der Berechnung der Differenzenquotienten D± und D0

für sehr kleine Werte von h Auslöschung auf, so dass der Fehler irgendwannnicht mehr kleiner bzw. sogar grösser wird.

Dennoch sehen wir in der folgenden Grafik die theoretische Konvergenz-ordnung 1 für die einseitigen Differenzenquotienten und 2 für den zentralenDifferenzenquotienten:

10−10

10−8

10−6

10−4

10−2

100

10−10

10−8

10−6

10−4

10−2

100

h

ma

x.

ab

s.

Fe

hle

r in

de

r 1

. A

ble

itu

ng

im

In

terv

all

[−2

,2]

f(x) = sin(3 x) + 2 x − 1

Vorwaertsdifferenzen

Rueckwaertsdifferenzen

zentrale Differenzen

h

h2

Solche Plots sind auch nützlich, um Ihre Implementierung zu testen!

Fehleranalyse Der gesamte Fehler bei der Approximation der Ableitung einerFunktion durch einen Differenzenquotienten Df(x;h) setzt sich zusammen ausdem Verfahrensfehler und aus dem Rundungsfehler:

|f ′(x)−Dfε(x;h)| ≤ |f ′(x)−Df(x;h)|︸ ︷︷ ︸Verfahrensfehler

+ |Df(x;h)−Dfε(x;h)|︸ ︷︷ ︸Rundungsfehler

,

wobei Dfε den (tatsächlich berechneten) Differenzenquotienten mit Rundungs-fehler bezeichnet. Der Verfahrensfehler ist der Approximationsfehler bei exakterRechnung, also ohne Rundungsfehler. Z. B. erhalten wir für den zentralen Dif-ferenzenquotienten

D0f(x;h) =f(x+ h)− f(x− h)

2h

Page 55: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 55

mit Hilfe der Taylor-Formel den Verfahrensfehler

|f ′(x)−D0f(x;h)| = O(h2), h→ 0.

Der Rundungsfehler entsteht durch die Rechnung mit endlicher Genauigkeit injedem digitalen System. Er wird typischerweise durch die Maschinengenauigkeitε > 0 angegeben (typischer Wert ε ' 2.22 · 10−16). Bei der Berechnung deszentralen Differenzenquotienten treten Rundungsfehler z. B. bei der Auswertungder Funktion f auf, und wir erhalten daher den Rundungsfehler

|D0f(x;h)−D0fε(x;h)| =

∣∣∣∣f(x+ h)− f(x− h)

2h− fε(x+ h)− fε(x− h)

2h

∣∣∣∣=|f(x+ h)− fε(x+ h)− (f(x− h)− fε(x− h))|

2h

≤ |f(x+ h)− fε(x+ h)|2h

+|f(x− h)− fε(x− h)|

2h

2h+

ε

2h=ε

h= O(h−1), h→ 0.

Die Summe aus Verfahrens- und Rundungsfehler ist also für den zentralen Dif-ferenzenquotienten gegeben durch

|f ′(x)−D0fε(x;h)| = O(h2) +O(h−1), h→ 0,

und für die einseitigen Differenzenquotienten D± durch

|f ′(x)−D±fε(x;h)| = O(h) +O(h−1), h→ 0.

10−10

10−8

10−6

10−4

10−2

100

10−10

10−8

10−6

10−4

10−2

100

h

3 h + 10−15

/h

2 h2 + 10

−15/h

h

h2

Page 56: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 56

“Experimentelle” Bestimmung der Konvergenzordnung Wir vernach-lässigen im Folgenden die Rundungsfehler. Sei f : D → R, D ⊆ R, eine differen-zierbare Funktion, und sei x ∈ D. Sei Df(x;h), h > 0, ein Differenzenquotientzur Approximation der ersten Ableitung der Funktion f an der Stelle x, f ′(x).Es gelte

|f ′(x)−Df(x;h)| = Chp +O(hp+1) = O(hp), h→ 0,

für ein p ∈ N (wir sagen, der Differenzenquotient Df habe die Konsistenzord-nung p).

Ist der Wert der Ableitung, f ′(x), bekannt, so können wir die Konsistenz-ordnung p der Näherung leicht bestimmen. Es gilt dann für α ∈ (0, 1):∣∣∣∣ f ′(x)−Df(x;h)

f ′(x)−Df(x;αh)

∣∣∣∣ =Chp +O(hp+1)

C (αh)p

+O(hp+1)=

(1

α

)p+O(h), h→ 0,

und damit für h > 0 klein genug:

p ' log 1α

∣∣∣∣ f ′(x)−Df(x;h)

f ′(x)−Df(x;αh)

∣∣∣∣ =1

ln(1α

) ln

∣∣∣∣ f ′(x)−Df(x;h)

f ′(x)−Df(x;αh)

∣∣∣∣ .Sei jetzt f ′(x) unbekannt. Für α ∈ (0, 1) gilt

|Df(x;h)−Df(x;αh)| = Chp + C (αh)p

+O(hp+1), h→ 0,

und damit∣∣∣∣ Df(x;h)−Df(x;αh)

Df(x;αh)−Df(x;α2h)

∣∣∣∣ =Chp + Cαphp +O(hp+1)

Cαphp + Cα2php +O(hp+1)

=Chp

Cαphp1 + αp +O(h)

1 + αp +O(h)

=

(1

α

)p+O(h), h→ 0.

Für h > 0 klein genug gilt also

p ' log 1α

∣∣∣∣ Df(x;h)−Df(x;αh)

Df(x;αh)−Df(x;α2h)

∣∣∣∣ =1

ln(1α

) ln

∣∣∣∣ Df(x;h)−Df(x;αh)

Df(x;αh)−Df(x;α2h)

∣∣∣∣In Serie 6, Aufgabe 3c, haben Sie p für α = 1

2 berechnet.

Höhere Ableitungen Mit Hilfe der Taylor-Formel können weitere Differen-zenquotienten hergeleitet werden, z. B. auch für höhere Ableitungen. Betrachtenwir z. B. die Taylor-Formeln für f(x± h):

f(x± h) = f(x)± f ′(x)h+1

2f ′′(x)h2 ± 1

6f (3)(x)h3 +

1

24f (4)(x)h4 +O(h5),

Page 57: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 57

h→ 0. Dann gilt

f(x+ h)− 2f(x) + f(x− h) = f ′′(x)h2 +1

12f (4)(x)h4 +O(h5), h→ 0,

und damit

f(x+ h)− 2f(x) + f(x− h)

h2= f ′′(x) +O(h2), h→ 0.

Derselbe Differenzenquotient für die Approximation der zweiten Ableitung vonf an der Stelle x kann auch auf eine andere Weise mit Hilfe von Differenzen-quotienten für die Approximation der ersten Ableitung hergeleitet werden:

f ′′(x) 'f ′(x+ h

2

)− f ′

(x− h

2

)h

= D0f′(x;h

2

),

f ′(x+

h

2

)' f(x+ h)− f(x)

h= D0f

(x+

h

2;h

2

),

f ′(x− h

2

)' f(x)− f(x− h)

h= D0f

(x− h

2;h

2

),

f ′′(x) 'f(x+h)−f(x)

h − f(x)−f(x−h)h

h=f(x+ h)− 2f(x) + f(x− h)

h2.

Auch für die zweite Ableitung lassen sich einseitige Näherungsformeln finden,die z. B. am Rand des Definitionsbereichs einer Funktion verwendet werdenkönnen (s. u.).

Zusammenfassung Wir fassen hier die Differenzenquotienten zur Näherungder ersten beiden Ableitungen von f bis zur 2. Ordnung zusammen:

f ′(x) =f(x+ h)− f(x)

h+O(h),

f ′(x) =f(x)− f(x− h)

h+O(h),

f ′(x) =−3f(x) + 4f(x+ h)− f(x+ 2h)

2h+O(h2),

f ′(x) =f(x+ h)− f(x− h)

2h+O(h2),

f ′(x) =3f(x)− 4f(x− h) + f(x− 2h)

2h+O(h2),

f ′′(x) =2f(x)− 5f(x+ h) + 4f(x+ 2h)− f(x+ 3h)

h2+O(h2),

f ′′(x) =f(x+ h)− 2f(x) + f(x− h)

h2+O(h2),

f ′′(x) =2f(x)− 5f(x− h) + 4f(x− 2h)− f(x− 3h)

h2+O(h2),

für h→ 0.

Page 58: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 58

4.2 Numerische IntegrationBei der numerischen Integration (oder numerischen Quadratur) geht es darum,bestimmte Integrale von Funktionen, die z. B. als Wertetabelle oder “black box”gegeben sind, zu approximieren. Dazu verwendet man sog. Quadraturformeln

b∫a

f(x) dx ' Q(f) := (b− a)

n∑i=0

wif(xi) ∈ R, (48)

mit Stützstellen x0, x1, . . . , xn ∈ R und Gewichten w0, w1, . . . , wn ∈ R. DerQuadraturfehler ist dann gegeben durch

E(f) :=

∣∣∣∣∣∣b∫a

f(x) dx−Q(f)

∣∣∣∣∣∣ ≥ 0.

Eine Quadraturformel Q hat Genauigkeitsgrad n ∈ N, wenn n die grösste na-türliche Zahl ist, so dass E(p) = 0 ∀ p ∈ Pn, d. h. wenn die Quadraturformelalle Polynomfunktionen bis zum Grad n exakt integriert.

4.2.1 Interpolatorische Quadraturformeln

Bei diesen Quadraturformeln wird für ein n ∈ N die Funktion f mit n + 1Stützstellen xi ∈ [a, b], i = 0, 1, . . . , n, und Stützwerten f(xi), i = 0, 1, . . . , n,durch das Interpolationspolynom p ∈ Pn approximiert (Kap. 3.1). Dieses ist inder Lagrange-Basis gegeben durch

p(x) =

n∑i=0

f(xi)

n∏j=0j 6=i

x− xjxi − xj

.

Nun wird das bestimmte Integral der Funktion f über dem Intervall [a, b] appro-ximiert durch das bestimmte Integral des Interpolationspolynoms p über demIntervall [a, b]:

b∫a

f(x) dx 'b∫a

p(x) dx =

n∑i=0

f(xi)

b∫a

n∏j=0j 6=i

x− xjxi − xj

dx.

Wir erhalten daraus eine Quadraturformel von der Form (48) mit Gewichten

wi :=1

b− a

b∫a

n∏j=0j 6=i

x− xjxi − xj

dx, i = 0, 1, . . . , n. (49)

Die Quadraturformel (49) hat nach Konstruktion mindestens den Genauigkeits-grad n.

Page 59: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 59

Für äquidistante Stützstellen xi := a+ ih, i = 0, 1, . . . , n, h := b−an , erhalten

wir die Gewichte

wi =1

b− a

b∫a

n∏j=0j 6=i

x− a− jha+ ih− a− jh

dxt= x−a

b−a=

1∫0

n∏j=0j 6=i

nt− ji− j

dt, i = 0, 1, . . . , n.

Die Gewichte sind also unabhängig von den Integrationsgrenzen a, b. Wir be-rechnen diese Gewichte für n = 1, 2:

n = 1: Die Stützstellen sind gegeben durch x0 = a, x1 = b. Die Gewichte w0, w1

sind gegeben durch

i = 0 : w0 =

1∫0

1t− 1

0− 1dt =

1∫0

1− tdt =

(t− t2

2

)∣∣∣∣10

=1

2,

i = 1 : w1 =

1∫0

1t− 0

1− 0dt =

1∫0

tdt =t2

2

∣∣∣∣10

=1

2.

Wir erhalten die Trapezregel oder Sehnentrapezregel

Q(f) = (b− a)

(1

2f(a) +

1

2f(b)

)= (b− a)

f(a) + f(b)

2(50)

mit Genauigkeitsgrad 1.

n = 2: Die Stützstellen sind gegeben durch x0 = a, x1 = a+b2 , x2 = b. Die Ge-

wichte w0, w1, w2 sind gegeben durch

i = 0 : w0 =

1∫0

2t− 1

0− 1

2t− 2

0− 2dt =

1∫0

2t2 − 3t+ 1 dt =1

6,

i = 1 : w1 =

1∫0

2t− 0

1− 0

2t− 2

1− 2dt =

1∫0

−4t2 + 4tdt =2

3,

i = 2 : w2 =

1∫0

2t− 0

2− 0

2t− 1

2− 1dt =

1∫0

2t2 − tdt =1

6.

Wir erhalten die Simpsonregel (T. Simpson, 1710–1761) oder KeplerscheFassregel (J. Kepler, 1571–1630)

Q(f) =b− a

6

(f(a) + 4f

(a+ b

2

)+ f(b)

)(51)

mit Genauigkeitsgrad 3.

Page 60: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 60

Quadraturformeln von der Form (48) sind genau wie das bestimmte Integrallinear, d. h. für Funktion f, g und Konstanten α, β ∈ R gilt

Q (αf + βg) = (b− a)

n∑i=0

wi (αf + βg) (xi)

= (b− a)

n∑i=0

wi (αf(xi) + βg(xi))

= α(b− a)

n∑i=0

wif(xi) + β(b− a)

n∑i=0

wig(xi)

= αQ(f) + βQ(g).

Um den Genauigkeitsgrad einer Quadraturformel zu bestimmen genügt es des-halb, an Stelle von beliebigen Polynomen p ∈ Pn nur die Monome

{1, x, x2, . . . , xn

}(Standardbasis) zu überprüfen: Eine Quadraturformel hat Genauigkeitsgrad ngenau dann, wenn sie alle Monome xj , j = 0, . . . , n, exakt integriert, aber xn+1

nicht mehr exakt integriert wird.Wir prüfen hier nach, dass die Simpsonregel (51) den Genauigkeitsgrad 3

hat: es giltb∫a

xj dx =xj+1

j + 1

∣∣∣∣ba

=bj+1 − aj+1

j + 1, j ∈ N0

und

j = 0 : Q(1) =b− a

6(1 + 4 + 1) = b− a,

j = 1 : Q(x) =b− a

6

(a+ 4

a+ b

2+ b

)=b2 − a2

2,

j = 2 : Q(x2) =b− a

6

(a2 + 4

(a+ b

2

)2

+ b2

)=b3 − a3

3,

j = 3 : Q(x3) =b− a

6

(a3 + 4

(a+ b

2

)3

+ b3

)=b4 − a4

4,

j = 4 : Q(x4) =b− a

6

(a4 + 4

(a+ b

2

)4

+ b4

)6= b5 − a5

5.

Also hat die Simpsonregel tatsächlich den Genauigkeitsgrad 3.Den Genauigkeitsgrad dieser sog. abgeschlossenen Newton-Cotes-Formeln

(nach I. Newton, 1643–1727, und R. Cotes, 1682–1716) für beliebige Polynom-grade fassen wir zusammen im

Satz 2 Sei n ∈ N. Die abgeschlossene Newton-Cotes-Formel

Q(f) = (b− a)

n∑i=0

wif(xi),

Page 61: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 61

mit n + 1 äquidistanten Stützstellen xi = a + ih, i = 0, 1, . . . , n, h = b−an , und

Gewichten

wi =

1∫0

n∏j=0j 6=i

nt− ji− j

dt, i = 0, 1, . . . , n,

hat Genauigkeitsgrad

n, falls n ungerade undn+ 1, falls n gerade.

Bemerkung: Der etwas unerwartet höhere Genauigkeitsgrad für gerade n ist aufdie spezielle Wahl der Stützstellen zurückzuführen.

Für einen allgemeinen, genügend oft differenzierbaren Integranden f gilt fürden Approximationsfehler E(f): es existieren eine Konstante C > 0 und einξ ∈ (a, b), so dass

E(f) =

{Cf (n+1)(ξ)

(b−an

)n+2, n ungerade

Cf (n+2)(ξ)(b−an

)n+3, n gerade

. (52)

Wir illustrieren dies für f(x) = 1/x in der folgenden Grafik:

1 2 3 4 5 6 7 8 9 1010

−7

10−6

10−5

10−4

10−3

10−2

10−1

100

Polynomgrad des Interpolationspolynoms, n

Ap

pro

xim

atio

nsfe

hle

r d

er

ab

ge

sch

losse

ne

n N

ew

ton

−C

ote

s−

Fo

rme

ln

f(x) = 1/x, a = 1

b=3

b=4

b=5

Page 62: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 62

Gerade Werte von n sind also den ungeraden vorzuziehen. Insbesondere dieSimpsonregel (n = 2, Genauigkeitsgrad 3) wird häufig verwendet.

Die Grafik zeigt auch, dass für grössere Integrationsbereiche [a, b] auch einhöherer Polynomgrad n verwendet werden muss, um unter einer vorgegebenenFehlerschranke zu bleiben. Dies ist jedoch numerisch problematisch, denn wirwissen aus Kap. 3, dass Interpolationspolynome von hohem Grad stark oszil-lieren können. Ausserdem werden einige Gewichte wi in der Quadraturformel(48) für n = 8 negativ, so dass grössere Rundungsfehler zu erwarten sind. Manverwendet daher in der Regel nur Polynomgrade n ≤ 6.

Um auch für kleine Werte von n ein Integral möglichst genau berechnen zukönnen, wird das Intervall [a, b] weiter aufgeteilt. Dies führt auf die zusammen-gesetzten Quadraturformeln.

4.2.2 Zusammengesetzte Quadraturformeln

Wir betrachten weiterhin äquidistante Stützstellen xi = a+ ih, i = 0, 1, . . . , N ,h := b−a

N , für ein N ∈ N. Wegen der Linearität des Integrals können wir diesesaufteilen:

b∫a

f(x) dx =

N∑i=1

xi∫xi−1

f(x) dx.

Jetzt können wir für jedes der Teilintegrale eine Newton-Cotes-Formel mit klei-nem Polynomgrad n ≤ 6 zu verwenden, wobei n unabhängig von h ist!

n = 1: Verwenden wir die Trapezregel in jedem Teilintervall, so erhalten wir diezusammengesetzte Trapezregel:

b∫a

f(x) dx 'N∑i=1

(xi − xi−1)f(xi−1) + f(xi)

2

=h

2

(f(x0) + 2

N−1∑i=1

f(xi) + f(xN )

)=: T (h). (53)

n = 2: Verwenden wir die Simpsonregel in jedem Teilintervall, so erhalten wir diezusammengesetzte Simpsonregel:

b∫a

f(x) dx 'N∑i=1

xi − xi−16

(f(xi−1) + 4f

(xi−1 + xi

2

)+ f(xi)

)(54)

=h

6

(f(x0) + 2

N−1∑i=1

f(xi) + f(xN ) + 4

N∑i=1

f

(xi−1 + xi

2

))=: S(h).

Page 63: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 63

Den (globalen) Approximationsfehler einer zusammengesetzten Quadraturfor-mel Q(h) können wir abschätzen durch∣∣∣∣∣∣

b∫a

f(x) dx−Q(h)

∣∣∣∣∣∣ ≤N∑i=1

Ei(f),

wobei Ei(f) den (lokalen) Approximationsfehler auf jedem Teilintervall bezeich-net. Aus (52) wissen wir, dass Konstanten Ci > 0 und ξi ∈ (xi−1, xi) existieren,so dass

Ei(f) =

{Cif

(n+1)(ξi)(hn

)n+2, n ungerade

Cif(n+2)(ξi)

(hn

)n+3, n gerade

.

Durch Definition der Konstante

C :=

max1≤i≤n

Cif(n+1)(ξi)

nn+2, n ungerade

max1≤i≤n

Cif(n+2)(ξi)

nn+3, n gerade

> 0,

erhalten wir∣∣∣∣∣∣b∫a

f(x) dx−Q(h)

∣∣∣∣∣∣ ≤{Chn+1, n ungeradeChn+2, n gerade =

{O(hn+1), n ungeradeO(hn+2), n gerade ,

für h → 0. Wir erhalten damit die Konvergenzordnung 2 für die zusammen-gesetzte Trapezregel (n = 1, ungerade) und die Konvergenzordnung 4 für diezusammengesetzte Simpsonregel (n = 2, gerade).Bemerkung: Die Konvergenzordnung der zusammengesetzten Quadraturformelist um eins höher als der Genauigkeitsgrad der ursprünglichen Quadraturformel.

Wir illustrieren das Konvergenzverhalten dieser zusammengesetzen Quadra-

turformeln für das Integral1∫

0

ex dx = e− 1 ' 1.72 in der folgenden Grafik:

10−7

10−6

10−5

10−4

10−3

10−2

10−1

100

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

h

|I −

Q(h

)|

f(x) = exp(x), a = 0, b = 1

zusammengesetzte Trapezregel

zusammengesetzte Simpsonregel

h2

h4

Page 64: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

4 NUMERISCH DIFFERENZIEREN UND INTEGRIEREN 64

4.2.3 Gauss-(Legendre-)Quadratur

(nach C. F. Gauss, 1777–1855, und A.-M. Legendre, 1752–1833) Bei der Newton-Cotes-Quadratur im letzten Abschnitt wurden n + 1 äquidistante Stützstellengewählt, und es hat sich herausgestellt, dass damit ein Genauigkeitsgrad derQuadraturformel von n bzw. n + 1 erreicht werden kann, je nachdem, ob ngerade oder ungerade ist.

Bei der Gauss-Quadratur hingegen wird nur die Anzahl der Stützstellen fest-gelegt, nicht aber ihre Positionen auf der x-Achse. Man wählt dann die Stütz-stellen so, dass der Genauigkeitsgrad maximal ist.

Man stellt fest, dass mit n Stützstellen ein maximaler Genauigkeitsgrad von2n − 1 erreicht werden kann, wenn die Stützstellen gemäss den Nullstellen desn-ten Legendre-Polynoms gewählt werden. Wir illustrieren diese Stützstellen imIntervall [−1, 1] für n = 1, 2, 3, 4, 5:

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

1

2

3

4

5

x

n

Die Gauss-Quadraturformeln können genau wie die Newton-Cotes-Quadraturformelnzusammengesetzt werden. Mit n Stützstellen erhält man dann den Approxima-tionsfehler O(h2n), h→ 0, also Konvergenzordnung 2n.

n = 1: Wir erhalten die Mittelpunktsregel

Q(f) = (b− a)f

(a+ b

2

)(55)

mit Genauigkeitsgrad 1. Die Mittelpunktsregel benötigt nur eine Funkti-onsauswertung, während die Trapezregel mit demselben Genauigkeitsgradzwei Funktionsauswertungen benötigt.Die zusammengesetzte Mittelpunktsregel lautet

b∫a

f(x) dx 'N∑i=1

(xi−xi−1)f

(xi−1 + xi

2

)= h

N∑i=1

f

(xi−1 + xi

2

)=: M(h),

(56)mit Konvergenzordnung 2 (Approximationsfehler O(h2), h→ 0).

Page 65: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME65

Wir illustrieren das Konvergenzverhalten der zusammengesetzten Mittelpunkts-regel an dem Beispiel aus dem letzten Abschnitt:

10−7

10−6

10−5

10−4

10−3

10−2

10−1

100

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

h

|I −

Q(h

)|f(x) = exp(x), a = 0, b = 1

zusammengesetzte Trapezregel

zusammengesetzte Simpsonregel

zusammengesetzte Mittelpunktsregel

h2

h4

5 Numerik nichtlinearer Gleichungen und Glei-chungssysteme

Sei f : Rn → Rn, n ∈ N, eine vektorwertige Funktion von n reellen Variablen.Wir suchen Nullstellen von f , d. h. x∗ ∈ Rn mit f(x∗) = 0. Jede Gleichungmit n Unbekannten kann in dieser Form dargestellt werden.Beispiele:

n = 1: Wir suchen Lösungen der Gleichung ln(x) = 2 − x, d. h. Nullstellen derFunktion f(x) := ln(x) + x− 2.

0 0.5 1 1.5 2−5

−4

−3

−2

−1

0

1

2

x

y

0 0.5 1 1.5 2

−6

−4

−2

0

x

y

y = ln(x)

y = 2−x y = ln(x) + x − 2

Die Funktion hat eine Nullstelle bei x∗ ' 1.557145598997611.

Page 66: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME66

n = 2: Wir suchen Nullstellen der Funktion

f(x) =

(f1(x1, x2)f2(x1, x2)

):=

(3x21 + x22 + 2x1 − 1

2x1x2 + 2x2 + 1

).

x1

x2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

f1 = 0

f2 = 0

(f1,f

2) (normiert)

Die Funktion f hat zwei Nullstellen bei

x∗1 '(

0.294958044203389−0.386112895501245

), x∗2 '

(−0.543678285419080−1.095718183078782

).

Nichtlineare Gleichungssysteme müssen z. B. bei Extremwertaufgaben gelöstwerden: Sei f : D → R, D ⊆ Rn, eine reellwertige Funktion von n reellenVariablen (Skalarfeld). Eine notwendige Bedingung für ein lokales Extremum(Minimum oder Maximum) x∗ ∈ D von f ist ∇f(x∗) = 0, wobei ∇f : D → Rn,x 7→ ∇f(x), das Gradientenfeld der Funktion f bezeichnet (s. MAE3):

(∇f(x))i =∂f

∂xi(x), i = 1, . . . , n, x ∈ D.

Sind die Nullstellen des Gradientenfeldes einmal gefunden, so können sie weiteruntersucht werden um herauszufinden, ob sie lokale Extrema oder nur Sattel-punkte der Funktion f sind.

Insbesondere für n = 1 gibt es sehr viele Lösungsverfahren, während dieAuswahl an Lösungsverfahren für n > 1 kleiner ist. Wir beschränken uns hierauf das Newton-Verfahren (auch Newton-Raphson-Verfahren, nach I. Newton(1643–1727) und J. Raphson (1648–1715)).

Page 67: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME67

5.1 Das Newton-Verfahren für n = 1

Sei f : R→ R eine reellwertige Funktion einer reellen Variablen. Wir suchen eineNullstelle von f , d. h. eine Lösung der Gleichung f(x) = 0. Wir verwenden dazuein iteratives Verfahren, d. h. wir konstruieren ausgehend von einem Startwertx0 ∈ R eine Folge 〈xk〉, die idealerweise für k → ∞ gegen eine Lösung x∗ ∈ Rvon f(x) = 0 konvergiert (vgl. Kap. 2.2).

Im k-ten Iterationsschritt muss xk aus xk−1 berechnet werden. Dazu linea-risieren wir f um xk−1, d. h. wir berechnen das erste Taylorpolynom (Satz 1)

(T1f) (x;xk−1) = f(xk−1) + f ′(xk−1)(x− xk−1), x ∈ R.

Der Graph von (T1f) (x;xk−1) ist die Tangente an den Graphen von f im Punkt(xk−1, f(xk−1)). Jetzt definieren wir xk als die (einzige) Nullstelle der linearenFunktion (T1f) (x;xk−1):

xk := xk−1 −f(xk−1)

f ′(xk−1), k ∈ N. (57)

Damit das Verfahren durchgeführt werden kann, muss die erste Ableitung derFunktion f bekannt sein. Es muss ausserdem f ′(xk−1) 6= 0 gelten, damit xkgemäss (57) definiert werden kann.Beispiel: Wir illustrieren das Verhalten der Newton-Iteration (57) an der Funk-tion f(x) := ln(x) + x− 2. Für unterschiedliche Startwerte erreichen wir schonnach wenigen Iterationen die Nullstelle x∗ ' 1.56:

0 1 2 3 4 5 60

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

k

xk

Mit Hilfe der Taylor-Formel mit Lagrange-Restglied (Satz 1) kann man zeigen,dass das Newton-Verfahren lokal quadratisch konvergiert, d. h. es gilt

|xk − x∗| = C|xk−1 − x∗|2, k ∈ N,

mit einer Konstanten C > 0. Mittels vollständiger Induktion erhält man

C|xk − x∗| = (C|xk−1 − x∗|)2 = · · · = (C|x0 − x∗|)2k

, k ∈ N.

Auf der rechten Seite steht eine Nullfolge, falls |x0−x∗| < 1/C, d. h. das Newton-Verfahren konvergiert, falls der Startwert genügend nahe an der Nullstelle liegt.

Page 68: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME68

Beispiele für Divergenz des Newton-Verfahrens:

• f(x) = x3 − 2x+ 2, f ′(x) = 3x2 − 2, x0 = 0. Es gelten

x1 = x0 −f(x0)

f ′(x0)= 0− 2

−2= 1,

x2 = x1 −f(x1)

f ′(x1)= 1− 1

1= 0,

und daherxk =

{1, k ungerade0, k gerade , k ∈ N.

Die Folge 〈xk〉 ist also unbestimmt divergent.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1

0

1

2

3

4

5

6

x

y

y = x3 − 2 x + 2

• f(x) = sin(x), f ′(x) = cos(x), x0 = arctan(−2π). Es gilt

xk = xk−1 −f(xk−1)

f ′(xk−1)= xk−1 − tan(xk−1) = · · · = x0 + 2πk, k ∈ N,

also ist die Folge 〈xk〉 bestimmt divergent gegen +∞.

−5 0 5 10 15 20 25 30 35−1

−0.5

0

0.5

1

x

y

y = sin(x)

Im Allgemeinen konvergiert das Newton-Verfahren also nur für günstig gewählteStartwerte x0. Ausserdem kann das Verfahren im Falle von mehreren Nullstellenje nach Startwert gegen eine andere Nullstelle konvergieren (Serie 11, Aufg. 2a).

Page 69: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME69

5.2 Das Newton-Verfahren für n > 1

Sei f : Rn → Rn eine vektorwertige Funktion von n reellen Variablen,

f(x) =

f1(x1, . . . , xn)f2(x1, . . . , xn)

...fn(x1, . . . , xn)

∈ Rn.

Wir suchen eine Nullstelle von f , d. h eine Lösung der Gleichung f(x) = 0.Wieder wollen wir ausgehend von einem Startwert x0 ∈ Rn eine Folge 〈xk〉konstruieren, die idealerweise für k → ∞ gegen eine Lösung x∗ ∈ Rn vonf(x) = 0 konvergiert.

Im k-ten Iterationsschritt linearisieren wir wieder f um xk−1, d. h. wirberechnen das erste Taylorpolynom

(T1f) (x;xk−1) = f(xk−1) +Df(xk−1) (x− xk−1) , x ∈ Rn,

mit der Jacobi-Matrix (C. G. J. Jacobi, 1804–1851) Df : Rn → Rn×n,

(Df(x)

)ij

=∂fi∂xj

(x), i, j = 1, . . . , n. (58)

Wieder definieren wir xk als Nullstelle der linearen Funktion (T1f) (x;xk−1):

xk = xk−1 −Df(xk−1)−1f(xk−1), k ∈ N. (59)

Bei der Implementierung in einem Rechner wollen wir nicht in jedem Schritt dieInverse der Jacobi-Matrix berechnen (Kap. 2) und verwenden stattdessen denfolgenden Pseudocode für das Newton-Verfahren:

Setze k = 0, wähle einen Startwert x ∈ Rn und eine Toleranz tol > 0

while ‖f(x)‖ > tol (Abbruchkriterium: ‖f(x)‖ ≤ tol)

k = k + 1 (Zähler für die Anzahl der Iterationen)Löse das lineare Gleichungssystem Df(x)δx = −f(x) nach δxSetze x = x+ δx

end

Hier wird im Abbruchkriterium die Norm des Residuums, ‖f(x)‖, verwendet;alternativ kann auch die Distanz zwischen zwei Folgengliedern, ‖xk − xk−1‖,verwendet werden. Ausserdem sollte eine obere Grenze für die Anzahl der Ite-rationsschritte festgelegt werden, so dass der Algorithmus auch im Falle vonDivergenz nach endlich vielen Schritten abbricht (Serie 11, Aufg. 1).Beispiel: Wir illustrieren die Konvergenz des Newton-Verfahrens für die Funk-tion

f(x) =

(3x21 + x22 + 2x1 − 1

2x1x2 + 2x2 + 1

),

Page 70: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

5 NUMERIK NICHTLINEARER GLEICHUNGEN UND GLEICHUNGSSYSTEME70

mit Jacobi-Matrix

Df(x) =

(6x1 + 2 2x2

2x2 2x1 + 2

).

x1

x2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

Wenn wir Startwerte x0 ∈ [−2, 2]2 auf einem Gitter wählen, so erkennen wirdas komplizierte Konvergenzverhalten des Newton-Verfahrens:

• Liegt der Startwert in der dunkelroten Region, so konvergiert das Newton-Verfahren gegen die Nullstelle mit x1 > 0.

• Liegt der Startwert in der dunkelblauen Region, so konvergiert das Newton-Verfahren gegen die Nullstelle mit x1 < 0.

• Liegt der Startwert in der grünen Region, so divergiert das Newton-Verfahren.

x1

x2

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

Page 71: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 71

Bemerkungen:

• Der obige Pseudocode kann auch für n = 1 verwendet werden, denn indiesem Fall gilt für die (1× 1)-Jacobi-Matrix: Df(x) = f ′(x).

• Ist f(x) = Ax− b eine lineare Funktion mit einer invertierbaren MatrixA ∈ Rn×n und einem Vektor b ∈ Rn, so gilt Df(x) = A ∀x. In die-sem Fall konvergiert das Newton-Verfahren für jeden Startwert in einemSchritt gegen die Lösung des linearen Gleichungssystems Ax = b:

x1 = x0 −Df(x0)−1f(x0) = x0 −A−1 (Ax0 − b) = A−1b.

6 Lineare und nichtlineare AusgleichsrechnungIn diesem Kapitel betrachten wir die numerische Lösung vonm Gleichungen mitn Unbekannten, mit m > n (der Fall m = n wurde in den Kapiteln 2 (linear)und 5 (nichtlinear) behandelt).Beispiel: Durch die 10 Datenpunkte

i 1 2 3 4 5 6 7 8 9 10xi 0.0975 0.127 0.279 0.279 0.632 0.815 0.906 0.913 0.958 0.965yi 0.992 0.908 0.904 0.881 1.18 1.60 1.80 1.79 1.97 1.90

soll eine Parabel mit der Funktionsgleichung y = α1 + α2x+ α3x2, α1, α2, α3 ∈

R, gelegt werden. Wir suchen also Lösungen α = (α1, α2, α3)> ∈ R3 (n = 3

Unbekannte) des überbestimmten Gleichungssystems

α1 + α2xi + α3x2i = yi, i = 1, . . . , 10 (m = 10 Gleichungen).

Da eine quadratische Funktion bereits durch drei Punkte auf dem Graphen ein-deutig bestimmt ist, gibt es i. A. keine Parabel, die durch alle 10 Datenpunktegeht. Stattdessen sollen die Parameter α ∈ R3 so bestimmt werden, dass die Pa-rabel in einem gewissen Sinne “nahe” an den Datenpunkten (xi, yi), i = 1, . . . , 10,vorbeikommt. Dies führt dann z. B. auf eine solche Kurvenanpassung:

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10.8

1

1.2

1.4

1.6

1.8

2

2.2

x

y

y = 1.04 − 1.10 x + 2.12 x2

(xi,y

i), i = 1,...,10

Page 72: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 72

Jedes überbestimmte Gleichungssystem kann in der Form f(α) = 0 geschriebenwerden, mit einer Funktion f : Rn → Rm. Im Fall m > n spricht man von einemAusgleichsproblem. Im obigen Beispiel ist

f : R3 → R10, f(α) =

f1(α1, α2, α3)f2(α1, α2, α3)

...f10(α1, α2, α3)

:=

α1 + α2x1 + α3x

21 − y1

α1 + α2x2 + α3x22 − y2

...α1 + α2x10 + α3x

210 − y10

.

Solche Probleme werden üblicherweise mit der Methode der kleinsten Quadrategelöst, die auf C. F. Gauss (1777–1855) zurückgeht.

6.1 Die Methode der kleinsten Quadrate für lineare Aus-gleichsprobleme (QR-Zerlegung)

Lineare Ausgleichsprobleme lassen sich in der Form

f(α) := Aα− b = 0 ⇔ Aα = b (60)

schreiben, mit einer Matrix A ∈ Rm×n, m > n, und einem Vektor b ∈ Rm.Gesucht ist ein Vektor α ∈ Rn.Beispiel: Das Beispiel der Kurvenanpassung vom Anfang dieses Kapitels lässtsich schreiben als

1 x1 x211 x2 x22...

......

1 x10 x210

︸ ︷︷ ︸

=:A(10×3)

α1

α2

α3

︸ ︷︷ ︸α(3×1)

=

y1y2...y10

︸ ︷︷ ︸=:b(10×1)

.

Das lineare Gleichungssystem (60) ist überbestimmt und hat daher im Allge-meinen keine Lösung (es sei denn, alle 10 Datenpunkte lägen exakt auf demGraphen einer Parabel). Daher formulieren wir das Problem um zu einem Mi-nimierungsproblem:

Finde α ∈ Rn, so dass ‖Aα− b‖ =

√√√√ m∑i=1

(Aα− b)2i minimal ist, (61)

wobei ‖·‖ die Euklidische Norm im Rm bezeichnet. Wir suchen also ein lokalesMinimum der Funktion g : Rn → R,

g(α) := ‖Aα− b‖2 = (Aα− b)> (Aα− b) = α>A>Aα− 2α>A>b+ b>b.

Notwendige Bedingung für ein lokales Minimum von g ist ∇g(α) = 0. Es gilt

∇g(α) = 2A>Aα− 2A>b ∈ Rn.

Page 73: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 73

Jede Nullstelle des Gradientenfeldes von g ist Lösung der Normalgleichungen

A>Aα = A>b. (62)

Falls die Matrix A ∈ Rm×n maximalen Rang n hat, so ist A>A ∈ Rn×n in-vertierbar und damit hat (62) genau eine Lösung. In diesem Fall ist die Lösungα ∈ Rn von (62) das globale Minimum der Funktion g.Beispiel: Für das Beispiel vom Anfang dieses Kapitels erhalten wir

A>A '

10.0 5.97 4.755.97 4.75 4.124.75 4.12 3.69

, A>b '

13.99.758.24

,

und als Lösung der Normalgleichungen erhalten wir α = (1.04,−1.10, 2.12)>

mit ‖Aα− b‖ ' 9.81 · 10−2.Oft ist die Matrix A>A in den Normalgleichungen (62) schlecht konditio-

niert, was zur Folge hat, dass sich Rundungsfehler stark auf die Lösung auswir-ken. Zur Lösung der Normalgleichungen (62) verwendet man zur Vermeidungdieses Problems die QR-Zerlegung der Matrix,A = QR, mit einer orthogonalen(m×m)-Matrix Q ∈ Rm×m und einer rechten oberen Dreiecksmatrix

R =

(R1

0

)∈ Rm×n, R1 ∈ Rn×n eine rechte obere Dreiecksmatrix.

Die Matrix R1 ∈ Rn×n ist invertierbar, falls A maximalen Rang n hat. Wegender Orthogonalität der Matrix Q gilt

A>Aα = R>Q>Q︸ ︷︷ ︸=I

Rα =(R>1 0

)( R1

0

)α = R>1 R1α,

A>b = R>Q>b =(R>1 0

)( Q>1

Q>2

)b = R>1 Q

>1b.

Wenn R1 invertierbar ist, dann können die Normalgleichungen (62) auch ge-schrieben werden als

R1α = Q>1b. (63)

In (63) steht ein lineares Gleichungssystem mit einer rechten oberen Dreiecks-matrix R1 ∈ Rn×n, das wir durch Rückwärtseinsetzen lösen können (Kap. 2).Die Matrix R1 in (63) ist in der Regel deutlich besser konditioniert als die ur-sprüngliche Matrix A>A in (62), was zur Folge hat, dass sich Rundungsfehlerweniger stark auf die Lösung auswirken.

Page 74: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 74

In MATLAB können Sie α ∈ Rn wie folgt für eine gegebene Matrix A ∈ Rm×nund einen Vektor b ∈ Rm bestimmen:

n = size(A,2) % Anzahl der Spalten von A[Q,R] = qr(A) % QR-Zerlegung von AR1 = R(1:n,:);Q1 = Q(:,1:n);alpha = R1\(Q1.’*b); % oder alpha = Rsolve(R1,Q1.’*b)

% mit der Funktion Rsolve aus Serie 3

Beispiel: Für das Beispiel vom Anfang dieses Kapitels erhalten wir

R1 '

−3.16 −1.89 −1.500 1.09 1.180 0 0.188

, Q>1b '

−4.401.320.399

,

und als Lösung der Normalgleichungen erhalten wir α ' (1.04,−1.10, 2.12)>

mit ‖Aα− b‖ ' 9.81 · 10−2.Bemerkung: Der MATLAB-Befehl A\b löst automatisch das lineare Ausgleichs-problemAα = bmit der soeben beschriebenen Methode der kleinsten Quadrate,wenn A ∈ Rm×n und b ∈ Rm mit m > n.

6.2 Die Methode der kleinsten Quadrate für nichtlineareAusgleichsprobleme (Gauss-Newton-Verfahren)

Wir betrachten jetzt ein allgemeines Ausgleichsproblem der Form

f(α) = 0, f : Rn → Rm, m > n. (64)

In (64) stehen mehr Gleichungen als Unbekannte, also hat das Problem i. A. kei-ne Lösung. Wir formulieren es wieder um zu einem Minimierungsproblem:

Finde α ∈ Rn, so dass ‖f(α)‖ minimal ist. (65)

Dieses Problem lösen wir mit einem iterativen Verfahren. Sei α0 ∈ Rn einStartwert und αk−1 ∈ Rn der Wert nach k−1 Iterationen. Wir linearisieren dieFunktion f um αk−1, d. h. wir approximieren sie mit dem 1. Taylorpolynom,

(T1f) (α;αk−1) = f(αk−1) +Df(αk−1)(α−αk−1) ∈ Rm, α ∈ Rn,

mit der Jacobi-MatrixDf : Rn → Rm×n von f . Im k-ten Iterationsschritt lösenwir jetzt das lineare Ausgleichsproblem Df(αk−1)δα = −f(αk−1), und zwarwie in Kap. 6.1 beschrieben mit Hilfe der QR-Zerlegung der Matrix Df(αk−1).Danach setzen wir αk := αk−1 + δα.

Page 75: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 75

Wir erhalten den folgenden Pseudocode für das Gauss-Newton-Verfahren zurLösung von nichtlinearen Ausgleichsproblemen:

Setze k = 0, wähle einen Startwert α ∈ Rn und eine Toleranz tol > 0,setze d := 2tol (oder eine beliebige Zahl > tol)

while d > tol

k = k + 1 (Zähler für die Anzahl der Iterationen)

Löse das lineare Ausgleichsproblem Df(α)δα = −f(α) nach δα

Setze α = α+ δα, d = ‖δα‖

end

Bemerkungen:

• Für m = n ist dieses Verfahren identisch mit den Newton-Verfahren ausKap. 5 (mit einem anderen Abbruchkriterium).

• Für eine lineare Funktion f(α) = Aα − b mit A ∈ Rm×n und b ∈Rm, m > n, konvergiert das Verfahren in einem Schritt gegen die Lösungdes linearen Ausgleichsproblems Aα = b mit der Methode der kleinstenQuadrate (Kap. 6.1).

Beispiel: Durch die 10 Datenpunkte

i 1 2 3 4 5 6 7 8 9 10xi 0.119 0.163 0.224 0.276 0.340 0.498 0.585 0.655 0.680 0.960yi 0.317 0.436 0.488 0.532 0.609 0.580 0.620 0.606 0.562 0.479

soll eine Kurve mit der Funktionsgleichung y = α1xeα2x, α1, α2 ∈ R, gelegt

werden. Wir erhalten das nichtlineare Ausgleichsproblem f(α) = 0 mit m = 10,n = 2 und f : R2 → R10,

fi(α1, α2) := α1xieα2xi − yi, i = 1, . . . , 10.

Die Einträge der Jacobi-Matrix Df(α) ∈ R10×2 sind gegeben durch

(Df(α1, α2)

)i,1

=∂fi∂α1

(α1, α2) = xieα2xi , i = 1, . . . , 10,(

Df(α1, α2))i,2

=∂fi∂α2

(α1, α2) = α1x2i eα2xi , i = 1, . . . , 10.

Wir illustrieren die Konvergenz des Gauss-Newton-Verfahrens mit Startwertα0 = (1, 1)> gegen das Minimum von ‖f(α)‖ bei α∗ ' (3.48,−2.06)

>:

Page 76: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

6 LINEARE UND NICHTLINEARE AUSGLEICHSRECHNUNG 76

α1

α2

−1 0 1 2 3 4−3

−2.5

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2Niveaulinien von ||f(α

1,α

2)||

Newton−Iterationen

Es gilt ‖f(α∗)‖ ' 6.59 · 10−2. Die angepasste Kurve sieht so aus:

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

x

y

y = 3.48 x exp(−2.06 x)(x

i,y

i), i = 1,...,10

Page 77: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 77

7 Numerik gewöhnlicher DifferenzialgleichungenIn diesem Kapitel beschäftigen wir uns mit der numerischen Lösung von An-fangswertproblemen der Form

y′ = f(x,y), x > x0, y(x0) = y0, (66)

mit einer gegebenen Funktion f : R × Rn → Rn, (x,y) 7→ f(x,y), und ei-nem gegebenen Anfangswert y0 ∈ Rn. Gesucht ist eine vektorwertige Funktiony : R→ Rn, x 7→ y(x). Jedes Anfangswertproblem mit einer gewöhnlichen Diffe-renzialgleichung (gDgl) n-ter Ordnung kann auf diese Weise dargestellt werden.Beispiele:

n = 1: Das Anfangswertproblem y′ = −xy, y(0) = 1, ist von der Form (66) mitf(x, y) := −xy und x0 = 0, y0 = 1. Die Lösung dieses Anfangswertpro-blems ist y(x) = e−x

2/2, x ≥ 0 (Trennung der Variablen, s. MAE3). Wirzeichnen die Lösungskurve zusammen mit dem normierten Richtungsfeld,

v(x, y) :=1√

1 + f(x, y)2

(1

f(x, y)

)=

1√1 + x2y2

(1−xy

)in der folgenden Grafik:

0 0.5 1 1.5 2 2.5 3 3.5 40

0.5

1

1.5

2

x

y

normiertes Richtungsfeld

y = exp(−x2/2)

n = 2: Das Anfangswertproblem y′′ + 2y′ − 4y = 0, y(0) = 0, y′(0) = 1, kanndurch Definition von y1 := y, y2 := y′, y := (y1, y2)

> auf die Form (66)mit x0 = 0 gebracht werden:

y′ =

(y′1y′2

)=

(y′

y′′

)=

(y′

4y − 2y′

)=

(y2

4y1 − 2y2

)=: f(x,y),

y(0) =

(y1(0)y2(0)

)=

(y(0)y′(0)

)=

(01

)=: y0.

Page 78: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 78

Die Lösung dieses Anfangswertproblems ist gegeben durch

y(x) =

√5

5e−x sinh

(√5x), x ≥ 0.

Wir zeichnen die Lösung in der Phasenebene sowie als Funktion von x inden folgenden Grafiken:

0 0.5 1 1.5 20

0.5

1

1.5

2

y

dy/d

x

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3

x

y

Zur numerischen Lösung von gDgln werden Einschrittverfahren undMehrschritt-verfahren verwendet. Diese sind weiter unterteilt in explizite und implizite Ver-fahren. Wir behandeln hier die Einschrittverfahren.

Page 79: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 79

7.1 EinschrittverfahrenZur numerischen Lösung von (66) diskretisieren wir die unabhängige Variablex, d. h. wir wählen eine Schrittweite h > 0 und definieren xk := x0 + kh, k =0, 1, 2, . . . Wir wollen die Werte der Lösung y an diesen Stellen approximieren.

7.1.1 Explizites und implizites Euler-Verfahren

Herleitung Mit der Taylor-Formel (Satz 1) mit Entwicklungsstelle xk−1 er-halten wir

y(xk) = y(xk−1 + h) = y(xk−1) + hy′(xk−1) +O(h2)

(66)= y(xk−1) + hf(xk−1,y(xk−1)) +O(h2), h→ 0. (67)

Wir definieren jetzt die Approximation yk ' y(xk) als

yk = yk−1 + hf(xk−1,yk−1), k = 1, 2, 3, . . . , (68)

mit dem vorgegebenen Anfangswert y0 als Startwert. Dies ist das eulersche Po-lygonzugverfahren oder explizite Euler-Verfahren oder Euler-vorwärts-Verfahrenzur Lösung des Anfangswertproblems (66), nach L. Euler (1707–1783).

Verwenden wir hingegen die Taylor-Formel mit Entwicklungsstelle xk, soerhalten wir

y(xk−1) = y(xk − h) = y(xk)− hy′(xk) +O(h2)

(66)= y(xk)− hf(xk,y(xk)) +O(h2), h→ 0. (69)

Damit erhalten wir die Approximation

yk = yk−1 + hf(xk,yk), k = 1, 2, 3, . . . (70)

Dies ist das implizite Euler-Verfahren oder Rückwärts-Euler-Verfahren zur Lö-sung des Anfangswertproblems (66). In (70) ist yk nur implizit als Lösung ei-nes i. A. nichtlinearen Gleichungssystems gegeben. Zur Lösung des nichtlinea-ren Gleichungssystems in jedem Schritt des impliziten Euler-Verfahrens kannz. B. das Newton-Verfahren (Kap. 5) verwendet werden.Bemerkung: Die beiden vorgestellten Euler-Verfahren sind Einschrittverfahren,weil zur Berechnung von yk jeweils nur ein einziger vorhergehender Wert, näm-lich yk−1, benötigt wird.Beispiel: Wir betrachten das explizite Eulerverfahren für das Anfangswertpro-blem y′ = −xy =: f(x, y), y(0) = 1. Es ist gegeben durch

y0 = 1,

yk = yk−1 − hxk−1yk−1 = (1− hxk−1) yk−1, k = 1, 2, 3, . . .

Wir zeichnen das normierte Richtungsfeld, die exakte Lösung sowie drei nu-merische Lösungen mit dem expliziten Euler-Verfahren für die Schrittweitenh = 0.2, 0.4, 0.8 in der folgenden Grafik:

Page 80: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 80

0 0.5 1 1.5 2 2.5 3 3.5 4−0.2

0

0.2

0.4

0.6

0.8

1

x

y

normiertes Richtungsfeld

exakt: y = exp(−x2/2)

explizit Euler: h = 0.8

explizit Euler: h = 0.4

explizit Euler: h = 0.2

Beachten Sie, dass die numerische Lösung mit kleiner werdender Schrittweiteh > 0 immer genauer wird. Allerdings werden mit kleinerer Schrittweite h auchmehr Schritte benötigt bis zur StelleX > x0. Die Anzahl der benötigten Schritteist nämlich gegeben durch

N =X − x0h

→∞, h→ 0.

Konvergenz Die exakte Lösung des Anfangswertproblems (66) an der StellexN = X ist gegeben durch

y(xN ) = y0+

xN∫x0

y′(x) dx = y0+

N∑k=1

xk∫xk−1

y′(x) dx = y0+

N∑k=1

(y(xk)− y(xk−1)) .

Auf der anderen Seite ist die numerische Lösung mit dem expliziten Euler-Verfahren an der Stelle xN gegeben durch

yN = yN−1 + hf(xN−1,yN−1) = · · · = y0 +

N∑k=1

hf(xk−1,yk−1).

Der Fehler an der Stelle xN = X ist damit gegeben durch

y(xN )− yN =

N∑k=1

(y(xk)− y(xk−1)− hf(xk−1,yk−1)

)︸ ︷︷ ︸=O(h2), h→0

= O(h), h→ 0.

Wir sagen, das explizite Euler-Verfahren hat Konvergenzordnung 1 (genausodas implizite Euler-Verfahren).

Das implizite Euler-Verfahren ist aber viel aufwändiger als das expliziteEuler-Verfahren, weil in jedem Schritt noch ein nichtlineares Gleichungssystemgelöst werden muss. Dennoch haben die beiden Verfahren dieselbe Konvergenz-ordnung 1. Was ist also der Vorteil des impliziten Euler-Verfahrens?

Page 81: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 81

Stabilität Der Vorteil des impliziten Euler-Verfahrens liegt in seiner sog. A-Stabilität im Gegensatz zum expliziten Euler-Verfahren. Wenn ein Anfangswert-problem bis zu einer StelleX > x0 mit einer fest gewählten Anzahl von SchrittenN gelöst wird, so gilt für die Schrittweite

h =X − x0N

> 0, also nicht h→ 0.

Weil mehr Schritte auch mehr Rechenaufwand bedeuten, ist es in der Praxisüblich, ein festes N zu wählen. Ein gutes numerisches Verfahren sollte also auchfür h > 0 funktionieren.

Um ein gegebenes numerisches Verfahren zur Lösung von Anfangswertpro-blemen (66) auf Stabilität zu testen, lösen wir die Dahlquist-Testgleichung(G. Dahlquist, 1925–2005)

y′ = λy =: f(x, y), x > 0, y(0) = 1, λ ∈ C, (71)

mit dem zu testenden Verfahren. Die exakte Lösung von (71) ist gegeben durch

y(x) = eλx = e(Re(λ)+iIm(λ))x = eRe(λ)xeiIm(λ)x, x ≥ 0.

Es gilt also |y(x)| = eRe(λ)x, x ≥ 0, und daher ist die exakte Lösung beschränkt,falls Re(λ) ≤ 0. Ein numerisches Verfahren zur Lösung von Anfangswertpro-blemen (66) heisst A-stabil, falls die numerische Lösung mit diesem Verfahrendieselbe Eigenschaft hat. Für die beiden Euler-Verfahren berechnen wir die nu-merische Lösung mit Schrittweite h > 0 als

explizit: yk = yk−1 + hλyk−1 = (1 + hλ) yk−1 = (1 + hλ)k,

implizit: yk = yk−1 + hλyk ⇒ yk =yk−1

1− hλ=

1

(1− hλ)k,

für k ∈ N. Die numerische Lösung ist also beschränkt, falls

explizit: |1 + hλ| < 1, implizit:1

|1− hλ|< 1 ⇔ |1− hλ| > 1.

Wir zeichnen die sog. Stabilitätsgebiete der beiden Verfahren in der folgendenGrafik:

Page 82: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 82

Das Stabilitätsgebiet des impliziten Euler-Verfahrens enthält die linke Halb-ebene der komplexen Ebene, und daher ist dieses Verfahren A-stabil. Für dasexplizite Euler-Verfahren gilt dies nicht.

Zur Illustration der Instabilität des expliziten Euler-Verfahrens betrachtenwir das Anfangswertproblem (λ = −10) y′ = −10y, y(0) = 1, mit exakterLösung y(x) = e−10x, x ≥ 0. Für h = 0.21 gilt hλ = −2.1, und diese Zahlliegt ausserhalb des Stabilitätsgebiets des expliziten Euler-Verfahrens. Dies führtzu einer starken Oszillation und unbeschränktem Wachstum der numerischenLösung mit dem expliziten Euler-Verfahren, während die numerische Lösungmit dem impliziten Euler-Verfahren für diese Schrittweite beschränkt bleibt:

0 0.5 1 1.5 2 2.5 3 3.5 4−4

−3

−2

−1

0

1

2

3

4

x

y

normiertes Richtungsfeld

y = exp(−10 x)

Euler implizit, h = 0.21

Euler explizit, h = 0.21

Für h > 0 klein genug (im obigen Beispiel für h < 0.2) liegt hλ auch im Stabili-tätsgebiet des expliziten Euler-Verfahrens, so dass auch diese numerische Lösungbeschränkt bleibt. Insbesondere konvergieren für h→ 0 die numerischen Lösun-gen mit beiden Verfahren gegen die exakte Lösung.

0 0.5 1 1.5 2 2.5 3 3.5 4−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

y

normiertes Richtungsfeld

y = exp(−10 x)

Euler implizit, h = 0.19

Euler explizit, h = 0.19

Page 83: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 83

7.1.2 Runge-Kutta-Verfahren

Diese Verfahren sind nach C. Runge (1856–1927) und M. W. Kutta (1867–1944)benannt.

Wir können weitere Einschrittverfahren zur Lösung von Anfangswertproble-men herleiten, indem wir in der Gleichung

y(xi) = y(xi−1) +

xi∫xi−1

y′(x) dx(66)= y(xi−1) +

xi∫xi−1

f(x,y(x)) dx

das Integral mit einer Quadraturformel (Kap. 4.2) approximieren.Verwenden wir z. B. die Trapezregel (50), so erhalten wir

xi∫xi−1

f(x,y(x)) dx ' h

2(f(xi−1,y(xi−1)) + f(xi,y(xi))) .

Mit der Approximation yi−1 ' y(xi−1), yi ' y(xi) erhalten wir schliesslich dasimplizite Trapez-Verfahren

yi = yi−1 +h

2

(f(xi−1,yi−1) + f(xi,yi)

), i = 1, 2, 3, . . . (72)

Mit einem zusätzlichen expliziten Euler-Schritt, yi = yi−1 + hf(xi−1,yi−1),auf der rechten Seite wird daraus das explizite Heun-Verfahren (nach K. Heun,1859–1929)

yi = yi−1 +h

2

(f(xi−1,yi−1) + f(xi,yi−1 + hf(xi−1,yi−1))

), i = 1, 2, 3, . . .

(73)Diese beiden Verfahren haben Konvergenzordnung 2. Das implizite Trapez-Verfahren (72) ist A-stabil, das explizite Heun-Verfahren nicht.

Die Verfahren (72) und (73) sind Beispiele von 2-stufigen Runge-Kutta-Verfahren; wir können z. B. das Heun-Verfahren (73) auch schreiben als

k1 = f(xi−1,yi−1),

k2 = f(xi−1 + h,yi−1 + hk1

),

yi = yi−1 + h

(1

2k1 +

1

2k2

), i = 1, 2, 3, . . .

Allgemein ist in einem s-stufigen Runge-Kutta-Verfahren zur Lösung von An-fangswertproblemen der Form (66) der i-te Iterationsschritt gegeben durch

k1 = f(xi−1 + c1h,yi−1 + h (a11k1 + a12k2 + · · ·+ a1sks)

), (74)

k2 = f(xi−1 + c2h,yi−1 + h (a21k1 + a22k2 + · · ·+ a2sks)

), (75)

...ks = f

(xi−1 + csh,yi−1 + h (as1k1 + as2k2 + · · ·+ assks)

), (76)

yi = yi−1 + h (b1k1 + b2k2 + · · ·+ bsks) , (77)

Page 84: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 84

für i = 1, 2, 3, . . . , mit Koeffizienten aj`, bj , cj , j, ` = 1, . . . , s. Runge-Kutta-Verfahren werden mit Hilfe des sog. Butcher-Tableaus (nach J. C. Butcher,*1933) in kompakter Form dargestellt:

c1 a11 a12 · · · a1sc2 a21 a22 · · · a2s...

......

. . ....

cs as1 as2 · · · assb1 b2 · · · bs

Wir geben diese Tableaus für einige Runge-Kutta-Verfahren mit s ≤ 3 an:

Name Butcher-Tableau s Konvergenz- A-stabilordnung

Euler0 0

11 1 neinexplizit (68)

Euler1 1

11 1 jaimplizit (70)

Mittelpunktsregel0 0 012

12 00 1

2 2 neinexplizit (RK2)

Mittelpunktsregel 12

12

11 2 jaimplizit

Heun (Trapezregel)0 0 01 1 0

12

12

2 2 neinexplizit (73)

Trapezregel0 0 01 1

212

12

12

2 2 jaimplizit (72)

Simpsonregel0 0 0 012

12 0 0

1 −1 2 016

46

16

3 3 neinexplizit (RK3)

Beispiel: Das RK2-Verfahren hat Konvergenzordnung 2 und ist nicht A-stabil.Aus dem Butcher-Tableau lesen wir die Anzahl der Stufen sowie die Koeffizi-enten des Verfahrens ab: s = 2, c1 = 0, c2 = 1/2, a11 = a12 = 0, a21 = 1/2,a22 = 0, b1 = 0, b2 = 1. Mit (74)–(77) erhalten wir das folgende explizite

Page 85: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

7 NUMERIK GEWÖHNLICHER DIFFERENZIALGLEICHUNGEN 85

2-stufige Runge-Kutta-Verfahren:

k1 = f(xi−1 + 0h,yi−1 + h (0k1 + 0k2)

)= f

(xi−1,yi−1

),

k2 = f

(xi−1 +

1

2h,yi−1 + h

(1

2k1 + 0k2

))= f

(xi−1 +

h

2,yi−1 +

h

2k1

),

yi = yi−1 + h (0k1 + 1k2) = yi−1 + hk2,

für i = 1, 2, 3, . . . .Bemerkungen:

• Bei einem expliziten Runge-Kutta-Verfahren gilt aij 6= 0 im Butcher-Tableau ausschliesslich für Koeffizienten unterhalb der Diagonalen.

• Die maximale Konvergenzordnung für ein s-stufiges Runge-Kutta-Verfahrenist 2s. Sie wird ausschliesslich von impliziten Runge-Kutta-Verfahren un-ter Verwendung der Gauss-Legendre-Quadratur (Kap. 4.2.3) erreicht (wiez. B. bei der impliziten Mittelpunktsregel).

• Die grösstmögliche Konvergenzordnung für explizite s-stufige Runge-Kutta-Verfahren ist s. Explizite Runge-Kutta-Verfahren werden in der Regel sokonstruiert, dass diese Konvergenzordnung auch erreicht wird (s. Tabelle).

• Explizite Runge-Kutta-Verfahren haben immer ein beschränktes Stabili-tätsgebiet und sind daher nie A-stabil. Implizite Runge-Kutta-Verfahrenhingegen werden in der Regel so konstruiert, dass sie A-stabil sind (s. Ta-belle).

Das klassische Runge-Kutta-Verfahren (RK4) Das klassische explizi-te 4-stufige Runge-Kutta-Verfahren hat Konvergenzordnung 4. Es ist nicht A-stabil. Das Verfahren wird durch das Butcher-Tableau

0 0 0 0 012

12 0 0 0

12 0 1

2 0 01 0 0 1 0

16

13

13

16

dargestellt, oder (ausgeschrieben) durch die folgende Iterationsvorschrift:

k1 = f(xi−1,yi−1

), (78)

k2 = f

(xi−1 +

h

2,yi−1 +

h

2k1

), (79)

k3 = f

(xi−1 +

h

2,yi−1 +

h

2k2

), (80)

k4 = f(xi−1 + h,yi−1 + hk3

), (81)

yi = yi−1 +h

6(k1 + 2k2 + 2k3 + k4) , (82)

für i = 1, 2, 3, . . . .

Page 86: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

8 RANDWERTPROBLEME 86

Beispiel Wir lösen das Anfangswertproblem vom Beginn dieses Kapitels,

y′ = −xy =: f(x, y), x > 0, y(0) = 1,

mit exakter Lösung y(x) = e−x2/2, x ≥ 0, mit sämtlichen bisher vorgestellten

Runge-Kutta-Verfahren für Schrittweiten hi = 2−i, i = 1, . . . , 18, und berechnenjeweils den absoluten Fehler an der Stelle X = 4. Wir erhalten die folgendeGrafik:

10−6

10−5

10−4

10−3

10−2

10−1

100

10−20

10−18

10−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

Schrittweite h

absolu

ter

Fehle

r bei X

= 4

dy/dx = −x y, y(0) = 1

Euler explizit

Euler implizit

RK2

Mittelpunkt implizit

Heun

Trapez implizit

RK3

RK4

Gewöhnliche Differenzialgleichungen in MATLAB MATLAB verfügtüber verschiedene Löser für Anfangswertprobleme von der Form (66). Der Standard-Löser ist ode45 (eingebettetes explizites Runge-Kutta-Verfahren 4. Ordnung mitautomatischer Schrittweitensteuerung). In der Dokumentation (doc ode45) sindauch die übrigen Löser aufgeführt, z. B. ode15s oder ode23.

In Serie 13, Aufgabe 4, sollen Sie diese MATLAB-Löser anwenden.

8 RandwertproblemeEin typisches Randwertproblem für eine gDgl 2. Ordnung ist von der Form

y′′ = f(x, y, y′), x ∈ (a, b), y(a) = ya, y(b) = yb, (83)

mit einer gegebenen Funktion f : R3 → R und gegebenen Randwerten ya, yb ∈R. Beachten Sie, dass die Angabe y′(a) fehlt, also ist dies kein Anfangswertpro-blem.

Wir diskretisieren wieder die unabhängige Variable x, d. h. wir wählen eineAnzahl Schritte N ∈ N und definieren

xi = a+ ih, i = 0, . . . , N, h :=b− aN

.

Page 87: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

8 RANDWERTPROBLEME 87

Wir berechnen dann Approximationen yi ' y(xi), indem wir die Ableitungenmit (zentralen) Differenzenquotienten (Kap. 4.1.2) approximieren:

y′(xi) ' yi+1 − yi−12h

, i = 1, . . . , N − 1,

y′′(xi) ' yi+1 − 2yi + yi−1h2

, i = 1, . . . , N − 1.

Mit den Randwerten y0 ' y(x0) = y(a) = ya und yN ' y(xN ) = y(b) = yberhalten wir die folgenden Approximationen für die linke Seite der gDgl in (83):

y′′(x1) ' y2 − 2y1 + y0h2

=y2 − 2y1h2

+yah2,

y′′(x2) ' y3 − 2y2 + y1h2

,

...

y′′(xN−2) ' yN−1 − 2yN−2 + yN−3h2

,

y′′(xN−1) ' yN − 2yN−1 + yN−2h2

=ybh2

+−2yN−1 + yN−2

h2.

Wir fassen die unbekannten Werte y1, y2, . . . , yN−1 in einem Vektor y ∈ RN−1zusammen und schreiben

y′′(x1)y′′(x2)

...y′′(xN−2)y′′(xN−1)

' 1

h2

−2 1 01 −2 1

. . . . . . . . .1 −2 1

0 1 −2

︸ ︷︷ ︸

=:A

y1y2...

yN−2yN−1

+1

h2

ya0...0yb

︸ ︷︷ ︸

=:b

= Ay + b.

Die MatrixA ist eine sog. Tridiagonal-Toeplitz-Matrix (O. Toeplitz, 1881–1940).Für lineare Gleichungssysteme mit solchen Matrizen gibt es spezielle, schnelleLösungsverfahren.Die rechte Seite der gDgl in (83) approximieren wir analog durch

f(x1, y(x1), y′(x1)) ' f

(x1, y1,

y2 − y02h

)= f

(x1, y1,

y2 − ya2h

),

f(x2, y(x2), y′(x2)) ' f

(x2, y2,

y3 − y12h

),

...

f(xN−2, y(xN−2), y′(xN−2)) ' f

(xN−2, yN−2,

yN−1 − yN−32h

),

Page 88: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

8 RANDWERTPROBLEME 88

f(xN−1, y(xN−1), y′(xN−1)) ' f

(xN−1, yN−1,

yN − yN−22h

)= f

(xN−1, yN−1,

yb − yN−22h

).

Wir fassen diese Werte in einer nichtlinearen Funktion F : RN−1 → RN−1zusammen:

f

(x1, y1,

y2 − ya2h

)f

(x2, y2,

y3 − y12h

)...

f

(xN−2, yN−2,

yN−1 − yN−32h

)f

(xN−1, yN−1,

yb − yN−22h

)

=:

F1(y1, . . . , yN−1)F2(y1, . . . , yN−1)

...FN−2(y1, . . . , yN−1)FN−1(y1, . . . , yN−1)

= F (y).

Damit müssen wir schliesslich ein nichtlineares Gleichungssystem der Form

Ay + b = F (y) (84)

nach y ∈ RN−1 lösen, wozu wir beispielsweise das Newton-Verfahren (Kap. 5)verwenden können. Dies ist eine sog. Finite-Differenzen-Methode zur Lösung desRandwertproblems (83).Beispiele:

1. Wir betrachten das Randwertproblem y′′ = sin(πx), x ∈ (0, 1), y(0) = −1,y(1) = 0, mit exakter Lösung y(x) = − 1

π2 sin(πx) + x− 1, x ∈ [0, 1].

2. Wir betrachten das Randwertproblem y′′ = x(y′)2, x ∈ (0, 1), y(0) = 1,y(1) = 1− π/2, mit exakter Lösung y(x) = 1− 2 arctan(x), x ∈ [0, 1].

Natürlich sollte der Fehler gegen Null gehen, wenn h → 0. Wir zeichnen denabsoluten Fehler für das Beispiel 2 bei x = 0.5 gegen die Schrittweite und findenKonvergenzordnung 1:

10−4

10−3

10−2

10−1

100

10−5

10−4

10−3

10−2

10−1

h

ab

so

lute

r F

eh

ler

be

i x =

0.5

Beispiel 2

Page 89: MNEU Mathematik: Numerik für Energie- und Umwelttechnikdublin.zhaw.ch/~kirs/MNEU/MNEUNotes.pdf · MNEU Mathematik: Numerik für Energie- und Umwelttechnik Christoph Kirsch 21. Dezember

LITERATUR 89

Wir erhalten die folgenden numerischen Lösungen:

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

Beispiel 2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1

−0.8

−0.6

−0.4

−0.2

0Beispiel 1

exakt

Finite Differenzen, h = 0.2

Finite Differenzen, h = 0.1

Literatur[1] J. Stoer: Numerische Mathematik 1; Springer

[2] J. Stoer, R. Bulirsch: Numerische Mathematik 2; Springer