Kondition der Addition¶
Wir haben in der Stabilitätsanalyse gesehen, dass die Addition für kleine Störungen der Eingangsdaten große Fehler im Ergebnis bekommen kann.
Wir betrachten Störungen in der Größenordnung der Maschinengenauigkeit:
import numpy
eps = numpy.finfo(float).eps
Eine Funktion f beschreibt die Addition:
def f(a,b):
return a+b
Die Fehlerverstärkung an der Stelle a berechnen wir als:
def verstaerkung(f,a,b):
fexakt = f(a,b)
fgestoert = f(a+eps,b)
return abs(fgestoert - fexakt) / fexakt * abs(a) / eps
und sehen, dass für bestimmte Wahlen von a und b (b ≈ -a) die Fehlerverstärkung sehr groß wird:
print verstaerkung(f,1,2)
print verstaerkung(f,1,-2)
print verstaerkung(f,1,-1+eps)