§5 Numerische Mathematik

Werbung
62
§5 Numerische Mathematik
Die ’Numerische Mathematik’ setzt sich aus mehreren Einzelmodulen zusammen. Für alle Studierenden ist das Modul ”Numerische Mathematik I: Grundlagen” verpflichtend. In diesem
Modul lernen Sie sowohl numerische Verfahren kennen, die sich auf Ergebnisse aus der Linearen Algebra als auch auf Ergebnisse aus der Analysis beziehen.
a) Numerische Lineare Algebra
In der Linearen Algebra lernen Sie den Gauß-Algorithmus kennen, mit dem man lineare Gleichungssysteme lösen kann. In der Numerik-Vorlesung wird darauf eingegangen, welche Vorkehrungen getroffen werden müssen, damit die (theoretisch zu erzielenden) Ergebnisse auch
numerisch, d.h. im Rahmen der Rechengenauigkeit sinnvoll sind. Wir rechnen mit einer endlichen Menge von Zahlen; in der Regel sind dies die sog. Gleitpunktzahlen des Rechners.
Definition
Gleitpunktzahlen sind die 0 und alle Zahlen z = ± m · 10i , wobei
m=
t
!
k=1
ak · 10−k
ein endlicher Dezimalbruch mit m != 0, Ziffern ak ∈ {0, 1, . . . , 9} und i ∈ Z aus dem Intervall
I = [−I1 , I2 ] ⊂ Z ist. Die Zahl i sei dabei so gewählt, dass a1 != 0 ist (d.h. 0 ≤ m < 1 gilt). m
heißt Mantisse, i Exponent von z. Die Menge aller Gleitpunktzahlen mit diesen Parametern
bezeichnen wir mit F (10, t, I1 , I2 ).
Betrachten wir z.B. F (10, 3, 10, 10), so sind für m alle Zahlen mit 3 Stellen nach dem Komma,
wobei die führende Ziffer von Null verschieden ist, also alle Zahlen der Form 0.100, 0.110, . . . ,
0.999 möglich und damit für z alle Zehner-Potenzen hiervon mit den Faktoren 10−10 bis 1010 .
Die Zahl 9999 ist in F (10, 3, 10, 10) nicht darstellbar. Sie muss zu der nächstgelegenen Zahl aus
F (10, 3, 10, 10) ”gerundet” werden. Dies ist die Zahl 105 · 10−1 = 0.100 · 105 . Dafür schreibt man
(104 − 1)R = 0.100 · 105 . Die Zahl 104 − 2 ist ebenfalls in F (10, 3, 10, 10) nicht darstellbar; für
sie gilt auch (104 − 2)R = 0.100 · 105 .
Betrachten wir nun das folgende Gleichungssystem in F (10, 3, 10, 10):
(I) 0.100 · 10−3 x1 + 0.100 · 101 x2 = 0.100 · 101
(II) 0.100 · 101 x1 + 0.100 · 101 x2 = 0.200 · 101
Als exakte Lösung erhalten wir:
x1 =
104
104 − 1
und x2 =
104 − 2
104 − 1
Ein Programm möge folgendermaßen arbeiten:
Gleichung (I) werde mit 104 multipliziert, und davon wird Gleichung (II) subtrahiert. Man
erhält:
(I’) x1 + 104 · x2 = 104
63
(II) x1 + x2 = 2
Also (I’) - (II) exakt:
(II’) (104 − 1) x2 = 104 − 2
Aber in F (10, 3, 10, 10) wird folgendermaßen gerechnet:
(104 − 1)R · x2 = (104 − 2)R ,
also
woraus
0.100 · 105 x2 = 0.100 · 105
(Auslöschung signifikanter Stellen),
x2 = 1
folgt. Setzt man in Gleichung (I) ein, so folgt:
0.100 · 10−3 x1 + 0.100 · 101 · 1 = 0.100 · 101 ,
also
x1 = 0 .
Über solche Phänomene muss man sich bei dem Einsatz des Gauß-Algorithmus im Klaren sein.
Es gibt Möglichkeiten, dies zu verhindern.
Der Gauß-Algorithmus ist ein direktes Verfahren zur Lösung linearer Gleichungssysteme; man
kann solche Gleichungssysteme auch iterativ lösen. Dazu schreibt man z.B. die Koeffizientenmatrix des Gleichungssystems
A·x=b
mit einer quadratischen (m × m)-Matrix A in der Form
A=L+D+R
mit einer echten unteren Dreiecksmatrix L,

