Technische Numerik Einf¨uhrung - Institut für Numerische Mathematik

Werbung
W I S S E N
T E C H N I K
L E I D E N S C H A F T
Technische Numerik
Einführung
Peter Gangl
Institut für Numerische Mathematik, Technische Universität Graz
c Alle Rechte vorbehalten. Nachdruck und Weitergabe nur mit
Genehmigung des Autors
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
www.numerik.math.tugraz.at
Motivation
Numerical Computing gone wrong...
1996: Rakete Ariane 5 explodiert kurz nach Start aufgrund von
overflow error
1991: Amerikanische Patriot-Rakete verfehlt eine anfliegende
irakische Scud-Rakete wegen Rundungsfehlern
1991: Öl-Plattform Sleipner A nahe Stavanger (Norwegen) sinkt
wegen ungenauer FEM-Simulation
http://www-users.math.umn.edu/∼arnold/disasters/
Modellfehler
1940: Tacoma-Narrows Brücke (WA, USA) stürzt ein weil
Einfluss von Wind im Modell vernachlässigt wurde
https://youtu.be/3mclp9QmCGs
,→ Computerprogrammen nicht blind vertrauen, kritisch hinterfragen!
2
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
Beispiel für Zyklus vom Problem zur Lösung
Anwendungsproblem
Modell des Problems
behandelbares mathematisches Problem
mathematische Analyse (Existenz, Eindeutigkeit, . . . )
Konstruktion und Analyse numerischer Verfahren
Implementierung
Berechnung
Interpretation und Anwendung der Ergebnisse
Dabei handelt es sich um keine Einbahnstraße, vielmehr sollte eine
Interaktion der einzelnen Schritte erfolgen.
3
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
Arten von Fehlern
Programmier- oder Hardwarefehler
Modellierungsfehler (wichtig bei der Bewertung der Ergebnisse)
Eingangsfehler
(Mess-)Datenfehler
Eingabefehler (z.B. Rundung auf Maschinendarstellung)
Fehler im Algorithmus
Verfahrensfehler (z.B. Abbruch unendlicher Reihen,
Diskretisierung usw.)
Rundungsfehler
Fehlerfortpflanzung
4
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
Kondition am Beispiel Geradenschnittpunkt
y
y
x
x
z
z
Für |a| groß haben kleine
Änderungen von x geringen
Einfluss auf den Schnittpunkt.
Der Fehler ist in der Größenordnung des Datenfehlers
→ gut konditioniert.
5
Für |a| klein haben kleine
Änderungen von x großen
Einfluss auf den Schnittpunkt.
Schlechte Fehlerschranken im
Verhältnis zum Eingabefehler
→ schlecht konditioniert.
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
Werteverteilung M(2, 3, −2, 3)
Exponenten: 2−2 = 14 , 2−1 = 12 , 20 = 1, 21 = 2, 22 = 4, 23 = 8.
Mantisse
±100
Werte
± 12
±101
±
±110
±
±111
±
1
2
1
2
1
2
+
+
+
1
5
8 = ±8
1
3
4 = ±4
1
1
+
4
8 =
± 78
Zahlenstrahl der positiven Werte:
Lücke
0
xmin
20
2−1
1
2
3
4
Werte sind nicht gleichmäßig verteilt.
6
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
xmax
5
6
7
www.numerik.math.tugraz.at
Standardisiertes Format nach IEEE 754
prinzipiell: normalisierte Gleitpunktzahl zur Basis b = 2
Aufbau:
s characteristic mantisse
Bits
single precision
double precision
Gesamt
32
64
s
1
1
characteristic
8
11
mantisse
23
52
s . . . Vorzeichen
Besonderheiten:
Characteristic
hidden bit
denormalisierten Zahlen
7
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
IEEE 754: Characteristic
Um das Bit zur Speicherung des Vorzeichens des Exponenten e
einzusparen, wird statt e die Characteristic c gespeichert mit
(
e + 127
für single precision
c = e + (2r −1 − 1) =
e + 1023 für double precision
mit r Bits für c ∈ N mit 0 ≤ c ≤ 2r − 1, r ∈ {8, 11}. Ausnahmen:
c = 00 . . . 00: m = 00 . . . 00 entspricht ±0
c = 11 . . . 11 und m = 00 . . . 00: ±INF (z.B. für 1/0, log(0))
c = 11 . . . 11 und m 6= 00 . . . 00: NaN (Not a Number)
z.B. 0/0, log(−1), 0/INF , INF /INF
Somit bleibt für normalisierte (
Gleitpunktzahlen:
254
für single precision
1 ≤ c ≤ 2r − 2 =
2046 für double precision
und
2 − 2r −1 ≤ e = c − (2r −1 − 1) ≤ 2r − 2 − (2r −1 − 1) = 2r −1 − 1
d.h. −126 ≤ e ≤ 127 bzw. −1022 ≤ e ≤ 1023.
8
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
IEEE 754: hidden Bit, denormalisierte Zahlen
Da das erste Bit der Mantisse m für normalisierte Gleitpunktzahlen
zur Basis 2 stets 1 ist, muss es nicht gespeichert werden (hidden bit).
→ Gewinn an Genauigkeit:
x = (−1)s (1.m) 2e
Um die Lücke um 0 zu “schließen”, werden denormalisierte Zahlen
zugelassen mit c = 00 . . . 00 und m 6= 00 . . . 00, dabei muss das
führende Bit nicht mehr 1 sein. Dann gilt:
x = (−1)s (0.m) 22−2
r −1
.
Allerdings besitzen diese Zahlen eine geringere Genauigkeit.
9
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
www.numerik.math.tugraz.at
IEEE 754: Maschinengenauigkeit eps
1 < fl(1 + ε) = fl((1 + 0.mε )20 )
mit mε = 00 . . . 001 wobei 1 an der t-ten Stelle, dann wird noch
aufgerundet. Somit: eps = 0.mε = 2−t .
Überblick über wichtige Darstellungen:
single precision (32 bit): b = 2, t = 24, emin = −126, emax = 127
double precision (64 bit):b = 2,t = 53,emin = −1022,emax = 1023
|xmin | (norm.)
|xmin | (denorm.)
|xmax |
eps
10
single precision
2
≈ 1 · 10−38
2−23 · 2−126 ≈ 5 · 10−45
(1 − 2−24 ) · 2128 ≈ 3 · 1038
2−24 ≈ 5.960 · 10−8
−126
P. Gangl, Institut für Numerische Mathematik, Technische Universität Graz
TU Graz, 04.10.2017
double precision
2
≈ 2 · 10−308
2−52 · 2−1022 ≈ 5 · 10−324
(1 − 2−53 ) · 21024 ≈ 2 · 10308
2−53 ≈ 1.110 · 10−16
−1022
Herunterladen