Wenn ein Computer alles falsch macht BZQ-I - Wissenschaftliches Rechnen W ENN EIN C OMPUTER ALLES FALSCH MACHT René Lamour 29. Januar 2010 Wenn ein Computer alles falsch macht dann geht auch was schief M URPHYS G ESETZE Grundgesetz: Wenn etwas schiefgehen kann, dann wird es schiefgehen. Wenn ein Computer alles falsch macht dann geht auch was schief M URPHYS G ESETZE Grundgesetz: Wenn etwas schiefgehen kann, dann wird es schiefgehen. Die großen Fehler merkt keiner. Die kleinen Fehler akkumulieren sich. Wenn ein Computer alles falsch macht dann geht auch was schief M URPHYS G ESETZE Grundgesetz: Wenn etwas schiefgehen kann, dann wird es schiefgehen. Die großen Fehler merkt keiner. Die kleinen Fehler akkumulieren sich. Jeder Fehler in einer Berechnung wird sich in die Richtung des größtmöglichen Schadens bewegen. Wenn ein Computer alles falsch macht dann geht auch was schief TACOMA -B RIDGE über den Puget Sund im US-Staat Washington Wenn ein Computer alles falsch macht dann geht auch was schief TACOMA -B RIDGE über den Puget Sund im US-Staat Washington Wenn ein Computer alles falsch macht dann geht auch was schief M ARINER I Start der ersten amerikanischen Venussonde 22. Juli 1962 Wenn ein Computer alles falsch macht dann geht auch was schief M ARINER I Start der ersten amerikanischen Venussonde 22. Juli 1962 Wenn ein Computer alles falsch macht dann geht auch was schief M ARINER I Start der ersten amerikanischen Venussonde 22. Juli 1962 Wenn ein Computer alles falsch macht dann geht auch was schief M ARINER I Start der ersten amerikanischen Venussonde 22. Juli 1962 Trägerrakete wurde 290 Sekunden nach dem Start zerstört. Wenn ein Computer alles falsch macht dann geht auch was schief A RIANE 5 Wenn ein Computer alles falsch macht dann geht auch was schief A RIANE 5 Nachdem die Trägerrakete vom Kurs abkam, zerstörte sie sich selbst. Wenn ein Computer alles falsch macht dann geht auch was schief EC K ARTEN 2010 Spiegel meldet Anfang des Jahres: Wenn ein Computer alles falsch macht dann geht auch was schief EC K ARTEN 2010 Spiegel meldet Anfang des Jahres: Millionen Bankkunden konnten in den vergangenen Tagen weder Geld abheben noch mit EC- oder Kreditkarte zahlen, vor allem Sparkassen sind betroffen. Defekte Chips machten das Plastikgeld unbrauchbar - die Probleme sind noch nicht endgültig behoben. Wenn ein Computer alles falsch macht dann geht auch was schief EC K ARTEN 2010 Spiegel meldet Anfang des Jahres: Millionen Bankkunden konnten in den vergangenen Tagen weder Geld abheben noch mit EC- oder Kreditkarte zahlen, vor allem Sparkassen sind betroffen. Defekte Chips machten das Plastikgeld unbrauchbar - die Probleme sind noch nicht endgültig behoben. In Australien weisen Bankterminals Karten bei Auszahlung ab. Wenn ein Computer alles falsch macht dann geht auch was schief WAS LIEF DA SCHIEF ? Bei der Tacoma-Brücke, der Venussonde, dem Satellitentransporter Ariane 5 und beim Plastikkartencrash? (und bei den vielen anderen Fehlleistungen) Wenn ein Computer alles falsch macht dann hat das einen Grund TACOMA -B RIDGE Karman entdeckt 1912 die Wirbelbildung hinter Hindernissen. Wenn ein Computer alles falsch macht dann hat das einen Grund TACOMA -B RIDGE Karman entdeckt 1912 die Wirbelbildung hinter Hindernissen. Wenn ein Computer alles falsch macht dann hat das einen Grund TACOMA -B RIDGE Karman entdeckt 1912 die Wirbelbildung hinter Hindernissen. Diese Erkenntnisse werden nicht zur Kenntnis genommen. Wenn ein Computer alles falsch macht dann hat das einen Grund TACOMA -B RIDGE Karman entdeckt 1912 die Wirbelbildung hinter Hindernissen. Diese Erkenntnisse werden nicht zur Kenntnis genommen. Wirbelinduzierte Schwingung bei 64 km/h - Eigenschwingung der Brücke - Resonanz Wenn ein Computer alles falsch macht dann hat das einen Grund TACOMA -B RIDGE Karman entdeckt 1912 die Wirbelbildung hinter Hindernissen. Diese Erkenntnisse werden nicht zur Kenntnis genommen. Wirbelinduzierte Schwingung bei 64 km/h - Eigenschwingung der Brücke - Resonanz Nach diesem Brückeneinsturz wird nicht nur die Statik, sondern auch die Dynamik von Bauwerken überprüft. Wenn ein Computer alles falsch macht dann hat das einen Grund M ARINER I ... DO 20 N0 = 1, 8 EPS = 5.0*10.0**(N0-7) CALL BESJ(X, 0, B0, EPS, IER) IF (IER .EQ. 0) GOTO 10 20 CONTINUE DO 5 K = 1. 3 T(K) = W0 Z = 1.0/(X**2)*B1**2+3.0977E-4*B0**2 D(K) = 3.076E-2*2.0*(1.0/X*B0*B1+3.0977E-4* *(B0**2-X*B0*B1))/Z E(K) = H**2*93.2943*W0/SIN(W0)*Z 5 H = D(K)-E(K) 10 CONTINUE ... Wenn ein Computer alles falsch macht dann hat das einen Grund M ARINER I ... DO 5 K = 1. 3 T(K) = W0 ... 5 CONTINUE ... Wenn ein Computer alles falsch macht dann hat das einen Grund M ARINER I ... DO 5 K = 1. 3 T(K) = W0 ... 5 CONTINUE ... Anstelle DO 5 K = 1, 3 ⇒ Wenn ein Computer alles falsch macht dann hat das einen Grund M ARINER I ... DO 5 K = 1. 3 T(K) = W0 ... 5 CONTINUE ... Anstelle DO 5 K = 1, 3 ⇒ Variable DO5K = 1.3 Wenn ein Computer alles falsch macht dann hat das einen Grund M ARINER I ... DO 5 K = 1. 3 T(K) = W0 ... 5 CONTINUE ... Anstelle DO 5 K = 1, 3 ⇒ Variable DO5K = 1.3 Abweichung der Trägerrakete von der vorgesehenen Flugbahn - Zerstörung der Rakete Kosten dieser falschen Wertzuweisung: $ 18.5 Millionen Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Horizontale Geschwindigkeit: von 64 Bit Gleitkommadarstellung ⇒ 16 Bit signed Integer Überlegung: IntegerOverflow kann NIE passieren Vereinbaren der Variablen: declare vertical_veloc_sensor: float; horizontal_veloc_sensor: float; vertical_veloc_bias: integer; horizontal_veloc_bias: integer; Wenn ein Computer alles falsch macht dann hat das einen Grund begin pragma suppress(numeric_error, horizontal_veloc_bias); begin sensor_get(vertical_veloc_sensor); sensor_get(horizontal_veloc_sensor); vertical_veloc_bias := integer(vertical_veloc_sensor); horizontal_veloc_bias := integer(horizontal_veloc_sensor); ... exception when numeric_error => calculate_vertical_veloc(); when others => use_irs1(); end; end irs2; Wenn ein Computer alles falsch macht dann hat das einen Grund Ausschalten des Fehlers: pragma suppress(numeric_error, horizontal_veloc_bias); daher keine Fehlerbehandlung für numeric error horizontal_veloc_bias := integer(horizontal_veloc_sensor); ... exception when numeric_error => calculate_vertical_veloc(); when others => use_irs1(); end; end irs2; Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Das Programm (ca. 3 Millionen Zeilen) war für Ariane 4 entworfen worden. Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Das Programm (ca. 3 Millionen Zeilen) war für Ariane 4 entworfen worden. Ausschalten des Fehlers (Rechengeschwindigkeit), da er niemals aufgetreten war. Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Das Programm (ca. 3 Millionen Zeilen) war für Ariane 4 entworfen worden. Ausschalten des Fehlers (Rechengeschwindigkeit), da er niemals aufgetreten war. Bei Ariane 5 war die entsprechende Zahl größer als 215 = 32768 Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Das Programm (ca. 3 Millionen Zeilen) war für Ariane 4 entworfen worden. Ausschalten des Fehlers (Rechengeschwindigkeit), da er niemals aufgetreten war. Bei Ariane 5 war die entsprechende Zahl größer als 215 = 32768 Der Bordcomputer stürzte 36.7 s nach dem Start ab. Wenn ein Computer alles falsch macht dann hat das einen Grund A RIANE 5 Das Programm (ca. 3 Millionen Zeilen) war für Ariane 4 entworfen worden. Ausschalten des Fehlers (Rechengeschwindigkeit), da er niemals aufgetreten war. Bei Ariane 5 war die entsprechende Zahl größer als 215 = 32768 Der Bordcomputer stürzte 36.7 s nach dem Start ab. Das baugleiche Ersatzcomputer war mit der exakt derselben Software ausgestattet. Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Horrorszenarien bzgl. Y2K Problem Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 00h = 2000 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 01h = 2001 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 02h = 2002 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 03h = 2003 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 04h = 2004 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 05h = 2005 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 06h = 2006 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 07h = 2007 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 08h = 2008 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 09h = 2009 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 10h = 1 ∗ 161 + 0 ∗ 160 = 2016 Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 10h = 1 ∗ 161 + 0 ∗ 160 = 2016 Das Teminal hat die aktuellen Karten als veraltet abgewiesen. Wenn ein Computer alles falsch macht dann hat das einen Grund EC K ARTEN 2010 Wie könnte man (wenn Speicherplatz fehlt) die Jahreszahl verschlüsseln? Variante: 1 Bit für 19 oder 20 und eine zweistellige Zahl. Dafür stehen verschiedene Zahlentypen bereit. In Australien wurden Hexadezimalzahlen benutzt (Basis 16) Die Zeituhr tickt: 10h = 1 ∗ 161 + 0 ∗ 160 = 2016 Das Teminal hat die aktuellen Karten als veraltet abgewiesen. Das EC-Kartenproblem könnte ähnliche Ursachen haben. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen N EUE P ROBLEME Bisherige Beispiele basierten auf Unkenntnis oder Programmierfehlern. Rechnet ein Computer eigentlich richtig? Bekommt man (egal auf welchen Weg) immer das Gleiche heraus? Ist das Ergebnis überhaupt richtig? Sehen wir uns ein Beispiel an! Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen N EUE P ROBLEME Bisherige Beispiele basierten auf Unkenntnis oder Programmierfehlern. Rechnet ein Computer eigentlich richtig? Bekommt man (egal auf welchen Weg) immer das Gleiche heraus? Ist das Ergebnis überhaupt richtig? Sehen wir uns ein Beispiel an! Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen N EUE P ROBLEME Bisherige Beispiele basierten auf Unkenntnis oder Programmierfehlern. Rechnet ein Computer eigentlich richtig? Bekommt man (egal auf welchen Weg) immer das Gleiche heraus? Ist das Ergebnis überhaupt richtig? Sehen wir uns ein Beispiel an! Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen N EUE P ROBLEME Bisherige Beispiele basierten auf Unkenntnis oder Programmierfehlern. Rechnet ein Computer eigentlich richtig? Bekommt man (egal auf welchen Weg) immer das Gleiche heraus? Ist das Ergebnis überhaupt richtig? Sehen wir uns ein Beispiel an! Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen N EUE P ROBLEME Bisherige Beispiele basierten auf Unkenntnis oder Programmierfehlern. Rechnet ein Computer eigentlich richtig? Bekommt man (egal auf welchen Weg) immer das Gleiche heraus? Ist das Ergebnis überhaupt richtig? Sehen wir uns ein Beispiel an! Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 Rechnen wir hier einmal selbst. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 √ √ a+b+ a = √ √ √ √ ( a + b − a)( a + b + a) Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 √ √ a+b+ a = √ √ √ √ ( a + b − a)( a + b + a) √ √ a+b+ a = b Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 √ √ a+b+ a = √ √ √ √ ( a + b − a)( a + b + a) √ √ a+b+ a = b = 6324555.322 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Benutzen einen Taschenrechner mit 10-stelliger Anzeige: √ 1 √ a+b− a für a = 105 und b = 10−4 = 6329113.924 √ √ a+b+ a = √ √ √ √ ( a + b − a)( a + b + a) √ √ a+b+ a = b = 6324555.322 Das ist ein Unterschied von 4558.60208 bei mathematisch identischen Ausdrücken! Die vierte Stelle ist falsch bei 10-stelliger Anzeige Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Was ist anders bei der Computerrechnung? Wir verwenden keine reellen Zahlen mehr, sondern normalisierte Gleitkommazahlen. Beispiel: 222.029388 = +0.222029388 · 10+3 Wichtig für die Genauigkeit ist die Mantissenlänge - die Anzahl der Ziffern nach dem Komma. Für Festkommazahlen bedeutet Mantissenlänge die Anzahl der mitgeführten gültigen Ziffern: 12300. 1.23 0.000123 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| + 0. 0000001 | Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| + 0. 0000001 | + 0. 0000000000000|01 | Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| + 0. 0000001 | + 0. 0000000000000|01 | + 0. 0000000000000|00000|1 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen }| { z 1. 0000000000000|00000| + 0. 0000001 | + 0. 0000000000000|01 | + 0. 0000000000000|00000|1 = 10−Mantissenlänge Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| + 0. 0000000000000|00000|1 = 10−Mantissenlänge Wir testen (1 + 10−s ) − 1 =? Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Mit welcher Mantissenlänge rechnet mein Taschenrechner? Wir testen, wann (1 + ε) = 1 mit 1 ε > 0. Mantissenlänge−1 Stellen z }| { 1. 0000000000000|00000| + 0. 0000000000000|00000|1 = 10−Mantissenlänge Wir testen (1 + 10−s ) − 1 =? Der Taschenrechner hat 10 angezeigte Stellen, aber 11 Mantissenstellen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Es gelten nicht: Assoziativgesetz und Distributivgesetz (ε + 1) − 1 6= ε + (1 − 1) Kommt daher das schlechte Ergebnis des Beispiels? Durch notwendige Rundung werden Fehler gemacht. Wie wirken sich diese Fehler auf ein Berechnungsergebnis aus? Betrachten wir die Berechnung eines Funktionswertes y einer Funktion f mit y = f (d), f ∈ C 1 (Rn , R), d ∈ Rn . Wir wollen die Abhängigkeit des relativen Fehlers von y vom relativen Fehler von d untersuchen. Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Wir betrachten für festes d und einen festen Fehlervektor 4d die skalare Funktion F (s) := f (d + s4d). Für F gilt der Mittelwertsatz und daher F (1) − F (0) = f (d + 4d) − f (d) = F 0 (θ)(1 − 0). F 0 (θ) = f 0 (d + θ 4 d) = ∂f (d+θ4d) ∂d1 ... ∂f (d+θ4d) ∂dn 4d1 .. . . 4dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Wir betrachten für festes d und einen festen Fehlervektor 4d die skalare Funktion F (s) := f (d + s4d). Für F gilt der Mittelwertsatz und daher F (1) − F (0) = f (d + 4d) − f (d) = F 0 (θ)(1 − 0). F 0 (θ) = f 0 (d + θ 4 d) = ∂f (d+θ4d) ∂d1 ... ∂f (d+θ4d) ∂dn 4d1 .. . . 4dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Wir betrachten für festes d und einen festen Fehlervektor 4d die skalare Funktion F (s) := f (d + s4d). Für F gilt der Mittelwertsatz und daher F (1) − F (0) = f (d + 4d) − f (d) = F 0 (θ)(1 − 0). F 0 (θ) = f 0 (d + θ 4 d) = ∂f (d+θ4d) ∂d1 ... ∂f (d+θ4d) ∂dn 4d1 .. . . 4dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen Wir betrachten für festes d und einen festen Fehlervektor 4d die skalare Funktion F (s) := f (d + s4d). Für F gilt der Mittelwertsatz und daher F (1) − F (0) = f (d + 4d) − f (d) = F 0 (θ)(1 − 0). F 0 (θ) = f 0 (d + θ 4 d) = ∂f (d+θ4d) ∂d1 ... ∂f (d+θ4d) ∂dn 4d1 .. . . 4dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = ∂f ∂d1 ... ∂f ∂dn 4d 1 .. . 4dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = ∂f ∂d1 ... ∂f ∂dn 4d 1 .. . 4dn = n X i=1 ∂f 4 di ∂di Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) 4d1 .. . = ∂f ∂d1 ... ∂f ∂dn 4dn = n X i=1 ∂f 4 di = ∂di n X i=1 di ∂f 4di ∂di di Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = ∂f ∂d1 ... ∂f ∂dn 4d1 .. . 4dn = n n X X ∂f ∂f 4di 4 di = di ∂di ∂di di i=1 i=1 Wegen y = f (d) ist für y 6= 0 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = ∂f ∂d1 ... ∂f ∂dn 4d1 .. . 4dn = n n X X ∂f ∂f 4di 4 di = di ∂di ∂di di i=1 i=1 Wegen y = f (d) ist für y 6= 0 n X di ∂f 4di 4y = y f (d) ∂di di i=1 Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = ∂f ∂d1 ... ∂f ∂dn 4d1 .. . 4dn = n n X X ∂f 4di ∂f 4 di = di ∂di ∂di di i=1 i=1 Wegen y = f (d) ist für y 6= 0 n X 4y di ∂f 4di d1 ∂f = = f (d) ∂d1 y f (d) ∂di di i=1 4d1 ... dn ∂f f (d) ∂dn d1 .. . 4dn dn Wenn ein Computer alles falsch macht kann es auch am Zahlenaufbau liegen 4 y = f (d + 4d) − f (d) = f 0 (d + θ 4 d) = n n X X ∂f 4di ∂f 4 di = di ∂di ∂di di i=1 i=1 Wegen y = f (d) ist für y 6= 0 4y = y n X i=1 4d1 di ∂f 4di = f (d) ∂di di | 4 y| d1 ∂f 6 f (d) ∂d1 |y| | ... {z d1 ∂f f (d) ∂d1 ... dn ∂f f (d) ∂dn d1 .. . 4dn dn 4d1 d1 dn ∂f .. . f (d) ∂dn } 4dn :=K - relative Kondition dn Wenn ein Computer alles falsch macht Norm Die Norm k.k ist eine Funktion Rn → R mit den Eigenschaften 1. kv k ≥ 0, kv k = 0 ⇔ v = 0. 2. kλv k = |λ|kv k 3. kv + wk ≤ kv k + kwk (Dreiecksungleichung) Sind y und v (Spalten)Vektoren und A eine Matrix; falls dann für y = Av gilt kyk ≤ kAkkv k, dann heisst k.k passend zu k.k. Die Unendlichnorm kv k∞ := max |vi | und die i Zeilensummennorm kAk∞ := max i n P j=1 |aij | passen zueinander. Wenn ein Computer alles falsch macht Norm Die Norm k.k ist eine Funktion Rn → R mit den Eigenschaften 1. kv k ≥ 0, kv k = 0 ⇔ v = 0. 2. kλv k = |λ|kv k 3. kv + wk ≤ kv k + kwk (Dreiecksungleichung) Sind y und v (Spalten)Vektoren und A eine Matrix; falls dann für y = Av gilt kyk ≤ kAkkv k, dann heisst k.k passend zu k.k. Die Unendlichnorm kv k∞ := max |vi | und die i Zeilensummennorm kAk∞ := max i n P j=1 |aij | passen zueinander. Wenn ein Computer alles falsch macht Norm Die Norm k.k ist eine Funktion Rn → R mit den Eigenschaften 1. kv k ≥ 0, kv k = 0 ⇔ v = 0. 2. kλv k = |λ|kv k 3. kv + wk ≤ kv k + kwk (Dreiecksungleichung) Sind y und v (Spalten)Vektoren und A eine Matrix; falls dann für y = Av gilt kyk ≤ kAkkv k, dann heisst k.k passend zu k.k. Die Unendlichnorm kv k∞ := max |vi | und die i Zeilensummennorm kAk∞ := max i n P j=1 |aij | passen zueinander. Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Wie ist die Kondition für die Grundrechenarten? Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Wie ist die Kondition für die Grundrechenarten? n X di ∂f K = f (d) ∂d i=1 i Wenn ein Computer alles falsch macht Kondition der Grundrechenarten n X di ∂f K = f (d) ∂d i=1 Addition: f (d) := d1 + d2 , d1 , d2 > 0, i Wenn ein Computer alles falsch macht Kondition der Grundrechenarten n X di ∂f K = f (d) ∂d i=1 Addition: f (d) := d1 + d2 , d1 , d2 > 0, i ∂f ∂di =1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten n X di ∂f K = f (d) ∂d i=1 Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 = 1. d1 , d2 > 0, i ∂f ∂di =1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 d1 , d2 > 0, = 1. Multiplikation: f (d) := d1 ∗ d2 , d1 , d2 > 0 ∂f ∂di =1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 d1 , d2 > 0, ∂f ∂di =1 = 1. ∂f Multiplikation: f (d) := d1 ∗ d2 , d1 , d2 > 0 , ∂d = d2 , 1 ∂f ∂d2 = d1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 d1 , d2 > 0, ∂f ∂di =1 = 1. ∂f Multiplikation: f (d) := d1 ∗ d2 , d1 , d2 > 0 , ∂d = d2 , 1 K = d1 d1 ∗d2 ∗ d2 + d2 d1 ∗d2 ∗ d1 = 2. ∂f ∂d2 = d1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 ∂f ∂di d1 , d2 > 0, =1 = 1. ∂f = d2 , Multiplikation: f (d) := d1 ∗ d2 , d1 , d2 > 0 , ∂d 1 K = d1 d1 ∗d2 ∗ d2 + Division: f (d) := K = d1 d1 d2 ∗ 1 d2 + d2 d1 d2 d2 d1 ∗d2 d1 d2 , ∗ d1 d22 ∂f ∂d2 = d1 ∗ d1 = 2. d1 , d2 > 0, = 2. ∂f ∂d1 = 1 ∂f d2 , ∂d2 = − dd12 2 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Addition: f (d) := d1 + d2 , K = d1 d1 +d2 + d2 d1 +d2 ∂f ∂di d1 , d2 > 0, =1 = 1. ∂f Multiplikation: f (d) := d1 ∗ d2 , d1 , d2 > 0 , ∂d = d2 , 1 K = d1 d1 ∗d2 ∗ d2 + Division: f (d) := K = d1 d1 d2 ∗ 1 d2 + d2 d1 d2 d2 d1 ∗d2 d1 d2 , ∗ d1 d22 d1 d1 −d2 + d2 d1 −d2 = = d1 ∗ d1 = 2. d1 , d2 > 0, ∂f ∂d1 = 1 ∂f d2 , ∂d2 = 2. Subtraktion: f (d) := d1 − d2 , K = ∂f ∂d2 d1 +d2 d1 −d2 d1 ≥ d2 ≥ 0 = − dd12 2 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Subtraktion: f (d) := d1 − d2 , K = d1 d1 −d2 + d2 d1 −d2 = d1 +d2 d1 −d2 d1 ≥ d2 ≥ 0 → ∞ für d2 → d1 Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Subtraktion: f (d) := d1 − d2 , K = d1 d1 −d2 + d2 d1 −d2 = d1 +d2 d1 −d2 d1 ≥ d2 ≥ 0 → ∞ für d2 → d1 Dieser Effekt wird Auslöschung genannt, weil zwei etwa gleich große Gleikommazahlen viele gleiche Ziffern nach dem Komma haben, die sich bei der Differenzbildung auslöschen. Wenn ein Computer alles falsch macht Kondition der Grundrechenarten Subtraktion: f (d) := d1 − d2 , K = d1 d1 −d2 + d2 d1 −d2 = d1 +d2 d1 −d2 d1 ≥ d2 ≥ 0 → ∞ für d2 → d1 Dieser Effekt wird Auslöschung genannt, weil zwei etwa gleich große Gleikommazahlen viele gleiche Ziffern nach dem Komma haben, die sich bei der Differenzbildung auslöschen. Die Auslöschung ist hauptverantwortlich für ungenaue Rechnerergebnisse, aber sie ist manchmal schwer zu entdecken. Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 Fläche des n-Ecks: Ak = 4 · 2k tan w2k wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck A = πr 2 = π Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck A = πr 2 = π Fläche des n-Ecks = Anzahl der Dreiecke * Dreiecksfläche Anzahl der Dreiecke: nk = 4 · 2k , k = 0, 1, . . . w Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 Fläche des n-Ecks: Ak = 4 · 2k tan w2k wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 Fläche des n-Ecks: Ak = 4 · 2k tan w2k wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 Fläche des n-Ecks: Ak = 4 · 2k tan w2k wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π π-Berechnung durch ein den Einheitskreis umschließendes n-Eck Anzahl der Dreiecke: nk = 4 · 2k , Fläche eines Dreiecks: ak = g∗h 2 k = 0, 1, . . . = 2 tan 2 Fläche des n-Ecks: Ak = 4 · 2k tan w2k wk 2 r = tan w2k Wenn ein Computer alles falsch macht Berechnung von π Übergang von k zu k + 1 - von wk zu wk 2 Wenn ein Computer alles falsch macht Berechnung von π Übergang von k zu k + 1 - von wk zu Es gilt tan w2 = q 1−cos w 1+cos w und cos w2 = wk 2 q 1 2 (1 + cos w) Wenn ein Computer alles falsch macht Berechnung von π Übergang von k zu k + 1 - von wk zu Es gilt tan w 2 = q 1−cos w 1+cos w und cos w 2 = wk 2 q 1 2 (1 + cos w) Mit xk := cos wk haben wir die Iterationsvorschrift: Wenn ein Computer alles falsch macht Berechnung von π Übergang von k zu k + 1 - von wk zu Es gilt tan w2 = q 1−cos w 1+cos w und cos w2 = wk 2 q 1 2 (1 + cos w) Mit xk := cos wk haben wir die Iterationsvorschrift: q q k x0 = 0, xk = 12 (1 + xk−1 ), Ak = 4 · 2k 1−x 1+xk Wenn ein Computer alles falsch macht Berechnung von π Übergang von k zu k + 1 - von wk zu Es gilt tan w2 = q 1−cos w 1+cos w und cos w2 = wk 2 q 1 2 (1 + cos w) Mit xk := cos wk haben wir die Iterationsvorschrift: q q k x0 = 0, xk = 12 (1 + xk−1 ), Ak = 4 · 2k 1−x 1+xk Mit 10 stelliger Rechnung erhält man Wenn ein Computer alles falsch macht Berechnung von π k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 xk = cos wk 0.0 0.7071067812 0.9238795325 0.9807852803 0.9951847266 0.9987954563 0.9996988186 0.9999247019 0.9999811753 0.9999952937 0.9999988235 0.9999997057 0.9999999265 0.9999999815 0.9999999952 0.9999999987 0.9999999997 1.000000000 Ak 4.000000000 3.313708500 3.182597878 3.151724916 3.144118408 3.142223506 3.141750872 3.141630812 3.141601058 3.141631690 3.141528786 3.142462536 3.140860292 3.151525340 3.210595200 3.341693428 3.210595194 0.0 rel. Fehler 5.48E 1.31E 3.23E 8.04E 2.01E 5.04E 1.21E 2.68E 1.24E 2.03E 2.77E 2.33E 3.16E 2.20E 6.37E 2.20E − 02 − 02 − 03 − 04 − 04 − 05 − 05 − 06 − 05 − 05 − 04 − 04 − 03 − 02 − 02 − 02 Wenn ein Computer alles falsch macht Berechnung von π k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 xk = cos wk 0.0 0.7071067812 0.9238795325 0.9807852803 0.9951847266 0.9987954563 0.9996988186 0.9999247019 0.9999811753 0.9999952937 0.9999988235 0.9999997057 0.9999999265 0.9999999815 0.9999999952 0.9999999987 0.9999999997 1.000000000 Ak 4.000000000 3.313708500 3.182597878 3.151724916 3.144118408 3.142223506 3.141750872 3.141630812 3.141601058 3.141631690 3.141528786 3.142462536 3.140860292 3.151525340 3.210595200 3.341693428 3.210595194 0.0 rel. Fehler 5.48E 1.31E 3.23E 8.04E 2.01E 5.04E 1.21E 2.68E 1.24E 2.03E 2.77E 2.33E 3.16E 2.20E 6.37E 2.20E − 02 − 02 − 03 − 04 − 04 − 05 − 05 − 06 − 05 − 05 − 04 − 04 − 03 − 02 − 02 − 02 Wenn ein Computer alles falsch macht Berechnung von π Wo liegt das Problem? q x0 = 0, xk = 1 2 (1 + xk−1 ), Ak = 4 · 2k q 1−xk 1+xk Es ist zu sehen, dass xk → 1, daher findet bei der Berechnung Auslöschung statt. Wenn ein Computer alles falsch macht Berechnung von π Wo liegt das Problem? q x0 = 0, xk = 1 2 (1 + xk−1 ), Ak = 4 · 2k q 1−xk 1+xk Es ist zu sehen, dass xk → 1, daher findet bei der Berechnung Auslöschung statt. Wenn ein Computer alles falsch macht Berechnung von π Kann man das besser machen? Wenn ein Computer alles falsch macht Berechnung von π Kann man das besser machen? Wir finden tan w2 = √ tan w 1+tan2 w+1 Wenn ein Computer alles falsch macht Berechnung von π Kann man das besser machen? Wir finden tan w2 = √ tan w 1+tan2 w+1 Mit yk := tan w2k haben wir die Iterationsvorschrift y0 = 1, yk = yk−1 q 2 1+yk−1 +1 , Ak = 4 · 2k yk Wenn ein Computer alles falsch macht Berechnung von π Mit 10 stelliger Rechnung erhält man jetzt Wenn ein Computer alles falsch macht Berechnung von π k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yk 1.0 0.4142135624E 0.1989123674E 0.9849140338E 0.4912684977E 0.2454862211E 0.1227246238E 0.6136000157E 0.3067971201E 0.1533981991E 0.7669905445E 0.3834952159E 0.1917476009E 0.9587379959E 0.4793689970E 0.2396844984E 0.1198422492E 0.5992112460E +0 +0 −1 −1 −1 −1 −2 −2 −2 −3 −3 −3 −4 −4 −4 −4 −5 Ak 4.000000000 3.313708500 3.182597878 3.151724908 3.144118386 3.142223630 3.141750370 3.141632080 3.141602510 3.141595118 3.141593270 3.141592808 3.141592694 3.141592664 3.141592658 3.141592658 3.141592658 3.141592658 rel. Fehler 5.48E 1.31E 3.23E 8.04E 2.01E 5.02E 1.25E 3.14E 7.84E 1.96E 4.92E 1.29E 3.31E 1.40E 1.40E 1.40E 1.40E − 02 − 02 − 03 − 04 − 04 − 05 − 05 − 06 − 07 − 07 − 08 − 08 − 09 − 09 − 09 − 09 − 09 Wenn ein Computer alles falsch macht ist der, der davor sitzt, dafür verantwortlich NOCHMAL M URPHYS G ESETZ Betrachten Sie Computerergebnisse kritisch, denn: Wenn ein Computer alles falsch macht ist der, der davor sitzt, dafür verantwortlich NOCHMAL M URPHYS G ESETZ Betrachten Sie Computerergebnisse kritisch, denn: Ein Computerprogramm macht, was Du schreibst, nicht was Du willst.