I ALLGEMEINE KONDITIONSZAHL UND GLEITKOMMAZAHLEN S. BARTELS, 30.4.2014 I.A. Konditionierung. Wir betrachten die Auswirkungen von Störungen bei der Auswertung einer mathematischen Aufgabe φ(x), die durch eine Abbildung φ : X → Y zwischen normierten Vektorräumen definiert ist. Dabei werden Störungen x e von x additiv als Summe x e = x + ∆x mit ∆x = x e − x dargestellt. Definition I.1. Die (relative) Konditionszahl κφ (x) der Funktion φ : X → Y bei x 6= 0 mit φ(x) 6= 0 ist das Infimum aller κ ≥ 0, für die ein δ > 0 existiert, so dass k∆xk kφ(x + ∆x) − φ(x)k ≤κ kφ(x)k kxk für alle ∆x ∈ X mit k∆xk/kxk ≤ δ gilt. Die Aufgabe φ(x) heißt schlecht konditioniert, falls κφ (x) 1 gilt. Satz I.2. Ist φ differenzierbar bei x, so gilt kDφ(x)kkxk . κφ (x) = kφ(x)k Beweis. Siehe Vorlesung. Im Fall linearer Gleichungssysteme ist die Konditionszahl durch die Kondtion der Matrix beschränkt. Bemerkungen I.3. (i) Für φ(b) = A−1 b gilt Dφ(b) = A−1 und mit kbk = kA(A−1 b)k ≤ kAkkA−1 bk folgt, dass kA−1 k kbk ≤ kA−1 kkAk = cond(A). kA−1 bk Ferner existiert ein b ∈ Rn , so dass Gleichheit gilt. (ii) Um Einflüsse von Störungen der Matrix A zu untersuchen, betrachten wir die Abbildung φ(A) = A−1 b. Aus der Konstanz von A 7→ Aφ(A) = b folgt Dφ(A)[E] = −A−1 EA−1 b und mit der Abschätzung kDφ(A)k ≤ kA−1 kkA−1 bk ergibt sich κφ (b) = κφ (A) ≤ kA−1 kkA−1 bkkAk = cond(A), kA−1 bk das heißt Fehler in A werden ebenfalls mit dem Faktor cond(A) verstärkt. Auch Auslöschungseffekte werden von der Konditionszahl erfasst. 1 S. BARTELS, 30.4.2014 2 Beispiel I.4. Für φ(x1 , x2 ) = x1 + x2 gilt Dφ(x1 , x2 ) = [1, 1] und somit k[1, 1]k1 k(x1 , x2 )k1 |x1 | + |x2 | = , |x1 + x2 | |x1 + x2 | so dass die Aufgabe schlecht konditioniert ist, falls x1 ≈ −x2 gilt, das heißt wenn Auslöschungseffekte auftreten können. κφ (x1 , x2 ) = I.B. Gleitkommazahlen. Auf digitalen Rechnern stehen nur endlich viele Zahlen zur Verfügung, die in der Regel wie folgt definiert sind. Definition I.5. Für eine Basis b ≥ 2, eine Präzision p ≥ 1 und Exponentenschranken emin ≤ emax mit b, p, emin , emax ∈ Z ist die Menge der Gleitkommma- oder Maschinenzahlen definiert durch G = ± mbe−p : m, e ∈ Z, 0 ≤ m ≤ bp − 1, emin ≤ e ≤ emax . Eine Gleitkommazahl g ∈ G heißt normalisiert, falls m ≥ bp−1 gilt. In den Fällen b = 2 beziehungsweise b = 10 spricht man vom Dual- und Dezimalsystem. Beispiel I.6. Für b = 10, p = 3, emin = −2 und emax = 2 besteht G aus allen Zahlen der Form ±m · 10−r mit 0 ≤ m ≤ 999 und 1 ≤ r ≤ 5, beispielsweise −783 · 10−5 , 400 · 10−3 , 40 · 10−2 , wobei nur die ersten beiden Zahlen normalisiert sind. Bemerkungen I.7. (i) Jede Gleitkommazahl g ∈ G lässt sich als b-adische Summe darstellen, das heißt es gilt g = ±be d1 b−1 + d2 b−2 + ... + dp b−p mit Ziffern d1 , d2 , ..., dp ∈ {0, 1, ..., b−1} und emin ≤ e ≤ emax . Für normalisierte Gleitkommazahlen ist diese Darstellung eindeutig definiert mit d1 6= 0. (ii) Für alle g ∈ G gilt bemin −1 ≤ |g| ≤ bemax (1 − b−p ). (iii) Für b = 10 gilt g = ±10e · 0.d1 d2 ...dp und das Komma beziehungsweise der Punkt ist von e abhängend gleitend. Beispiel I.8. Im Standard 754R des Institute of Electrical and Electronics Engineers (IEEE) sind die Formate single beziehungsweise double precision definiert durch b = 2, emin = −125, emax = 128, p = 24, b = 2, emin = −1021, emax = 1024, p = 53. Der relative Fehler bei der Approximation reeller Zahlen durch Maschinenzahlen ist beschränkt durch die sogenannte Maschinengenauigkeit. Definition I.9. Die Maschinengenauigkeit ist mit der kleinsten Zahl geps ∈ G, für die geps > 1 gilt, definiert durch eps = geps − 1 = ming>1 g − 1 Bemerkung I.10. Es gilt geps = b1 (b−1 +0·b2 +...+0·b−p+1 +b−p ) = 1+b1−p und somit eps = b1−p . I ALLGEMEINE KONDITIONSZAHL UND GLEITKOMMAZAHLEN 3 Beispiele I.11. (i) Die Maschinenzahlen zwischen be und be+1 sind gleichmäßig in einem Abstand von be eps angeordnet. eps 0 b−1 1 b2 eps b eps b b2 b3 bemax (1 − b−p ) (ii) Für die IEEE-754R-Formate single und double gilt eps = 2−23 ≈ 1.2 · 10−7 beziehungsweise eps = 2−52 ≈ 2.2 · 10−16 . I.C. Rundung. Rundungsabbildungen approximieren reelle Zahlen durch Maschinenzahlen. Definition I.12. Für eine Menge von Maschinenzahlen G heißt eine Abbildung rd : [−gmax , gmax ] → G Rundungsabbildung, falls für jede reelle Zahl x ∈ [−gmax , gmax ] gilt, dass |x − rd(x)| = ming∈G |x − g|. Bemerkungen I.13. (i) Liegt x genau zwischen zwei Maschinenzahlen, so wird in IEEE-Standards die Maschinenzahl ausgewählt, deren letzte Ziffer gerade ist. (ii) Man spricht von Overflow und Underflow, wenn |x| > gmax beziehungsweise |x| < gmin gilt. Im zweiten Fall wird in der Regel auf Null gerundet, wobei jedoch ein großer Fehler auftritt. Im denormalisierten IEEE Standard werden weitere Maschinenzahlen in einer Umgebung der Null verwendet. (iii) Zusätzlich zu den Zahlen in G gibt es meist noch den Wert NaN, der beispielsweise für undefinierte Ausdrücke verwendet wird und für Not-aNumber steht. Lemma I.14. Für jedes x ∈ R mit |x| ∈ [gmin , gmax ] gilt |x − rd(x)| 1 ≤ eps, |x| 2 das heißt es existiert ein δ ∈ R mit |δ| ≤ ε/2 und rd(x) = (1 + δ)x. Beweis. Siehe Vorlesung. Definition I.15. Das Standardmodell der Gleitkommarithmetik fordert, dass für alle x, y ∈ R mit |x|, |y| ∈ [gmin , gmax ] und jede arithmetische Standardoperation op ∈ {+, −, ∗, :} mit |x op y| ∈ [gmin , gmax ] sowie deren numerische Realisierung opG : G × G → G ein δ ∈ R mit |δ| ≤ eps/2 existiert, so dass rd(x) opG rd(y) = (x op y)(1 + δ). Bemerkungen I.16. (i) Es wird häufig weiter vereinfachend angenommen, dass rd(x) opG rd(y) = rd(x op y) gilt. (ii) Das Standardmodell wird von den IEEE-Standards erfüllt, die auf gängigen Rechnern realisiert sind. (iii) Bei vielen Operationen können sich Rundungsfehler akkumulieren und relevant werden. Man spricht in diesem Fall auch von Fehlerfortpflanzung. S. BARTELS, 30.4.2014 4 I.D. Stabilität. Es bezeichne φe : X → Y ein numerisches Verfahren, das heißt eine endliche Folge rundungsfehlerbehafteter Grundoperationen. Bei Rundung des Arguments x gilt e + ∆x) = φ(x) − φ(x + ∆x) + φ(x + ∆x) − φ(x e + ∆x) , φ(x) − φ(x wobei der erste Term auf der rechten Seite durch die Konditionierung von φ kontrolliert wird und der zweite die Stabilität des Verfahrens widergibt. Letztere ist abhängig von der theoretisch frei wählbaren Rundungsgenauigkeit ε e um dies zu kennzeichnen. und wir schreiben im Folgenden auch φeε statt φ, Definition I.17. Der Stabilitätsindikator σφe(x) des numerischen Verfahrens φe ist das Infimum aller σ ≥ 0 für die ein δ > 0 existiert, so dass kφ(x) − φeε (x)k ≤ σκφ (x)ε kφ(x)k für jedes 0 ≤ ε ≤ δ gilt. Das Verfahren φe heißt instabil, falls σφe(x) 1 gilt. Andernfalls heißt das Verfahren (vorwärts-) stabil. Genaue Stabilitätsanalysen sind im Allgemeinen äußerst aufwendig. Die folgenden Konzepte werden üblicherweise in der Praxis angewendet. Bemerkung I.18. Bei der linearen Vorwärtsanalyse wird jedes Zwischenergebnis zi als rundungsbehaftet angesehen und durch (1 + εi )zi mit |εi | ≤ ε ersetzt. Produkte der Form εi εj werden in der Rechnung vernachlässigt. Die Division wird bezüglich ε linearisiert, das heißt beispielsweise (x(1 + ε))−1 ≈ (1 − ε)x−1 . Ein einfacher zu prüfendes, aber sehr einschränkendes Stabilitätskriterium ist die sogenannte Rückwärtsstabilität. Definition I.19. Der Rückwärtsstabilitätsindikator %φe(x) einer Operation φeε : X → Y bei x ist das Infimum aller % ≥ 0, für die ein δ > 0 existiert, so dass es für alle 0 < ε < δ ein ∆x ∈ X gibt mit φ(x + ∆x) = φeε (x) und k∆xk ≤ %ε. kxk Das Verfahren heißt rückwärtsstabil, sofern nicht %φe(x) 1 gilt. Bemerkung I.20. Ist φe rückwärtsstabil, so ist φe stabil, denn es gilt e 1 kφ(x) − φ(x)k 1 kφ(x + ∆x) − φ(x)k k∆xk = ≤ κφe(x) εkφ(x)k κφe(x) εkφ(x)k εkxk und daher σφe(x) ≤ %φe(x). Beispiel I.21. Die Gleitkomma-Realisierung der Aufgabe φ(x) = 1 + x ist nicht rückwärtsstabil für kleine Zahlen x, denn es gilt |φ−1 (1 + x + ∆x) − φ−1 (1 + x)|/|φ−1 (1 + x)| = |∆x|/|x| |∆x|. Offensichtlich ist φe = φ jedoch stabil für kleine Zahlen x.