2. Zahlendarstellung

Einstieg

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 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:
 xe=rand(n,1);
 A= ... siehe unten   
 b=A*xe;
 x=A\b;
 e(i) = norm(x-xe);
Für die Matrix A sollen die 3 Varianten 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 ?