2 Computerarithmetik 2.1 Gleitkommazahlen

Ähnliche Dokumente
Computergestützte Mathematik zur Linearen Algebra

Computer-orientierte Mathematik

WH: Arithmetik: Floating Point

Darstellung rationaler und reeller Zahlen Vorlesung vom

Rundungsfehler-Problematik bei Gleitpunktzahlen

mit 0 z 0 b 1 und 0 ẑ b n 1 1. Nach Induktionsannahme besitzt ẑ eine Darstellung der Länge n 1 zur Basis b. Damit ist

1. Rechnerzahlen, Kondition, Stabilität

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Informationsdarstellung 2.2

Der Zahlenformatstandard IEEE 754

Wertebereiche, Overflow und Underflow

Zum Nachdenken. Wenn die Zahl (123) hat, was könnte dann (123,45) 10

Rechnen in B. Ralf Dorn. 3. September Heinrich-Hertz-Gymnasium. R. Dorn (H 2 O) Informatik LK 3. September / 6

IEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023)

Rechnergrundlagen SS Vorlesung

Algorithmen & Programmierung. Reelle Zahlen in C (1) Darstellung reeller Zahlen

Gleitkommaarithmetik. Erhöhen der Genauigkeit. Grundlagen der Rechnerarchitektur Logik und Arithmetik 124

2.1.2 Gleitkommazahlen

N Bit Darstellung von Gleitkommazahlen

Das Verfahren in Hardware

Lösung 2. Übungsblatt

6.2 Kodierung von Zahlen

D - 2 Gleitkommadarstellung und -arithmetik

o feste Anzahl Vorkommastellen (z.b. 7) o feste Anzahl Nachkommastellen (z.b. 3) o Nachteil 1: o feste Anzahl signifikanter Stellen (10)

1. Fliesskommazahlen

3. Datentypen, Ausdrücke und Operatoren

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

RO-Tutorien 3 / 6 / 12

Numerik für Ingenieure I Wintersemester 2008

bei Unterlauf wird stattdessen Hälfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

DuE-Tutorien 16 und 17

Numerik. Festpunkt-Darstellung

o feste Anzahl Vorkommastellen (z.b. 7) o feste Anzahl Nachkommastellen (z.b. 3) o Nachteil 1: o feste Anzahl signifikanter Stellen (10)

5 Zahlenformate und deren Grenzen

Einführung in die Computerorientierte Mathematik

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Analysis für Informatiker

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Richtig Rechnen. // Program: fahrenheit.c // Convert temperatures from Celsius to Fahrenheit.

Computergrundlagen Zahlensysteme

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

2. Reelle Zahlen. Denition 2.1 (Gruppe) Kapitelgliederung

Technische Numerik Einführung

Computerarithmetik ( )

LS Informatik 4 & Reelle Zahlen. Buchholz / Rudolph: MafI 2 2

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Numerisches Programmieren, Übungen

Computerarithmetik (6a)

4. Zahlendarstellungen

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Darstellung natürlicher und ganzer Zahlen Vorlesung vom

Einführung in die Programmiertechnik

BB/CS- SS00 Rechner im Überblick 1/1. Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit den folgenden Eigenschaften:

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos.

IEEE Von Janette Kaspar und Alexander Linz

4. Zahlendarstellungen

2 Darstellung von Zahlen und Zeichen

Einführung in die Computerorientierte Mathematik

HaDePrak WS 05/ Versuch

II. Grundlagen der Programmierung

Numerische Lineare Algebra

Kapitel 5: Darstellung von Daten im Rechner

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Grundlagen der Technischen Informatik. 4. Übung

Reelle Zahlen. Kapitel Der Körper der reellen Zahlen

Einführung in die Informatik I

Grundzüge der Informatik Tutorium Gruppe 6

2 Repräsentation von elementaren Daten

0 = x 2 + px + q (1) lösen. Die Lösungen können wir leicht mit Hilfe quadratischer Ergänzung konstruieren

