Sie sind auf Seite 1von 11

Skript

Numerische Mathematik I
von Prof. Dr. Plonka-Hoch

Gelesen im Wintersemester 2019/2020 an der Universität Göttingen


Inhaltsverzeichnis

1 Einführung 3
1.1 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Literaturverzeichnis

[1] R. Schaback, H. Wendland, Numerische Mathematik (Springer, 2005).

[2] M. Hanke-Burgeois, Grundlagen der Numerischen Mathematik und des Wissenschaftlichen


Rechnens (B.G. Teubner, Stuttgart, 2002).

[3] G. Hämmerlin, K.-H. Hoffmann, Numerische Mathematik (Springer, Berlin, 1989).

[4] T. Sauer, Numerische Mathematik I (Vorlesungsskript, gehalten im Wintersemester 1999/2000)

[5] H.R. Schwarz, Numerische Mathematik (B.G. Teubner Stuttgart, 1988).

[6] J. Stoer, Numerische Mathematik I (Springer, Berlin, 1999 (8. Auflage))

[7] J. Stoer, R. Burlisch, Einführung in die numerische Mathematik II (Springer, 1978)

[8] W. Burkhardt, Erste Schritte mit Maple (Springer, 1994)


1 Einführung

Was will numerische Mathematik?


Viele Probleme der realen Welt lassen sich mathematisch formulieren und mit Hilfe des Computers
lösen.

Forderung an die Lösungsverfahren


• Effizienz (Berechnung innerhalb einer problemabhängigen Zeitspanne)

• Genauigkeit (Lösung innerhalb eines gewissen Toleranzbereiches)

Aufgaben der Numerik


• Konstruktion von Verfahren zum Auffinden von Lösungen

• Analyse der Verfahren bzgl. Effizienz und Störungsanfälligkeit

1.1 Beispiele
Beispiel 1.1 (Berechnung der Ableitung). Sei f ∈ C 1 (R) (einmal stetig differenzierbar) gegeben.
Dann gilt

f (x + h) − f (x)
f 0 (x) = lim , x ∈ R.
h→0 h

Daraus ergäbe sich zum Beispiel das Verfahren in Matlab

1 function Ableitung_Kosinus
2 % Ableitung der Funktion f
3

4 h =1;
5 x =1;
6 res1 = zeros (40);
7 for i =1:40
8 res1 ( i )= single (( single ( cos ( x + h )) - single ( cos ( x )))/ h );
4 Kapitel 1. Einführung

9 h = h /2;
10 end ;
11 y =1:40;
12

13 h =1;
14 x =1;
15 res2 = zeros (40);
16 for i =1:40
17 res2 ( i )= double (( double ( cos ( x + h )) - double ( cos ( x )))/ h );
18 h = h /2;
19 end ;
20 y =1:40;
21

22

23 figure , plot (y , res1 , ’b ’) , hold on , plot (y , res2 , ’ -- ’ );


24 end

−0.1

−0.2

−0.3

−0.4

−0.5

−0.6

−0.7

−0.8

−0.9

−1
0 5 10 15 20 25 30 35 40

Abbildung 1.1: Erhaltene Werte zur Approximation der Ableitung von cos x an der Stelle x = 1 für
einfache Genauigkeit und doppelte Genauigkeit (− −).

Das Ergebnis nähert sich in einfacher Genauigkeit zunächst dem korrekten Wert −0.841471 an
und entfernt sich dann wieder davon. Das ist keine gute numerische Berechnungsvorschrift für
Ableitungen! (Grund für die Abweichung: die Rechengenauigkeit des Rechners liefert nur bis zu
etwa 8 Nachkommastellen exakte Werte, bei doppelter Genauigkeit bis zu 16 Nachkommastellen.)
In diesem Fall: single precision, da h und x single precision sind.

Beispiel 1.2 (Lösung eines linearen Gleichungssystems). Betrachte das lineare Gleichungssystem

Ax = b, A ∈ Rn×n , b, x ∈ Rn
Beispiele 5

mit gegebenem A, b, gesucht ist x. Eine Berechnungsvorschrift aus der linearen Algebra ist die
Cramer’sche Regel. Es sei
 
a 11 ··· a 1( j −1) b1 a 1( j +1) ··· a 1n
 . .. .. .. .. 
Aj =  . . ,
 . . . .

a n1 ··· a n( j −1) bn a n( j +1) ··· a nn

das heißt die j -te Spalte von A wird durch b ersetzt. Dann gilt: ist das lineare Gleichungssystem
eindeutig lösbar, so folgt

det A j
xj = .
det A

Die Berechnung der Determinante ist aber sehr aufwendig. Nach dem Determinantenentwicklungs-
satz gilt für j ∈ {1, . . . , n}

n
det A = (−1) j (−1)k a j k det A j k ,
X
k=1

wobei
 
a 11 ··· a 1(k−1) a 1(k+1) ··· a 1n
 . .. .. .. 
 .
 . . . . 

 
a ··· a ( j −1)(k−1) a ( j −1)(k+1) ··· a ( j −1)n 
 ( j −1)1
Ajk = 


a ( j +1)1 ··· a ( j +1)(k−1) a ( j +1)(k+1) ··· a ( j +1)n 
 
 . .. .. .. 
 .. . . . 
 
a n1 ··· a n(k−1) a n(k+1) ··· a nn

Die Anzahl der Rechenoperationen zur Berechnung der Determinante einer n × n-Matrix sei f (n).
Für n = 2 gilt dann

f (2) = 3,

denn im Falle einer n × n-Matrix gilt

|A| = a 11 · a 22 − a 12 · a 21 .

Weiter ist allgemein

f (n) = n · f (n − 1) + (2n − 1)
6 Kapitel 1. Einführung

