Ausbauend und ergänzend zur Vorlesung Numerik wollen wir uns in diesem Kapitel etwas mit der Zahlendarstellung
im Rechner und ihre Auswirkungen befassen.
Grundlegende Stichpunkte dazu
Gleitpunktdarstellung
single precision
double precision
Betrachten Sie die Darstellung und Konvertierung von Zahlen mittels der Matlabfunktionen single(), double()
und zugehörige Ausgaben von whos
x=1.0
whos
y=single(x)
whos
z=x+y
whos
Dazu erste Matlab-Versuche zu Rundungsfehlern (Ausprobieren und Verstehen was passiert)
format long
1.0-1.0
1.0 + 1.0e-15 - 1.0
-1.0 + 1.0 + 1.0e-15
und Grenzen in der Zahlendarstellung
factorial(170)
factorial(171)
Die arithmetische Reihe
Nun wollen wir die arithmetische Reihe 1 + 1/2 + 1/3 + 1/4 + .... betrachten. Bekanntlich divergiert diese Reihe.
Gilt das auch in Computerarithmetik ?
Um den Effekt zu testen wollen wir das n bestimmen für das bei der Berechnung der Reihe über
s_0 = 0
s_n = s_{n-1} + 1/n
das erste mal der Effekt nicht mehr gilt s_{n+1} > s_n.
Entwerfen Sie dazu ein Matlabscript mit dem Namen reihe.m und ermitteln Sie n und s_n. Hinweis: bei double precision (Standard) passiert der Effekt auch, dauert aber ewig. Deshalb wollen wir diesen
Versuch mittels der Funktion single() in single precision Arithmetik ausführen.
Das Maschinenepsilon
Als das sogenannte Maschinen-Epsion betrachtet man die kleinste Zahl eps für die gerade noch gilt:
1 + eps > 1
Entwerfen Sie dazu Matlabfunktion geteps() und geteps_single(),
welche diese Zahl für double- und single precision ermittelt.
Fehlerfortpflanzung
Wir wollen die Fehlerfortpflanzung bei linearen Gleichungssystemen betrachten.
Dazu soll eine zufällige exakte Lösung zu verschiedenen Dimensionen (n=3,5,8,10,20,50,100 ...) erzeugt werden,
und durch Multiplikation mit der (passenden) Matrix A die rechte Seite b des LGS erzeugt werden.
Anschliessen wird das LGS gelöst und die Fehlernorm berechnet.
Für ein festes n also in etwas so:
verwendet werden.
Welche Eigenschaften haben diese Matrizen ?
Plotten Sie die Fehler in Abhängigkeit von n.
Zusatz:
Stören Sie die rechte Seite b durch Addition eines zufälligen Fehlers in der Größenordnung von 0.01.
Welche Auswirkungen hat dies jeweils bei den 3 Varianten für A ?