1. Rechnerzahlen, Kondition, Stabilität 1 1.1. Rechnerzahlen 2 1.2. Kondition 3 1.3. Stabilität 1. Rechnerzahlen, Kondition, Stabilität 1 / 18
1.1. Rechnerzahlen allgemeine Zahlendarstellung zur Basis b: jedes x R hat eine exakte (ggf. unendliche) Darstellung ( x = s a k b k) b e k=1 wobei s { 1, +1} Vorzeichen a k {0, 1,..., b 1} Ziffern b 2 Basis (z.b. 10, 2, 16) e Z Exponent 1. Rechnerzahlen, Kondition, Stabilität 2 / 18
normalisierte Gleitpunktzahlen Definition (1.1) Menge der normalisierten Gleitpunktzahlen (Rechnerzahlen) G = G(b, l, E min, E max ) zur Basis b, mit Mantissenlänge l und Exponentenschranken E min < 0 < E max ist definiert als Menge aller Zahlen x mit der Darstellung x = s ( l a k b k) b e mit s { 1, +1}, a k {0,..., b 1}, a 1 0, k=1 und der Zahl 0. E min e E max, e Z Schreibweise: (0.a 1 a 2... a l ) b := l k=1 a kb k 1. Rechnerzahlen, Kondition, Stabilität 3 / 18
Das Gitter der Rechnerzahlen!! Auf jedem Rechner kann man nur endlich viele Zahlen darstellen!! darstellbarer Bereich D (sei B := b 1) x = a b e > 0 x min = (0.10... 0) b b E min = b E min 1 x max = (0.BB... B) b b Emax = b Emax (1 b l ) also G D := [ x max, x min ] {0} [x min, x max ] Beispiel : double precision numbers (IEEE-Standard) G = G(b, l, E min, E max ) = G(2, 53, 1021, 1024) Eine Rechnerzahl x G beansprucht 64 Bit = 8 Byte. x min 2.23 10 308, x max 1.80 10 +308 1. Rechnerzahlen, Kondition, Stabilität 4 / 18
relative Genauigkeit der Gleitpunkt-Darstellung Theorem (1.2.) Voraussetzung: G = G(b, l, E min, E max ) x R, x min x x max Behauptung: x x min 1 x G x 2 b1 l =: ε Beispiel: relative Maschinengenauigkeit ε beim IEEE-Standard b = 2, l = 53 ε = 2 53 1.11022 e 16 Man beachte: ε Matlab-Konstante eps = 2 52 = Abstand zwischen 1 und der nächst größeren Rechnerzahl 1. Rechnerzahlen, Kondition, Stabilität 5 / 18
Die Rundung Ziel: zu jeder Zahl x R eine Rechnerzahl rd(x) G finden mit x rd(x) = min x x x G Intervallschachtelung: betrachten nur den Fall x > 0 sei e so dass x [b e 1, b e [ sei x 1 = a b e so dass x [ x 1, x 1 + b l b e [, a = (0.a 1 a 2... a l ) b x = ( (0.a 1... a l z l+1... ) b ) b e z l+1 erste wegfallende Ziffer a b e, falls z l+1 < 1 2 b (abrunden) (a + b l )b e, falls z l+1 1 2 rd(x) := b (aufrunden) 0, falls x < x min (underflow) NaN, falls x > x max (overflow) 1. Rechnerzahlen, Kondition, Stabilität 6 / 18
Rundungsfehler Definition (relative Rundungsgenauigkeit) Zu gegebenem x R mit x 0 heißt ε x := rd(x) x x relative Rundungsgenauigkeit von x. Für x = 0 sei ε x := 0, da 0 G. Genauigkeit der Rundung: Theorem 1.2 ε x ε = 1 2 b1 l 10 16 beim IEEE-Standard Bemerkung: ε x = 0.12 bedeutet 12 % Rundungsfehler 1. Rechnerzahlen, Kondition, Stabilität 7 / 18
Maschinenoperationen auf dem Computer wird jede arithmetische Grundoperation {+,,, /} mit : R R R durch eine entsprechende Maschinenoperation ersetzt: {,,, } mit : G G G Realisierung durch: { rd(a b), falls a b xmax a b := NaN (not a number), falls a b > x max Man beachte: i.a. sind Rechengesetze verletzt, d.h. (a b) c a (b c) und (a b) c a c b c 1. Rechnerzahlen, Kondition, Stabilität 8 / 18
Realisierung mathematischer Funktionen auf dem Computer werden auch elementare math. Funktionen f : R R, z.b f (x) = sin(x), f (x) = e x, f (x) = x näherungsweise dargestellt durch: f f : G G Realisierung durch: { rd(f (x)), f (x) := falls f (x) xmax NaN (not a number), falls f (x) > x max + endliche Stellengenauigkeit 1. Rechnerzahlen, Kondition, Stabilität 9 / 18
1.2. Kondition eines Problems Definition (Problem) Unter einem Problem verstehen wir im folgenden die Aufgabe, aus einem gegebenen Vektor von Daten x R n ein Resultat y R nach einer Vorschrift f : R n R, d.h. y = f (x), zu berechnen. Beispiele: f : R 2 R, y = f (x 1, x 2 ) = x 1 x 2 f : R 2 R, y = f (x 1, x 2 ) = x 1 x1 2 x 2 f : R 2 R, y = f (x 1, x 2 ) = 1 0 sin(x 1t 2 + x 2 ) dt 1. Rechnerzahlen, Kondition, Stabilität 10 / 18
Fehlerquellen Eingangsdaten berechne Lsg. x R n y = f (x) Eingangsfehler x = x x exakte Lsg. y R Resultatsfehler y = y ỹ Beispiele: Messfehler Rundung von x j R auf Rechnerzahl x j = rd(x j ) G Bsp. : x j = 1 3 = 0. 3 0. 33 }{{... 3 } = x j x j = 1 3 10 l l - Stellen 1. Rechnerzahlen, Kondition, Stabilität 11 / 18
absoluter und relativer Fehler Definition (absoluter und relativer Fehler) Sei x R n eine Näherung von x R n. Dann heißt ε abs := x x ε rel := x x x absoluter Fehler der Näherung x relativer Fehler der Näherung x (Vor. x 0), wobei x die Norm des Vektors x bezeichnet z.b. x = x 2 := x1 2 + + x n 2 oder x = x := max x j. 1 j n Beispiele: x = 3000, x = 3060 : ε abs = 60 groß, ε rel = 0.02 2 % x = 0.003, x = 0.0036 : ε abs = 0.0006 klein, ε rel = 0.2 20 % 1. Rechnerzahlen, Kondition, Stabilität 12 / 18
Kondition eines Problems Definition (Kondition eines Problems) Die Kondition K f (x) eines Problems y = f (x) ist der größte auftretende Verstärkungsfaktor für den Einfluß des relativen Eingangsfehlers x / x auf den relativen Resultatsfehler y / y mit ỹ = f ( x), d.h. y / y K f (x) := sup x E x / x wobei E = Menge der möglichen Eingangsfehler ( 0) und y := y. Folgerung : y f (x) f ( x) = y f (x) }{{} rel. Resultatsfehler K f (x) }{{} Kondition x x x }{{} rel. Eingangsfehler 1. Rechnerzahlen, Kondition, Stabilität 13 / 18
Beispiel für schlechte Kondition Problem : berechne y = f (x) = 2 x für x = 2 δ, wobei 0 < δ < 0.1 klein sei x = x + x fehlerhafter Eingangswert rel. Eingangsfehler e = x < x 2 δ relativer Resultatsfehler y ỹ r = = ( 2 x) ( 2 x) y 2 ( 2 δ) r K f (x) = sup x E e x /δ x = 1 δ = x δ große Fehlerverstärkung für kleines δ ( Auslöschung ) Subtraktion von fast gleichen Zahlen i.a. schlecht konditioniert!! 1. Rechnerzahlen, Kondition, Stabilität 14 / 18
Berechnung relativer Konditionszahlen Problem: berechne y = f (x), x = (x 1,..., x n ), f : R n R Frage: wie wirken sich fehlerhafte Eingangsdaten x j = x j + x j, j = 1,..., n aus auf den relativen Resultatsfehler ε rel = Ergebnis: ε rel n x j f (x) f (x) x x j j x j }{{}}{{} =:k j (x) =ε j j=1 f (x + x) f (x) f (x) k j (x) = Verstärkungsfaktor des rel. Eingangsfehlers ε j von x j die k j (x) heißen relative Konditionszahlen des Problems 1. Rechnerzahlen, Kondition, Stabilität 15 / 18
Begriff: schlecht konditioniert Definition (Konditionierung eines Problems) Problem berechne y = f (x) heißt schlecht konditioniert, wenn sonst heißt es gut konditioniert. k(x) := max 1 j n {k j(x)} >> 1, 1. Rechnerzahlen, Kondition, Stabilität 16 / 18
1.3. Stabilität eines numerischen Verfahrens Definition (1.3) Ein numerisches Verfahren heißt instabil, wenn es die relativen Eingangsfehler wesentlich mehr verstärkt als die Kondition des Problems. Es heißt stabil, wenn die relativen Eingangsfehler in gleicher Größenordnung verstärkt werden wie durch die Kondition des Problems. Man beachte: hat ein Problem eine schlechte Kondition, so kann dies niemals durch ein numerisches Verfahren behoben werden aber: auch bei einem gut konditionierten Problem kann ein numerisches Verfahren eine extreme Fehlerverstärkung aufweisen (siehe folgendes Beispiel... ) 1. Rechnerzahlen, Kondition, Stabilität 17 / 18
Beispiel für stabiles und instabiles numer. Verfahren Problem : zu geg. x > 0 berechne y = f (x) := 1 + x 2 1 x 2 Verfahren A : nach Formel y = 1 + x 2 1 x 2 u 1 = x x u 2 = u 1 + 1 u 3 = u 2 u 4 = u 3 1 y = u 4 /u 1 Verfahren B : nach äquivalenter Formel y = 1 1 + 1 + x 2 v 1 = x x v 2 = v 1 + 1 v 3 = v 2 v 4 = v 3 + 1 y = 1/v 4 siehe Übungsaufgabe!! 1. Rechnerzahlen, Kondition, Stabilität 18 / 18