3 Numerisches Rechnen

Mikroprozessor (CPU)

2 Rechnen auf einem Computer

Topologische Grundbegriffe I. 1 Offene und Abgeschlossene Mengen

, 2017S Übungstermin: Di.,

3 Rechnerarithmetik und Rundungsfehler

2 Zahldarstellungen und Fehleranalyse *

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Numerische Methoden. ETH Zürich SS 2006

Abschnitt 2: Daten und Algorithmen

Vorzeichenbehaftete Festkommazahlen

Binäre Division. Binäre Division (Forts.)

Die Zahl ist: (z 2, z 1, z 0 ) (z ) : 7 = 0 Rest z 2

21 Körperhomomorphismen

4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Rückblick. Addition in der b-adischen Darstellung wie gewohnt. Informatik 1 / Kapitel 2: Grundlagen

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

2.5 Primitive Datentypen

Transkript:

2 Computerarithmetik 2.1 Gleitkommazahlen Mathematische Modelle beschreiben Phänomene quantitativ mittels unendlicher Systeme von Zahlen. Beispiele sind die rationalen Zahlen Q (abzählbar unendlich) sowie die reellen Zahlen R (überabzählbar unendlich). Auf einem Computer stehen bei alphanumerischen Rechnungen immer nur endlich viele, sogenannte Gleitkommazahlen zur Verfügung, die wir generisch mit F (für floating point numbers ) bezeichnen, und die je nach Hersteller und Compiler variieren. Es gilt immer F Q R, F <. (2.1.1) Definition 2.1.1 Gleitkommazahlen sind die Teilmenge F von R von Zahlen der Form wobei x = ( 1) s (0.a 1 a 2,..., a t ) β e = ( 1) s m β e t, (2.1.2) β N, β 2 die Basis der Gleitkommazahl x F ist, t N die Anzahl der erlaubten signifikanten Stellen a i von x F ist, mit 0 a i β 1, (2.1.3) m = a 1 a 2 a 3,..., a t eine ganze Zahl, die sogenannte Mantisse, ist, mit 0 m β t 1, (2.1.4) e eine ganze Zahl, der Exponent von x F in (2.1.2) ist; er variiert in einem endlichen Intervall, d.h. L e U (2.1.5) mit L < 0, U > 0 ganz, und s das Vorzeichen von x F ist. Falls N Speicherpositionen für x F zur Verfügung stehen, gilt die Aufteilung s eine Position m t Positionen e N t 1 Positionen. Bemerkung 2.1.2 x F in (2.1.2) ist auch gegeben durch x = ( 1) s β e ( a1 β + a 2 β 2 + + a t β t ). (2.1.6) 23

Bemerkung 2.1.3 Darstellung (2.1.2) ist nicht eindeutig - um Eindeutigkeit zu erhalten, nehmen wir immer an: a 1 0. (2.1.7) a 1 heisst führende Stelle. Dann gilt 0 < β t 1 m β t 1. (2.1.8) Insbesondere ist also dann x = 0 nicht in F. Deshalb treffen wir Konvention 2.1.4 Die Menge aller x F der Form (2.1.2) ist t F(β, t, L, U) = {0} {x R : x = ( 1) s β e i=1 a i β i }, (2.1.9) die Menge der Gleitkommazahlen mit t signifikanten Stellen, Basis β 2, Ziffern 0 a i β 1 und Exponentenbereich (L, U) mit L e U, mit (2.1.7). Bemerkung 2.1.5 Es gilt x F(β, t, L, U) = x F(β, t, L, U), (2.1.10) x min (F) := β L 1 x β U (1 β 1 ) =: x max (F), (2.1.11) F(β, t, L, U) = 2(β 1) β t 1 (U L + 1) + 1. (2.1.12) Bemerkung 2.1.6 (Nicht normalisierte Gleitkommazahlen F D ) Aus (2.1.11) folgt für x R mit 0 < x < x min, dass x / F. Dies kann behoben werden durch Aufgeben von a 1 0 nur für diese x. Damit erhält man x der Form (2.1.6) mit 1 m β t 1 1, x ( β L 1, β L 1 ). Damit ist immer noch die Darstellung (2.1.9) eindeutig und die Menge aller solcher x der Form (2.1.9) heisst F D F. Es gilt 0 < x min (F D ) = min { x 0 : x F D (β, t, L, U) } = β L t < x min (F). (2.1.13) Auf den meisten Rechnern hat man einfach und doppelt genaue Zahlen. Gleitkommazahlen (β = 2) ist N = 32 für einfach genaue Zahlen wie folgt verteilt: Für binäre N = 64 für doppelt genaue Zahlen: 1 8 bits 23 bits s e m 1 11 bits 52 bits s e m 24

