Auslöschung

Da Zahlen $a, b \in \mathbb{R}$ im Rechner als Gleitpunktzahlen mit endlicher Genauigkeit dargestellt werden, ergeben sich Probleme wie die nachfolgend beschriebene unvermeidbare Auslöschung. Betrachten wir hierzu beispielsweise die Subtraktion von

\[ a = 0.123467* \quad \text{und} \quad b = 0.123456* \]

bei einer Maschinengenauigkeit von $\text{eps} = 10^{-7}$ (das $*$-Symbol symbolisiert hierbei eine Störung an der 7. Stelle). Für die Differenz erhält man $a - b = 0.000011*$. Das Problem besteht nun darin, dass in der Gleitpunktdarstellung von $a - b$ die führenden vier Nullen eliminiert werden, also $a - b = 0.11*000 \cdot 10^{-4}$. Die Störung $*$ an der siebten Dezimalstelle bei $a$ und $b$ hat sich durch die Subtraktion somit auf eine Störung an der dritten Dezimalstelle im Ergebnis $a - b$ fortgepflanzt, was $\kappa_{\text{rel}} \approx 10^4$ entspricht!

Man sollte daher im Rechner Subtraktionen annähernd gleicher Zahlen vermeiden!

Applet

Ein Klassiker für die Subtraktion zweier annähernd gleicher Zahlen ist durch die Berechnung des Differenzenquotienten,

\[ f’(x_0) \approx \frac{f(x_0 +\delta x) - f(x_0)}{\delta x}, \]

bei der numerischen Differentation einer differenzierbaren Funktion $f$ gegeben. Bei einer Maschinengenauigkeit von $\text{eps} = 10^{-16}$ ist die numerische Differentiation im Bereich $\delta x \approx 10^{-8}$ brauchbar. Für zu große $\delta x$ ist die Approximation des Grenzwertes $f’(x_0)$ nicht hinreichend gut. Entgegen der Annahme für $\delta x \to 0$ eine immer besser werdende Approximation von $f’(x_0)$ zu erhalten, führt der Auslöschungseffekt für $\delta x \to \text{eps}$ dazu, dass die Approximation beliebig schlecht wird.

Die rote Gerade wird mittels numerischer Differentiation berechnet, wohingegen die grüne Gerade per symbolischen Ableiten die exakte Tangente an $f$ repräsentiert.