Die reellen Zahlen Die reellen Zahlen im Rechner Endliche Genauigkeit Endliche Genauigkeit R: Endliche Genauigkeit R: ungefähr 15 signifikante Dezimalstellen Endliche Genauigkeit R: ungefähr 15 signifikante Dezimalstellen Zahl = 0.z1z2z3...z15 · 10d (z1 > 0) (10 + 1) − 10 = 1 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (1000 + 1) − 1000 = 1 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (1000 + 1) − 1000 = 1 ...... (1014 + 1) − 1014 = 1 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (1000 + 1) − 1000 = 1 ...... (1014 + 1) − 1014 = 1 (1015 + 1) − 1015 = 1 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (1000 + 1) − 1000 = 1 ...... (1014 + 1) − 1014 = 1 (1015 + 1) − 1015 = 1 (1016 + 1) − 1016 = 0 (10 + 1) − 10 = 1 (100 + 1) − 100 = 1 (1000 + 1) − 1000 = 1 ...... (1014 + 1) − 1014 = 1 (1015 + 1) − 1015 = 1 (1016 + 1) − 1016 = 0 BEISPIEL BEISPIEL Die pq-Formel x2 + px + q = 0 x2 + px + q = 0 x1 = − p2 + r 2 p 2 −q x2 + px + q = 0 x1 = − p2 + r x2 = − p2 − r 2 p 2 −q 2 −q p 2 x1 := − p2 + r 2 p 2 −q x1 := − p2 + r 2 p 2 −q NOTATION (inoffiziell, nur für heute) x1 := − p2 + r 2 p 2 −q NOTATION (inoffiziell, nur für heute) x1 : eine Zahl, größte Nullstelle des Polynoms x1 := − p2 + r 2 p 2 −q NOTATION (inoffiziell, nur für heute) x1 : eine Zahl, größte Nullstelle des Polynoms {x1} : die Darstellung dieser Zahl im Rechner x1 := − p2 + r 2 p 2 −q NOTATION (inoffiziell, nur für heute) x1 : eine Zahl, größte Nullstelle des Polynoms {x1} : die Darstellung dieser Zahl im Rechner − p2 − r 2 p 2 − q : eine Rechenvorschrift x1 := − p2 + r 2 p 2 −q NOTATION (inoffiziell, nur für heute) x1 : eine Zahl, größte Nullstelle des Polynoms {x1} : die Darstellung dieser Zahl im Rechner − p2 − − p2 − r 2 p 2 r 2 p 2 − q : eine Rechenvorschrift −q : Rechnerdarstellung des Ergebnisses A=B A=B 6=⇒ {A} = {B} KONKRETES BEISPIEL x2 − 1 234 567 x + 1 = 0 x2 − 1 234 567 x + 1 = 0 x∗1 = − p2 + r 2 p 2 −q ≈ 1 234 566 . 999 999 19 x2 − 1 234 567 x + 1 = 0 x∗1 = − p2 + r 2 p 2 −q ≈ 1 234 566 . 999 999 19 (15-stellig) x2 − 1 234 567 x + 1 = 0 x∗1 = − p2 + r 2 p 2 −q ≈ 1 234 566 . 999 999 19 (15-stellig) x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 PROBE PROBE p(x) := x2 − 1 234 567 x + 1 PROBE p(x) := x2 − 1 234 567 x + 1 |p(x∗1)| < 10−15 PROBE p(x) := x2 − 1 234 567 x + 1 |p(x∗1)| < 10−15 p(x∗2) ≈ −2.1 · 10−5 PROBE p(x) := x2 − 1 234 567 x + 1 |p(x∗1)| < 10−15 p(x∗2) ≈ −2.1 · 10−5 ???? PROBE p(x) := x2 − 1 234 567 x + 1 |p(x∗1)| < 10−15 p(x∗2) ≈ −2.1 · 10−5 ???? x∗2 6= {x2} PROBE p(x) := x2 − 1 234 567 x + 1 |p(x∗1)| < 10−15 p(x∗2) ≈ −2.1 · 10−5 ???? x∗2 6= {x2} {x2} = ? richtige Formel richtige Formel falsches“ Ergebnis. ” richtige Formel falsches“ Ergebnis. ” 1. Woher kommt das? richtige Formel falsches“ Ergebnis. ” 1. Woher kommt das? 2. Was kann man dagegen tun? x2 + px + q = 0 x2 + px + q = 0 x2 + px + q = (x − x1)(x − x2) x2 + px + q = 0 x2 + px + q = (x − x1)(x − x2) q = x1 x2 x2 + px + q = 0 x2 + px + q = (x − x1)(x − x2) q = x1 x2 x2 = q/x1 p(x) = x2 − 1 234 567 x + 1 p(x) = x2 − 1 234 567 x + 1 x∗1 = − p2 + r 2 p 2 −q p(x) = x2 − 1 234 567 x + 1 x∗1 = − p2 + r 2 p 2 −q |p(x∗1)| < 10−15 p(x) = x2 − 1 234 567 x + 1 x∗1 = − p2 + r 2 p 2 −q |p(x∗1)| < 10−15 ∗} = {q/x x∗∗ 1 2 p(x) = x2 − 1 234 567 x + 1 x∗1 = − p2 + r 2 p 2 −q |p(x∗1)| < 10−15 ∗} = {q/x x∗∗ 1 2 −15 )| < 10 |p(x∗∗ 2 x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 −7 ≈ 8 . 100 005 913 009 63 · 10 x∗∗ 2 x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 −7 ≈ 8 . 100 005 913 009 63 · 10 x∗∗ 2 x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 −7 ≈ 8 . 100 005 913 009 63 · 10 x∗∗ 2 11 Dezimalstellen falsch x∗2 = − p2 − r 2 p 2 − q ≈ 8 . 100 178 092 718 12 · 10−7 −7 ≈ 8 . 100 005 913 009 63 · 10 x∗∗ 2 11 Dezimalstellen falsch Warum? x∗2 = − p2 − r 2 p 2 −q x∗2 = − p2 − r 2 p 2 −q p = −1 234 567 x∗2 = − p2 − r 2 p 2 −q p = −1 234 567 − p2 = 617 283 . 500 000 000 000 000 000 000 x∗2 = − p2 − r 2 p 2 −q p = −1 234 567 − p2 = 617 283 . 500 000 000 000 000 000 000 2 p 2 − q ≈ 617 283 . 499 999 190 xxx xxx xxx xxx r x∗2 = − p2 − r 2 p 2 −q p = −1 234 567 − p2 = 617 283 . 500 000 000 000 000 000 000 2 p 2 − q ≈ 617 283 . 499 999 190 xxx xxx xxx xxx r x∗2 = 0 . 000 000 810 xxx xxx xxx xxx x∗2 = − p2 − r 2 p 2 −q p = −1 234 567 − p2 = 617 283 . 500 000 000 000 000 000 000 2 p 2 − q ≈ 617 283 . 499 999 190 xxx xxx xxx xxx r x∗2 = 0 . 000 000 810 xxx xxx xxx xxx x∗2 = 8.10 xxx xxx xxx xxx · 10−7 Auslöschung Auslöschung x∗2 = a − b Auslöschung x∗2 = a − b a und b haben beide 15 (garantiert) richtige Dezimalstellen Auslöschung x∗2 = a − b a und b haben beide 15 (garantiert) richtige Dezimalstellen Die ersten 12 Dezimalstellen in a und b sind identisch. (Festkomma Darstellung) Auslöschung x∗2 = a − b a und b haben beide 15 (garantiert) richtige Dezimalstellen Die ersten 12 Dezimalstellen in a und b sind identisch. (Festkomma Darstellung) a − b hat nur 3 (garantiert) richtige Dezimalstellen. BOTSCHAFT BOTSCHAFT Wahrheit ist nicht genug. BOTSCHAFT Wahrheit ist nicht genug. Eine matematische Formel kann mathematisch gesund BOTSCHAFT Wahrheit ist nicht genug. Eine matematische Formel kann mathematisch gesund aber numerisch krank sein. GEBOT GEBOT Du sollst keine fast gleichen Größen voneinander abziehen. BEISPIEL BEISPIEL √ √ 1 x+1− x= √ √ x+1+ x BEISPIEL √ √ 1 x+1− x= √ √ x+1+ x √ √ f(x) := { x + 1 − x } g(x) := 1 √ √ x+1+ x Durch Auslöschung wird f zunehmend ungenau für großes x, g nicht. E-AUFGABE 13 E-AUFGABE 13 Sei r der relative Fehler von f: |f(x) − g(x)| . r(x) := g(x) E-AUFGABE 13 Sei r der relative Fehler von f: |f(x) − g(x)| . r(x) := g(x) Wie hängt r von x ab, wenn x groß wird E-AUFGABE 13 Sei r der relative Fehler von f: |f(x) − g(x)| . r(x) := g(x) Wie hängt r von x ab, wenn x groß wird (aber nicht zu groß)? E-AUFGABE 13 Sei r der relative Fehler von f: |f(x) − g(x)| . r(x) := g(x) Wie hängt r von x ab, wenn x groß wird (aber nicht zu groß)? (Hinweis. Man trage log10r(x) gegen log10x auf. Programm: EA13.r Abgabetermin: Donnerstag, 08.02.07 Lösungen an [email protected] ENDE