Bemerkung 2.1.7 (IEEE/IEC Standard) Die Gleitkommadarstellung wurde 1985 durch das Institute of Electronics and Electrical Engineers (IEEE) entwickelt und 1989 durch die International Electronical Commission (IEC) als Standard IEC 559 angenommen. Es gilt: und, für die Ausnahmewerte 0, ± : β t L U IEEE single 2 24 125 128 IEEE double 2 53 1021 1024 Wert Exponent Mantisse ± 0 L 1 0 ± U + 1 0 NaN U + 1 0 2.2 Runden mit Maschinenepsilon Zwei Zahlen x, y F, x y, können nicht beliebig nahe zueinander liegen. Es gilt für 0 x F : β 1 ε M x min { x y : y F\{0} } ε M x, (2.2.1) mit dem Maschinenepsilon ε M. Definition 2.2.1 (Maschinenepsilon ε M ) Die kleinste Zahl 0 < ε M F mit 1 + ε M > 1 in F heisst Maschinenepsilon; es gilt Das Maschinenepsilon erfüllt ε M = min { 1 y : y F\{1} }. ε M = β 1 t. (2.2.2) Bemerkung 2.2.2 Beachte, dass das Maschinenepsilon ε M nicht gleich x min (F), der kleinsten Nichtnullzahl in F, ist. Es gilt vielmehr in der Regel: 0 < x min (F) << ε M (F). Es stellt sich die Frage, wie man ε M auf einen gegebenen Rechner oder Compiler findet, wenn z.b. keine Dokumentation verfügbar ist. Der folgende MATLAB code findet für MATLAB double precision den Wert ε M = +2.2204 10 16 : e=1; while(1+e>1) e=e/2; end; 2*e Fig. 1: MATLAB code zur Bestimmung von ε M in MATLAB 25