(n Multiplikationen, n − 1 Additionen), das heißt also insgesamt für n ≥ 2

f (n) = n(n − 1) f (n − 2) + n(2n − 3) + (2n − 1)


n−2
X n!
= (2n − 2 j − 1).
j =0 (n − j )!

Für n = 3 ergibt sich damit

6
f (3) = 5 + · 3 = 14,
2

das heißt, der Aufwand beläuft sich auf

14 · 4 = 56

Operationen alleine zur Berechnung der 4 benötigten Determinanten zur Berechnung des Glei-
chungssystems. Für n = 10 ergibt sich

f (10) = 9 862 749.

Damit ergibt sich eine im Vergleich mit dem Gauß-Algorithmus sehr ungünstige Anzahl von Re-
chenoperationen, der Gauß-Algorithmus benötigt eine Anzahl von C · n 3 (also für n = 10: C · 1000)
Rechenoperationen. Wir werden Verfahren zur Lösung von LGS betrachten, die weniger als 2 · n 3
Operationen benötigen. Darüber hinaus ist die Berechnung von Determinanten sehr anfällig gegen
kleine Störungen (instabil).
³ ´T
Beispiel 1.3 (Berechnung der Standardabweichung). Es sei X = x 1 , . . . , xn ∈ Rn ein Vektor
von Messwerten. Dann heißt

1 X n
E (X ) = xj
n j =1

Erwartungswert und
v v à !2
n ¡ n n
u
u 1 X 1 X 1 X
u
¢2 u
V (X ) = t x j − E (X ) = t xj − xk
n − 1 j =1 n − 1 j =1 n k=1
v à à !2 !
n n X n n
u
u 1 X 2 X 1 X
=t x2 − x j xk + xk
n − 1 j =1 j n j =1 k=1 n k=1
v à à !2 !
n n
u
u 1 X 1 X
2
= t x − xk
n − 1 j =1 j n k=1

heißt Standardabweichung.
Beispiele 7

Wir betrachten folgende Berechnungsvorschrift: Es sei

S 0 = Q 0 = 0,

und

S j = S j −1 + x j , Q j = Q j −1 + x 2j , ( j = 1, . . . , n).

Dann ergeben sich die oben definierten Ausdrücke durch


s
Sn S n2
µ ¶
1
E (X ) = , V (X ) = Qn −
n n −1 n

Man kann dies auch mittels des folgenden MATLAB-Programmes realisieren (ungünstig!):

1 % Berechnung der Standardabweichung


2 function Standardabweichung
3

4 v =[1.0 , 1.00001 , 1.00002];


5 [ N1 , N2 ]= size ( v );
6 format long
7

8 % unguenstige Berechnungsvorschrift
9 s =0; q =0;
10 for i =1: N2
11 s = single ( s + v ( i ));
12 q = single ( q + v ( i )^2);
13 end
14 E = single ( s / N2 )
15 V = single ( sqrt ( single (( q - single ( s ^2/ N2 ))/( N2 -1))))
16 end

Wir erhalten die Ausgaben E = 1.0000100 und V = 0, also ein falsches Ergebnis für die Standardab-
weichung V . Der Fehler bei der Standardabweichung entsteht, da wir in einfacher Genauigkeit mit
nur acht Stellen hinter dem Komma rechnen.

Für ein stabileres Verfahren setzen wir

X k := (x 1 , . . . , x k ) , M k := E (X k ),
8 Kapitel 1. Einführung

sowie

k
Q k := (k − 1) · V (X k )2 = (x ` − M k )2
X
`=1

und

M 0 = Q 0 := 0.

Wir zeigen: Q j und M j lassen sich rekursiv für j = 1, . . . , n berechnen durch

¡ ¢2
x j − M j −1 x j − M j −1
M j = M j −1 + , Q j = Q j −1 + ( j − 1) · .
j j

Damit ist dann

p
E (X ) = M n , V (X ) = Q n n − 1.

Beweis. Wir erhalten

1 jX
−1 x j ( j − 1) xj (x j − M j −1 )
Mj = x` + = M j −1 + = M j −1 +
j `=1 j j j j

und

j ¡ j
à ¡ ¢ !2
X ¢2 X x j − M j −1
Qj = x` − M j = x ` − M j −1 −
`=1 `=1 j
jX
−1 ¡ jX
−1 ¡
¡ ¢
¢2 ¢ x j − M j −1
= x ` − M j −1 −2 x ` − M j −1
`=1 `=1 j
¶2 ¶2
x j − M j −1 ( j − 1)(x j − M j −1 )
µ µ
+ ( j − 1) +
j j
(x j − M j −1 ) ¡ ¢
= Q j −1 − 2 ( j − 1)M j −1 − ( j − 1)M j −1
j
j2 − j
+ (x j − M j −1 )2
j2
( j − 1) ¡ ¢2
= Q j −1 + x j − M j −1 .
j

Dann lässt sich das folgende (günstige) MATLAB-Programm erstellen:

1 function Standardabweichung
2 % bessere Berechnungsvorschrift
3 M =0; q =0;
Beispiele 9

4 for i =1: N2
5 q = single ( q + single (( i -1)*( v ( i ) - M )^2/ i ));
6 M = single ( M + single (( v ( i ) - M )/ i ));
7 end
8 E1 = M
9 V1 = single ( sqrt ( q /( N2 -1)))
10 end

Dieses liefert als Ausgabe die Werte,

E 1 = 1.0000100, V 1 = 9.9966055 · 10−06 ,

also eine bessere Näherung an den korrekten Wert V 1 = 0.00001. Die Wahl des Berechnungs-
verfahrens ist also wesentlich für die Genauigkeit und die Effizienz. In doppelter Genauigkeit
(Standardeinstellung) liefert der Algorithmus korrekte Ergebnisse.