0
0
...
 a21 0
...

L =  ..
.
..
..
 .
.
am1 . . . am,m−1
0
0
..
.
0
einer invertierbaren Diagonalmatrix D







a11 . . . 0

.. 
D =  ... . . .
. 
0 . . . amm
und einer echten oberen Dreiecksmatrix R

0 a12 . . .
a1m
 .. . . . .
..

.
.
.
R= .
 0 . . . 0 am−1,m
0 ... 0
0



 .

64
Dann schreibt man das Gleichungssystem in der Form
D · x = b − (L + R) · x
⇔
x = −D−1 (L + R) · x + D−1 · b .
Mit diesem Ansatz definiert man mit einem beliebigen Startwert x(0) rekursiv eine Folge
(x(n) )n≥0 durch
x(n+1) = −D−1 (L + R) · x(n) + D−1 · b .
Unter geeigneten Voraussetzungen an die Matrix −D−1 (L + R) erhalten wir eine konvergente
Folge (x(n) )n≥0 im Rm . Notwendig und hinreichend für die Konvergenz des Verfahrens ist, dass
der betragsgrößte Eigenwert der sog. Iterationsmatrix −D−1 (L + R) kleiner als 1 ist. Hier sieht
man, dass Kenntnisse aus der Linearen Algebra (Eigenwerte von Matrizen) und aus der Analysis
(Konvergenz) erforderlich sind.
Ein anderes Thema in der Numerik ist die iterative Berechnung von Eigenwerten von Matrizen
und die Abschätzung von Eigenwerten.
b) Nichtlineare Gleichungen und Gleichungssysteme
Wenn man sich an dem Newton-Verfahren zur Bestimmung von Nullstellen differenzierbarer
Funktionen (unter geeigneten Voraussetzungen) orientiert, erhält man ein Verfahren, das zur
Nullstellenbestimmung von nichtlinearen Gleichungen und Gleichungssystemen geeignet ist.
Wie läuft das Newton-Verfahren ab? Wir starten in der Nähe einer Nullstelle, sagen wir x0 ,
und ersetzen den Graphen der Funktion f , von der wir eine Nullstelle berechnen wollen, durch
die Tangente an den Graphen im Punkt (x0 , f (x0 )). Der Schnittpunkte der Tangente mit der
x-Achse wird dann als neue Näherung genommen. Die Tangentengleichung lautet:
y = f (x0 ) + f # (x0 )(x − x0 )
Der Schnittpunkt mit der x-Achse ist
x1 = x0 −
f (x0 )
;
f # (x0 )
hieraus resultiert das Iterationsverfahren
xn+1 = xn −
f (xn )
−1
= xn − (f # (xn )) · f (xn ),
f # (xn )
das unter geeigneten Forderungen an f konvergiert. Dieses Verfahren wird auch eingesetzt zur
Nullstellenbestimmung von Funktionen f : Rn → Rn , d.h. von Abbildungen




x1
f1 (x1 , . . . , xn )
 .. 


..
 .  → f (x) = 

.
xn
fn (x1 , . . . , xn )
Dabei ist (f # (xn ))−1 die Inverse der Funktionalmatrix der Abbildung f . Wie man eine Funktionalmatrix berechnet, lernt man im Grundlagenmodul ’Analysis’, wie man die Inverse einer
quadratischen Matrix berechnet, lernt man im Grundlagenmodul ’Lineare Algebra’.
65
c) Interpolation und Integration
Will man einem ’krummlinig’ begrenzten Flächenstück eine Flächenmaßzahl zuordnen, so wird
man auf die Fragestellung der Integration geführt; als einfachste Situation betrachtet man ein
Flächenstück, das durch die x-Achse, zwei Parallelen zur y-Achse durch die Punkte (a, 0) und
(b, 0) mit a < b und den Graphen einer nichtnegativen, beschränkten Funktion f : [a, b] → R
begrenzt wird. In manchen Situationen gibt es zu f eine sog. Stammfunktion F mit F # = f ;
dann gilt für die gesuchte Flächenmaßzahl µ(f )ba :
µ(f )ba = F (b) − F (a) .
Häufig gibt es zu f keine, in elementarer Form darstellbare Funktion F ; dann ist man dazu
gezwungen, die Zahl µ(f )ba näherungsweise zu berechnen; das ist Thema der numerischen
Integration. Dazu unterteilt man das zugrundeliegende Intervall [a, b] in äquidistante Teilintervalle [xi , xi+1 ] mit xi+1 − xi = h = b−a
, d.h.
n
a = x0 < x1 < . . . < xn−1 < xn = b .
x
Als Ersatz für die Flächenmaßzahl µ(f )xi+1
wählen wir die Rechteckfläche mit dem Inhalt
i
h
Mi = h · f (xi + )
2
und damit als Ersatz für µ(f )ba die Näherung
Mh (f ) =
n−1
!
i=0
n−1
!
h
h
h · f (xi + ) = h ·
f (xi + ) .
2
2
i=0
Dies ist die Mittelpunktregel. Statt der Rechteckfläche können wir auch die Trapezfläche mit
den Eckpunkten (xi , 0), (xi+1 , 0), (xi+1 , f (xi+1 )), (xi , f (xi )) betrachten, und erhalten
Ti =
sowie
h
· (f (xi ) + f (xi+1 ))
2
n−1
!
h
h
Th (f ) = f (a) + h
f (xi ) + f (b) .
2
2
i=1
Dies ist die Trapezregel. In Abhängigkeit von der Glattheit der Funktion f kann man angeben,
wie groß der Fehler ist, wenn man die ’exakte Flächenmaßzahl’ µ(f )ba durch Mh (f ) bzw. Th (f )
ersetzt. Natürlich kann man noch viele andere Ersatzmöglichkeiten angeben.
Man kann die näherungsweise Integration auch folgendermaßen auffassen: wir ersetzen im Fall
der Mittelpunkt-Regel die gegebene Funktion f durch die stückweise konstante Funktion g mit
(
)
h
g0 (x) = f xi +
für x ∈ [xi , xi+1 ]
2
und berechnen dann µ(g0 )ba = Mh (f ). Im Fall der Trapez-Regel ersetzen wir f durch die stückweise lineare Funktion h mit
g1 (x) = f (xi ) +
f (xi+1 − f (xi )
(x − xi ) für x ∈ [xi , xi+1 ] .
h
66
Es entsteht ein Polygonzug durch die Punkte
(a, f (a)), (x1 , f (x1 )), . . . , (xn−1 , f (xn−1 )), (b, f (b)) ,
und es gilt
µ(g1 )ba = Th (f ) .
Ist die gegebene Funktion f strikt konvex, d.h. gilt f ## (x) > 0 für alle x ∈ [a, b], so ist Th (f )
immer größer als die gesuchte Flächenmaßzahl µba . Ersetzen wir aber auf dem Teilintervall
[xi , xi+1 ] die Funktion durch eine Parabel durch die Punkte
h
h
(xi , f (xi )), (xi + , f (xi + )), (xi+1 , f (xi+1 )) ,
2
2
so erhalten wir die Funktion g2 mit
*(
(
))
(
)
2
h
h
g2 (x) = 2
x − xi +
(x − xi+1 )f (xi ) + 2(x − xi )(x − xi+1 )f xi +
h
2
2
(
(
))
+
h
(x − xi )f (xi+1 ) .
+ x − xi +
2
Die Aufgabe, zu n + 1 paarweise verschiedenen vorgegebenen Punkten x0 , . . . , xn ein Polynom
höchstens n-ten Grades anzugeben, das an den Punkten xi vorgegebenen Werte yi annimmt,
ist eine Interpolationsaufgabe. In Abhängigkeit von den Punkten xi und den Daten yi kann
die Aufgabe auch darin bestehen, statt des (algebraischen) Polynoms ein trigonometrisches
Polynom oder eine Linearkombination eines anderen Funktionensystems zu betrachten.
Eine andere Verallgemeinerung besteht darin, nicht nur die Funktionswerte des ’Polynoms’,
sondern auch die Ableitungen des ’Polynoms’ an vorgegebenen Punkten vorzuschreiben.
Herunterladen