Beachte, dass Operationen zwischen x, y F nicht Ergebnisse in F liefern müssen; es gilt x, y F impliziert nicht x y F. Hier steht für eine generische Operation, {+,,, /}, : R R R. Abhilfe schafft hier die Rundung von x y. Definition 2.2.3 (Rundung) Sei F(β, t, L, U) eine Menge von Gleitkommazahlen. Die Rundung fl ist eine Abbildung fl: R F definiert für x R in der normalisierten Positionsdarstellung mit Exponent L e U durch 0 x = ( 1) s β e a j β j R j=1 fl(x) := ( 1) s (0.a 1 a 2... ã t ) β e, (2.2.3) wobei ã t := { at für a t+1 < β/2, a t + 1 für a t+1 β/2. Proposition 2.2.4 x F = fl(x) = x, x, y R x y = fl(x) fl(y). Bemerkung 2.2.5 (Abschneiden) Alternativ zur Rundung kann man auch Abschneiden. Dann ist fl definiert wie in (2.2.3), mit ã t = a t. Bemerkung 2.2.6 (Überlauf/Unterlauf) (2.2.3) gilt nur für x R mit Exponent e [L, U]. Für x (, x max ) (x max, ) ist f l(x) in (2.2.3) nicht definiert. Sei x, y F und z = x y R. Falls sprechen wir von Überlauf, für von Unterlauf. z = x y > x max (F) := max{ x : x F} z = x y < x min (F) := min{ x : 0 x F} 26

Theorem 2.2.7 Sei F = F(β, t, L, U) R ein Gleitkommazahlsystem und z R gegeben im Bereich von F, d.h. mit x min (F) z x max (F). (2.2.4) Dann gibt es Zahlen δ i R mit fl(z) = z(1 + δ 1 ), δ i < u := 1 2 β1 t, i = 1, 2, (2.2.5) fl(z) = z/(1 + δ 2 ). (2.2.6) Beweis: (2.2.5): Wegen (2.1.10) sei ohne Beschränkung der Allgemeinheit z > 0. Dann ist Also ist z = mβ e t, β t 1 m < β t 1. F z := m β e t z m β e t =: z + F, d.h. z liegt zwischen den Gleitkommazahlen z, z + F. Also ist fl(z) {z, z + } und Daher folgt fl(z) z z + z 2 fl(z) z z βe t 2. 1 2 mβe t m β e t = 1 2 β1 t =: u. Hier gilt Gleichheit nur dann, wenn m = β t 1. Dann aber ist z = fl(z) F, deshalb gilt δ < u. (2.2.6) beweist man analog. Bemerkung 2.2.8 Die Zahl u in (2.2.5) erfüllt wegen (2.2.2) u = 1 2 β1 t = 1 2 ε M. (2.2.7) Sie heisst Rundungseinheit (Unit Roundoff) der Gleitkommaarithmetik F(β, t, L, U). Beispiele für die Werte der Maschinenarithmetik sowie von u enthält die folgende Tabelle: Machine and arithmetic β t L U u Cray-1 single 2 48-8192 8191 4 10 15 Cray-1 double 2 96-8192 8191 1 10 29 DEC VAX G format, double 2 53-1023 1023 1 10 16 DEC VAX D format, double 2 56-127 127 1 10 17 HP 28 and 48G calculators 10 12-499 499 5 10 12 IBM 3090 single 16 6-64 63 5 10 7 IBM 3090 double 16 14-64 63 1 10 16 IBM 3090 extended 16 28-64 63 2 10 33 IEEE single 2 24-125 128 6 10 8 IEEE double 2 53-1021 1024 1 10 16 IEEE extended (typical) 2 64-16381 16384 5 10 20 Tab. 2.1: Floating point arithmetic parameters 27

2.3 Gleitkommaoperationen Wir sehen, dass {+,,, /} aus F hinausführt: F F / F im Allgemeinen. Um in F zu bleiben, holt man das Ergebnis von F F wieder zurück nach F durch Anwendung der Rundung f l. Die Verknüpfung von mit Rundung führt auf die sogenannten Maschinenoperationen, die wie folgt definiert sind. Der grösseren Allgemeinheit wegen lassen wir gleich Argumente x, y R zu. Definition 2.3.1 (Maschinenoperationen) Für x, y R mit x y im Bereich von F heisst Maschinenoperation zu. x y := fl ( fl(x) fl(y) ) F (2.3.8) Für die Analyse von Algorithmen benutzen wir wegen (2.2.5), (2.2.6) das sogenannte Standardmodell des Rundungfehlers: für jede Maschinenoperation gilt Bemerkung 2.3.2 (Petaflop) x y = (x y)(1 + δ), δ u, = +,,, /. (2.3.9) Die schnellsten Grossrechner führen bis zu 10 15 Maschinenoperationen / Sekunde aus. In MATLAB double precision ist u = 1 2 ε M = 1 2 2 53 10 16, so dass Akkumulation von δ s in (2.3.9) schnell die Grösse 1 ergibt, falls (im schlechtesten Fall) bei jeder Operation der maximale Fehler δ = u realisiert wird. 28