Prof. Dr. Ulrich Trottenberg Dr. Roman Wienands SS 07 3. Übung zur Algorithmischen Mathematik (für Studierende der Wirtschaftsinformatik) Abgabe: Donnerstag, 26. 4. 2007 nach der Vorlesung Aufgabe 8: Cholesky-Zerlegung Vergewissern Sie sich, dass die folgende Matrix A eine Cholesky-Zerlegung besitzt und berechnen Sie diese. 1 2 1 A = 2 5 2 . 1 2 10 (10 Punkte) Aufgabe 9: Maschinenzahlen In einem Computer werden reelle Zahlen entweder binär (Basis b = 2) oder hexadezimal (Basis b = 16) dargestellt. Wir legen hier eine hexadezimale Gleitkommadarstellung a = M · bE mit b−1 ≤ |M | < 1 zugrunde (a 6= 0). Hierbei ist M die Mantisse und E ∈ ZZ der Exponent von a zur Basis b ∈ IN. Ist a = 0, so wird die Mantisse zu Null gesetzt, wobei der Exponent beliebig ist. Wir gehen davon aus, daß für die Darstellung von M τM Hexadezimalziffern (sowie ein Vorzeichen) zur Verfügung stehen. In der Regel wird die Hexadezimaldarstellung durch zusammenhängende Bytes realisiert. Jedes Byte besteht aus 8 Bits (jeweils entweder 0 oder 1) und kann somit zwei Hexadezimalziffern aufnehmen (vergleiche mit der unten angegebenen Darstellung der Charakteristik B). Schematisch sieht eine “normalisierte Gleitpunktdarstellung” so aus (bei geradem τM ) Byte 0 Byte 1 Byte 2 . . . Byte (τM /2) E d1 d2 d3 d4 . . . dτM −1 dτM mit d1 6= 0. Das Byte 0 ist für die Darstellung des Vorzeichens und des Exponenten vorgesehen. Positive Zahlen haben dort die Darstellung 0e6 e5 e4 e3 e2 e1 e0 und negative die Darstellung 1e6 e5 e4 e3 e2 e1 e0 wobei ei ∈ {0, 1}, i = 0, . . . , 6 ist. Die Bits ei dienen zur Darstellung des Exponenten E. Die binäre Zahl B = 26 e6 + 25 e5 + 24 e4 + 23 e3 + 22 e2 + 21 e1 + 20 e0 , 0 ≤ B ≤ 127 wird als Charakteristik bezeichnet. Das Vorzeichen des Exponenten E wird nicht explizit angegeben. Man vereinbart für den Exponenten E E = B − 64, −64 ≤ E ≤ 63. 1 Die obige schematisch dargestellte reelle Zahl a hat die Hexadezimaldarstellung E a = ±16 · τM X ds 16−s , 0 ≤ ds ≤ 15, (d1 6= 0) s = 1, . . . , τM . s=1 Die Menge G(b, τM , τE ) der so im Computer darstellbaren Zahlen heißt die Menge der Maschinenzahlen. (i) Berechnen Sie die Mächtigkeit |G(b, τM , τE )| (Anzahl an Elementen) der Menge der Maschinenzahlen. (ii) Geben Sie die hexadezimale Darstellung und den Wert der folgenden Maschinenzahlen an. Nr. Byte 0 Byte 1 Byte 2 Byte 3 (1) 0100|0001 0101|0000 0000|0000 0000|0000 (2) 1100|0101 1100|0010 0000|1111 0000|0001 (3) 1011|1111 1111|0000 0000|0000 1000|1100 (4) 0100|0001 0010|0000 1111|0001 0010|0111 (5) 0011|1110 0101|1000 0000|0000 1001|1001 (iii) Bestimmen Sie die größte positive Maschinenzahl M ax. (iv) Bestimmen Sie die kleinste positive Maschinenzahl M in. (v) Bestimmen Sie die kleinste Maschinenzahl min oberhalb von 1 und geben Sie die Maschinengenauigkeit eps = (min − 1)/2 an. ((2 + 5 + 1 + 1 + 1 = 10) Punkte) Aufgabe 10: Rechnen mit Gleitkommazahlen Man gebe Beispiele dafür, dass die Gleitkommaoperationen ⊕ und ⊗ weder assoziativ noch distributiv sind. Finden Sie insbesondere Beispiele, in denen die Verletzungen der Assoziativität und/oder der Distributivität auf Auslöschungseffekten oder einem Überlauf beruhen. (10 Punkte) Aufgabe 11: Kondition und Rundungsfehler Sei rd(a, t) die auf t Stellen gerundete reelle Zahl a und ∆(a, t) ∆(a, t) a = rd(a, t) − a der absolute Fehler, bzw. der relative Fehler. Sei x = F (a1 , . . . , ap ) 2 eine auf der offenen Menge D ⊆ Rp stetig differenzierbare Funktion. Durch Taylorreihenentwicklung erhalten wir unter Vernachlässigung von Größen höherer Ordnung ∆(x, t) = F (rd(a1 , t), rd(a2 , t), . . . , rd(ap , t)) − F (a1 , a2 , . . . , ap ), p ∆(ak , t) ∆(x, t) . X = Rk x ak ∂F . P ∆(x, t) = pk=1 · ∆(ak , t), ∂ak k=1 ak ∂F · , k = 1, . . . , p. x ∂ak (i) Berechnen Sie den relativen Fehler für die folgenden Funktionen mit den relativen Konditionszahlen Rk = (1) x = a1 + a2 + . . . + ap , (2) x = a1 · a2 · · · ap , a1 (3) x = , a2 p (4) x = −a1 + a21 + a2 ∆(x, t) an. und geben Sie jeweils Fehlerschranken für x (ii) Berechnen Sie die relativen Fehler (in %) für folgende Zahlen bei 3-stelliger Gleitpunktaddition. (1) (2) (3) (4) a1 a1 a1 a1 = 0.433 · 102 , = 0.215 · 10−4 , = 0.100 · 101 , = 0.9995 · 100 , a2 a2 a2 a2 = 0.745 · 100 . = 0.998 · 10−4 . = −0.998 · 100 . = −0.9984 · 100 . ((6 + 4 = 10) Punkte) 3