I ALLGEMEINE KONDITIONSZAHL UND GLEITKOMMAZAHLEN I.A.

Werbung
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.
Herunterladen