Numerische Lineare Algebra Vorlesung 1 Prof. Dr. Klaus Höllig Institut für Mathematischen Methoden in den Ingenieurwissenschaften, Numerik und Geometrische Modellierung SS 2010 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 1 / 16
Gleitpunktzahl Eine p-stellige normalisierte Gleitpunktzahl zur Basis β, ( p ) x = σ m i β 1 i β n, m 1 0 i=1 besteht aus einem Vorzeichen σ = ±1, einer Mantisse m mit m i {0,..., β 1} und einem Exponenten n mit n min n n max. kleinste und größte positive Gleitpunktzahl: x min = β n min, x max = β nmax+1 (1 β p ) gebräuchliche Exponenten: dezimal (β = 10), dual (β = 2), hexadezimal (β = 16) Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 2 / 16
Beispiel einige Gleitpunktzahlen x = (±m 1.m 2 m p E n) β dezimal dual 304.125 = (+3.04125 E 2) 10 1 40 = 0.025 = ( 2.5 E 2) 10 304.125 = 2 8 + 2 5 + 2 4 + 2 3 = (+1.00110000001 E 1000) 2 13 32 = 2 2 + 2 3 + 2 5 = (1.101 E 10) 2 hexadezimal (Ziffern 0 9, A F ) 304.125 = 1 16 2 + 3 16 + 2 16 1 = (+1.302 E 2) 16 243.625 = (15 16 + 3 + 10 16 1 ) = ( F.3A E 1) 16 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 3 / 16
Gleitpunktzahl mit doppelter Genauigkeit Eine Gleitpunktzahl mit doppelter Genauigkeit wird als Gleitpunktzahl in Dualdarstellung mit einem transformierten Exponenten abgespeichert: IEEE-Standard (8 Byte = 64 Bit) Sonderfälle (n = 0, n = 2047) x = ±1.m 2 m p 2 n 1023. 0 1 11 12 63 σ n m 2 m 53 σ n m 0 0 oder 1 n = 0 0 underflow 0 oder 1 n m 1 = 0 overflow (Inf) 0 oder 1 n = 2047 m 2 = m 3 =... = 0 NaN 0 oder 1 n m 2 oder m 3 oder... 0 darstellbarer Bereich (nicht normalisiert für x < 2 1022 ) (1 2 53 )2 1024 x (0.0 01) 2 2 1022 = 2 1074 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 4 / 16
Beispiel x max = (1 2 53 )2 1024 1.798 10 308 0 11111111110 1111111111111111111111111111111111111111111111111111 x min = 1 2 1022 2.225 10 308 (normalisiert, kein underflow) 0 00000000001 0000000000000000000000000000000000000000000000000000 Vorgehensweise bei Umwandlung von x = 16.0625 (i) Dualdarstellung: 16.0625 = (2 4 + 2 4 ) = ( 10000.0001) 2 (ii) Normalisierung: 1.00000001 2 4 (iii) Mantisse: m 2 = = m 8 = 0, m 9 = 1, m 10 = = m 53 = 0 (iv) Exponent: 4 = n 1023 = n = 1027 = 2 10 + 2 1 + 2 0 Bitdarstellung: 1 10000000011 0000000100000000000000000000000000000000000000000000 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 5 / 16
Runden Durch Runden wird eine reelle Zahl x mit der am nächsten liegenden Gleitpunktzahl Rx approximiert. Falls x innerhalb des zulässigen Bereichs liegt, kann der Rundungsfehler folgendermaßen dargestellt werden: Rx x = δx, δ eps = β 1 p /2, wobei β die Basis und p die Anzahl der Ziffern ist. Die Konstante eps ist die Maschinengenauigkeit und entspricht bei doppelter Genauigkeit. 2 1 53 /2 = 2 53 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 6 / 16
Beweis Rundung x = σ m 1.m 2 m p m p+1 β n R x = x + (R x x) R x x = 0.0 0m p+1 β n, 0.0 0m p+1... β/2 β p Normalisierung (m 1 0) = x 1.0 β n und Rx x x (β/2) β p β n 1.0 β n, d.h. Rx x eps x bzw. δ eps Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 7 / 16
Beispiel (i) nicht abbrechende Dezimalzahl R(π) = (1.10010010000111111011010101000100010000101101000110000 E1) 2 3.14159265358979 (ii) zu große Stellenzahl 100! = 93326215443944152681... (und 138 weitere Dezimalstellen) Rundung bei doppelter Genauigkeit (1.1011001100001001011001001110110000111001010111011100 E 1000001011) 2 9.332621544394415 10 157 (iii) Over- bzw. Underflow R(1.0E1000) 10 = Inf, R(1.0E 1000) 10 = 0 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 8 / 16
Gleitpunktoperation Das Ergebnis einer Gleitpunktoperation ist das gerundete Ergebnis der exakten Operation: (Rϕ)(x, y,...) = R(ϕ(x, y,...)). Dabei muss zur Bestimmung von Rϕ der Wert von ϕ(x, y,...) nicht exakt berechnet werden, sondern nur so genau, dass das Ergebnis der Rundung bestimmt werden kann. Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 9 / 16
Beispiel Berechnung von in 3-stelliger Gleitpunktarithmetik (i) natürliche Reihenfolge (ii) zuerst Bildung der Differenz 1.28 +.135 2 =.000786... (1.28 (R+) 1.35 E 01) (R ) 1.414... = (R1.415) (R ) 1.41 = 1.42 (R ) 1.41 = 1.0E 02 1.28 (R+) (1.35 E 01 (R ) 1.414...) = 1.28 (R+) (1.35 E 01 (R ) 1.41) = 1.28 (R+) R( 1.275) = 0 relativer Fehler des ersten numerischen Ergebnisses x x x x = 0.01.000786... 0.000786... = 11.7... eps = 10 1 3 /2 = 0.005 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 10 / 16
Auslöschung Der relative Fehler einer Addition von Gleitpunktzahlen kann mit [ ] 1 + eps + O(eps 2 ) R(Rx + Ry) (x + y) x + y x + y x + y abgeschätzt werden. Für Summanden mit demselben Vorzeichen ist die rechte Seite 2 eps + O(eps 2 ). Allerdings kann der Term in Klammern für y x sehr große Werte annehmen: [ 1 + ] x + y 2β s 1, x + y falls die s ersten Ziffern in der entsprechenden Basis β übereinstimmen. Diese Ziffern verschwinden bei der Addition, und dieses als Auslöschung bekannte Phänomen verursacht einen großen Fehler. Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 11 / 16
Beweis Darstellung der Rundung, mit δ x, δ y eps = R x = x + δ x x, R y = y + δ y y, R(R x + R y) = (1 + δ) ((1 + δ x ) x + (1 + δ y ) y) Subtraktion der exakten Summe x + y R(R x + R y) (x + y) δ x x + δ y y + δ x + y + O( δ δ x + δ δ y ) Division durch x + y,schranken für die δ-faktoren Abschätzung Übereinstimmung der ersten s Ziffern, x = σ m 1.m 2... m s m s+1... β n, y = σ m 1.m 2... m s m s+1... β n, mit σ = σ = x, y β n, x + y β 1 s β n Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 12 / 16
Beispiel Differenz von zwei benachbarten Brüchen x y = 1000 1001 999 = 0.999000999... 0.999 1000 Berechnung in 6-stelliger Gleitpunktarithmetik R x = 9.99001 E 1 R y = 9.99 E 1 und R(R x R y) = 1.0E 6 relativer Fehler zum exakten Ergebnis 1/1001000 = 9.99000999... E 7 1/1000000 1/1001000 1/1001000 = 10 3 eps = β 1 p /2 = 10 5 /2 Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 13 / 16
Beispiel Drei-Term-Rekursion für Bessel-Funktionen J r+1 (z) = 2r z J r (z) J r 1 (z) numerische Berechnung für z = 2π, r = 1/2, 1/2, 3/2... r J r (z) berechnete Werte 1/2 0.318309886183 1/2 0 3/2-0.318309886183-0.318309886183 5/2-0.151981775463-0.151981775463... 39/2 0.000000005623 0.000000004660... 63/2 0.000000000000 44.5109104650466 65/2 0.000000000000 4.416640525485261 rückwärts durchlaufene Rekursion J r 1 (z) = 2r z J r (z) J r+1 (z) 3894.105905134... 1/π = J 1/2 (2π) Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 14 / 16
Fehlerfortpflanzung Bezeichnet x = x x den absoluten Fehler eines Messwerts oder einer Näherung x x so gilt für eine stetig differenzierbare Funktion f y = f (x) x + o( x) mit y = f ( x) f (x). Entsprechend gilt für den relativen Fehler ( y = f (x) x ) x + o( x) y y x falls x, y 0. Der Ausdruck in Klammern wird als Konditionszahl c r von f an der Stelle x bezeichnet. Durch Vernachlässigung des Terms o( x) lässt sich die Verstärkung des Fehlers näherungsweise abschätzen. Dabei können statt exakter Ableitungswerte auch geeignete Schranken verwendet werden: y c a x, c a max t x x f (t). Entsprechend ist c r = c a x y beim relativen Fehler geeignet. Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 15 / 16
Beispiel Einen Winkel ϑ (0, π/2) kann man aus dem Verhältnis der Katheten in dem Steigungsdreieck bestimmen: ϑ = arctan(y/x). Misst man y bei festem x, so kann der Verstärkungsfaktor c a für den absoluten Fehler durch das Maximum von dϑ dy = 1/x 1 + y 2 /x 2 = x x 2 + y 2 abgeschätzt werden. Der Ausdruck wird für y = 0 maximal, und man erhält c a = 1 x, d.h. ϑ 1/x y. Größere Ungenauigkeiten sind also für kleines x zu erwarten. Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 16 / 16
Beispiel Analog gilt für den Verstärkungsfaktor des relativen Fehlers c r = max x y y x 2 + y 2 ϑ. Verwendet man die Abschätzung y ϑ sin ϑ =, x 2 + y 2 so folgt Es gilt also näherungsweise x c r 1. x 2 + y 2 ϑ ϑ y y d.h. der relative Fehler wird nicht verstärkt. Prof. Dr. Klaus Höllig (IMNG) Numerische Lineare Algebra 16 / 16,