Wenn ein Computer alles falsch macht

Werbung
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.
Herunterladen