Beim Ausführen von Rechnungen gibt es verschiedene Fehlerquellen:
- Daten- und Eingabefehler (Kondition)
- Fehler im Algorithmus (Stabilität)
- Fehler im Ergebnis
Nun stellt sich die Frage: Wie lassen sich Fehler vermeiden, minimieren oder zumindest kontrollieren?
Kondition
Fehler in den Ausgangsdaten (z.B. durch Messfehler) lassen sich oft nicht verhindern. Wie stark diese anfänglichen Fehler auf das Endergebnis auswirken, beschreibt die Kondition eines Problems.
Die Kondition (oder Konditionierung) eines Problems ist im Grunde ein Gradmesser für die Empfindlichkeit. Sie gibt an, wie stark sich Fehler in den Eingabedaten auf das Endergebnis auswirken.
Funktion bekannt:
Unser Algorithmus ist hierbei die Funktion mit der korrekten Eingabe . Nun wollen wir wissen, was passiert, wenn wir statt dem exakten Wert einen leicht fehlerhaften Wert einsetzen.
Wenn die Funktion bekannt ist, kann die quantitative Beschreibung der Kondition mit Hilfe der Taylorreihen-Entwicklung erfolgen.
Unter der Annahme, dass der Fehler () winzig ist, wird das Quadrat davon extrem klein, sodass man es vernachlässigen kann.
In der Realität interessiert uns meist nur der relative Fehler. Nun stellen wir die Gleichung um (unter der Bedingung ):
Mit Hilfe der Dreiecksungleichung folgt damit die folgenden Abschätzungen:
, mit
Nun können wir unseren relativen Fehler der Ausgabe abschätzen, der durch unseren Verstärkungsfaktor (Konditionszahl) multipliziert mit dem relativen Fehler der Eingabe entsteht.
Da eine Funktion mit mehreren Variablen für jede einzelne Eingabe einen Verstärkungsfaktor hat, können wir wie folgt das Ganze zu einer einzigen Kennzahl zusammenfassen.
Relative Kondition:
Hierbei ist die relative Kondition der größte Verstärkungsfaktor
Absolute Kondition:
Hierbei ist die absolute Kondition die steilste Steigung aller Variablen
Konditionierungsarten
- Perfekt konditioniert ()
- Fehler wird 1:1 weitergegeben
- Gut konditioniert ()
- Fehler kaum verstärkt oder gedämpft
- Schlecht konditioniert ()
- Fehler wird stark verstärkt, somit Ergebnis unbrauchbar
- Inkorrektes Problem ()
- Problem besitzt keine eindeutige oder stetige Lösung