- Intervallarithmetik
-
Intervallarithmetik bezeichnet in der Mathematik eine Methodik zur automatisierten Fehlerabschätzung auf Basis abgeschlossener Intervalle. Dabei werden nicht genau bekannte reelle Größen x betrachtet, die aber durch zwei Zahlen a und b eingegrenzt werden können. Dabei kann x zwischen a und b liegen oder auch einen der beiden Werte annehmen. Dieser Bereich entspricht mathematisch gesehen dem Intervall [a,b]. Eine Funktion f, die von einem solchen unsicheren x abhängt, kann nicht genau ausgewertet werden. Es ist schließlich nicht bekannt, welcher Zahlenwert innerhalb von [a,b] für x eigentlich eingesetzt werden müsste. Stattdessen wird ein möglichst kleines Intervall [c,d] bestimmt, das gerade die möglichen Funktionswerte f(x) für alle enthält. Durch gezielte Abschätzung der Endpunkte c und d erhält man eine neue Funktion, die wiederum Intervalle auf Intervalle abbildet.
Dieses Konzept eignet sich unter anderem zur Behandlung von Rundungsfehlern direkt während der Berechnung und falls Unsicherheiten in der Kenntnis der exakten Werte physikalischer und technischer Parameter vorliegen. Letztere ergeben sich oft aus Messfehlern und Bauteil-Toleranzen. Außerdem kann Intervallarithmetik dabei helfen, verlässliche Lösungen von Gleichungen und Optimierungsproblemen zu erhalten.
Als Beispiel soll hier die Berechnung des Körpermasseindex (BMI von engl. Body Mass Index) betrachtet werden. Der BMI ist die Körpermasse in Kilogramm geteilt durch das Quadrat der Körpergröße in Metern. Zur Illustration soll die Gewichtsbestimmung (eigentlich Massebestimmung) mit Hilfe einer Badezimmerwaage erfolgen, bei der das Gewicht auf ein Kilogramm genau abgelesen werden kann. Es werden also niemals Zwischenwerte bestimmt – etwa 79,6 kg oder 80,3 kg – sondern auf ganze Zahlen gerundete Angaben. Dabei ist es natürlich sehr unwahrscheinlich, dass man wirklich exakt 80,0 kg wiegt, wenn dies angezeigt wird. Bei üblicher Rundung auf den nächstliegenden Gewichtswert liefert die Waage 80 kg für jedes Gewicht zwischen 79,5 kg und 80,5 kg. Den entsprechenden Bereich aller reellen Zahlen, die größer oder gleich 79,5 und gleichzeitig kleiner oder gleich 80,5 sind, kann einfach als Intervall [79.5,80.5] aufgeschrieben werden. Um Verwechslungen zu vermeiden setzt man meistens einen Punkt statt eines Kommas als Dezimaltrennzeichen.
Für einen Menschen, der 80 kg wiegt und 1,80 m groß ist, liegt der BMI bei ungefähr 24,7. Bei einem Gewicht von 79,5 kg und gleicher Körpergröße müsste aber nur ein Wert von 24,5 angenommen werden, wohingegen 80,5 kg schon fast 24,9 entsprechen. Der tatsächliche BMI liegt also in dem Bereich [24.5,24.9]. In diesem Fall kann der Fehler in der Praxis zwar noch vernachlässigt werden, jedoch ist das nicht bei allen Rechnungen der Fall. Beispielsweise schwankt das Gewicht auch im Laufe eines Tages, so dass der BMI hier durchaus zwischen 24 (noch normalgewichtig) und 25 (schon übergewichtig) variieren kann. Ohne detailiierte Rechnung können aber nicht immer von vornherein Aussagen darüber getroffen werden, ob ein Fehler letztendlich groß genug ist, um maßgeblichen Einfluss zu haben.
In der Intervallarithmetik wird der Bereich möglicher Ergebnisse ausdrücklich berechnet. Vereinfacht gesagt, rechnet man nicht mehr mit Zahlen, sondern mit Intervallen, die nicht genau bekannte Werte repräsentieren. Ähnlich wie ein Fehlerbalken um einen Messwert drückt ein Intervall das Ausmaß der Unsicherheit bezüglich der zu berechnenden Größe aus. Hierfür werden einfache Rechenoperationen, wie die Grundrechenarten oder trigonometrische Funktionen, für das Rechnen mit Intervallen neu definiert, um äußere Grenzen eines gesuchten Wertebereiches zu erhalten.
Inhaltsverzeichnis
Einführung
Das Hauptaugenmerk bei der Intervallarithmetik liegt darauf, auf möglichst einfache Art und Weise obere und untere Schranken für den Wertebereich einer Funktion in einer oder mehreren Variablen zu bestimmen. Dabei müssen diese Schranken nicht unbedingt dem Supremum bzw. Infimum entsprechen, da die genaue Berechnung dieser Werte oft zu schwierig ist. (Es lässt sich zeigen, dass diese Aufgabenstellung im allgemeinen NP-schwer ist.)
Üblicherweise beschränkt man sich auf die Behandlung abgeschlossener, reeller Intervalle, also Mengen der Form
- ,
wobei auch und zulässig sind. Dabei entsprechen und den meist halboffen geschriebenen Intervallen, die alle reellen Zahlen kleiner oder gleich b bzw. größer oder gleich a umfassen. Entsprechend bezeichnet das Intervall die gesamte reelle Achse.
Wie beim klassischen Rechnen mit Zahlen muss zunächst einmal definiert werden, wie die arithmetischen Operationen und elementaren Funktionen auf Intervalle anzuwenden sind. Komplexere Funktionen können dann aus diesen Grundelementen zusammengesetzt werden (Lit.: Kulisch, 1989).
Grundrechenarten
Zu Erläuterung wird nochmal auf das Beispiel vom Anfang zurückgegriffen. Bei der Bestimmung des Körpermasseindex spielt neben dem Gewicht auch die Körpergröße eine Rolle. Diese wird üblicherweise nur in ganzen Zentimetern gemessen werden: eine Angabe der Körpergröße von 1,80 Meter bedeutet also eigentlich eine Körpergröße irgendwo zwischen 1,795 m und 1,805 m. Diese Ungenauigkeit muss zusätzlich zu der Schwankungsbreite beim Gewicht, das zwischen 79,5 kg und 80,5 kg liegt, eingerechnet werden. Für den BMI muss nun wie gesagt die Körpermasse in Kilogramm durch das Quadrat der Körpergröße in Metern geteilt werden. Sowohl für 79,5 kg und 1,795 m als auch für 80,5 kg und 1,805 m ergibt sich dafür ungefähr 24,7. Es muss nun aber auch berücksichtigt werden, dass die fragliche Person möglicherweise nur 1,795 m groß ist bei einem Gewicht von 80,5 kg - oder auch 1,805 m bei 79,5 kg. Auch die Kombinationen aller möglichen Zwischenwerte müssen in die Betrachtung eingehen. Mit Hilfe der im Folgenden festgelegten Intervallarithmetik kann der intervallwertige BMI
tatsächlich ausgerechnet werden.
Eine Operation zwischen zwei Intervallen, wobei beispielsweise für Addition oder Multiplikation steht, muss die Bedingung
erfüllen. Für die vier Grundrechenarten ergibt sich daraus
falls zulässig ist für alle und .
Für praktische Anwendungen lässt sich dies noch weiter vereinfachen:
- Addition: [x1,x2] + [y1,y2] = [x1 + y1,x2 + y2]
- Subtraktion: [x1,x2] − [y1,y2] = [x1 − y2,x2 − y1]
- Multiplikation:
- Division: , wobei 1 / [y1,y2] = [1 / y2,1 / y1] falls .
Für die Division durch ein Intervall, das die Null enthält, definiert man zunächst einmal
- und .
Für y1 < 0 < y2 gilt , so dass man eigentlich setzten müsste. Dadurch verliert man allerdings die Lücke (1 / y1,1 / y2) und damit wertvolle Informationen. Üblicherweise rechnet man daher mit den Teilmengen und einzeln weiter.
Weil innerhalb einer Intervallrechnung auch mehrere solcher Aufspaltungen auftreten können, ist es manchmal sinnvoll, das Rechnen mit sogenannten Multi-Intervallen der Form zu systematisieren. Die entsprechende Multi-Intervall-Arithmetik pflegt dann eine disjunkte Menge von Intervallen und sorgt dann beispielsweise auch dafür, sich überschneidende Intervalle zu vereinigen (Lit.: Dreyer, 2005).
Da man eine Zahl als das Intervall [r,r] interpretieren kann, erhält man sofort eine Vorschrift zur Kombination von intervall- und reellwertigen Größen.
Mit Hilfe dieser Definitionen lässt sich bereits der Wertebereich einfacher Funktionen, wie bestimmen. Setzt man beispielsweise a = [1,2], b = [5,7] und x = [2,3], so ergibt sich
- .
Interpretiert man f(a,b,x) als Funktion einer Variablen x mit intervallwertigen Parametern a und b, dann lässt sich die Menge aller Nullstellen dieser Funktionenschar leicht bestimmen. Es gilt dann
- ,
die möglichen Nullstellen liegen also im Intervall [ − 7, − 2.5].
Wie im obigen Beispiel kann die Multiplikation von Intervallen oft auf die Multiplikation nur zweier Zahlen zurückgeführt werden. Es gilt nämlich
- , falls .
Die Multiplikation lässt sich hier als Flächenbestimmung eines Rechtecks mit variierenden Kantenlängen interpretieren. Das intervallwertige Ergebnis deckt dann alle Werte von der kleinst- bis zu größtmöglichen Fläche ab.
Entsprechendes gilt, wenn eines der beiden Intervalle ganz im nicht-positiven und das andere ganz im nicht-negativen Bereich der reellen Achse liegt. Generell muss bei der Multiplikation noch beachtet werden, dass das Ergebnis sofort auf gesetzt werden muss, falls unbestimmte Werte, wie auftreten. Dies tritt z. B. bei einer Division auf, bei der Zähler und Nenner beide Null enthalten.
Notation
Um intervallwertige Größen leichter in Formeln zu erkennen, zweckentfremdet man die eckigen Klammern zur „Markierung“.
Dementsprechend bezeichnet ein Intervall und die Menge aller reellen Intervalle wird als
abgekürzt. Für eine Box oder einen Vektor von Intervallen verwendet man zusätzlich fetten Schriftschnitt: .
Bei einer derart kompakten Notation ist zu beachten, dass [x] nicht mit einem sogenannten uneigentlichen Intervall [x1,x1] verwechselt wird, bei dem obere und untere Grenze übereinstimmen.
Elementare Funktionen
Um auch Funktionen mit Intervallmethoden behandeln zu können, deren Terme sich nicht aus den Grundrechenarten ergeben, muss man auch noch weitere elementare Funktionen für Intervalle neu definieren. Dabei nutzt man vorhandene Monotonieeigenschaften aus.
Für monotone Funktionen in einer Variablen lässt sich der Wertebereich ebenfalls leicht bestimmen. Ist monoton steigend oder fallend in einem Intervall [x1,x2], dann gilt für alle Werte mit die Ungleichung
- , bzw. .
Den Wertebereich des Intervalls erhält man durch Auswertung der Funktion an den Endpunkten y1 und y2:
- .
Daher lassen sich folgende Intervallisierungen elementarer Funktionen leicht definieren:
- Exponentialfunktion: , für a > 1,
- Logarithmus: , für positive Intervalle [x1,x2] und a > 1
- Ungerade Potenzen: , für ungerade .
Es ist außerdem noch wichtig, den Wertebereich für gerade Potenzen bestimmen zu können. Im Gegensatz zur üblichen Numerik ist es hier nicht sinnvoll, die Berechnung auf die Multiplikation zurückzuführen. Beispielsweise bewegt sich xn für innerhalb des Intervalles [0,1], wenn . Versucht man [ − 1,1]n aber durch Multiplikationen der Form zu bestimmen, so erhält man in jedem Fall als Ergebnis [ − 1,1].
Sinnvoller ist es hier, die Parabel xn als Zusammensetzung einer monoton fallenden (für x < 0) und einer monoton steigenden Funktion (für x > 0) zu betrachten. Es gilt also für gerade :
- , falls ,
- , falls x2 < 0,
- , sonst.
Allgemeiner kann man sagen, dass es für stückweise monotone Funktionen ausreicht, diese an den Endpunkten x1,x2 eines Intervalls [x1,x2], sowie an den in [x1,x2] enthaltenen sogenannten kritischen Punkten auszurechnen. Die kritischen Punkte entsprechen hierbei den Stellen, an denen sich die Monotonieeigenschaften ändern.
Dies lässt sich z. B. auf Sinus und Kosinus anwenden, die zusätzlich an Stellen bzw. für alle ausgewertet werden müssen. Hierbei spielen höchstens fünf Punkte eine Rolle, da man als Ergebnis sofort [ − 1,1] festlegen kann, wenn das Eingangsintervall mindestens eine ganze Periode enthält. Außerdem müssen Sinus und Kosinus lediglich an den Randpunken neu evaluiert werden, da die entsprechenden Werte an den kritischen Stellen – nämlich -1, 0 , +1 – vorab abgespeichert werden können.
Intervallerweiterungen allgemeiner Funktionen
Im Allgemeinen findet man für beliebige Funktionen keine derart einfache Beschreibung des Wertebereiches. Man kann diese aber oft auf Intervalle ausdehnen. Wenn eine Funktion ist, die einen reellwertigen Vektor auf eine reelle Zahl abbildet, dann nennt man eine Intervallerweiterung von f, wenn gilt
- .
Dies definiert die Intervallerweiterung nicht eindeutig. So sind beispielsweise sowohl als auch zulässige Erweiterungen der Exponentialfunktion. Da möglichst scharfe Erweiterungen gewünscht sind, also solche, die so genau wie möglich den gesuchten Wertebereich approximieren, wird man in diesem Fall eher [f] wählen, da sie sogar den exakten Bereich bestimmt.
Die natürliche Intervallerweiterung erhält man, indem man in der Funktionsvorschrift die Grundrechenarten und elementaren Funktionen durch ihre intervallwertigen Äquivalente ersetzt.
Die Taylor-Intervallerweiterung (vom Grad k ) einer k + 1 mal differenzierbaren Funktion f ist definiert durch
- ,
für ein ,
wobei das Differential i-ter Ordnung von f am Punkt und [r] eine Intervallerweiterung des Taylorrestgliedes
bezeichnet.
Da der Vektor ξ zwischen und mit liegt, lässt sich ξ ebenfalls durch abschätzen. Üblicherweise wählt man für den Mittelpunkt des Intervallvektors und die natürliche Intervallerweiterung zur Abschätzung des Restgliedes.
Den Spezialfall der Taylor-Intervallerweiterung vom Grad k = 0 bezeichnet man auch als Mittelwert-Intervallerweiterung. Für eine Intervallerweiterung der Jacobi-Matrix erhält man hier
- .
Eine nichtlineare Funktion kann so durch lineare Funktionen eingegrenzt werden.
Intervallverfahren
Die Methoden der klassischen Numerik können nicht direkt für die Intervallarithmetik umgesetzt werden, da hierbei Abhängigkeiten meist nicht berücksichtigt werden.
Gerundete Intervallarithmetik
Um effizient mit Intervallen rechnen zu können, muss eine konkrete Implementierung kompatibel zum Rechnen mit Gleitkommazahlen sein. Die oben definierten Operationen basieren auf exakter Arithmetik, die bei schnellen numerischen Lösungsverfahren nicht zur Verfügung steht. Der Wertebereich der Funktion f(x,y) = x + y für und wäre beispielsweise [0.16,0.88]. Führt man die gleiche Rechnung mit einstelliger Präzision durch, so würde das Ergebnis üblicherweise zu [0.2,0.9] gerundet. Da aber würde dieser Ansatz den Grundprinzipien der Intervallarithmetik widersprechen, da ein Teil des Wertebereiches von f([0.1,0.8],[0.06,0.08]) verloren geht. Stattdessen ist hier die nach außen gerundete Lösung [0.1,0.9] vorzuziehen.
Die Norm IEEE 754 definiert neben Standarddarstellungen binärer Gleitkommazahlen auch genaue Verfahren für die Durchführung von Rundungen. Demnach muss ein zu IEEE 754 konformes System dem Programmierer neben dem mathematischen Runden (zur nächsten Gleitkommazahl) noch weitere Rundungsmodi bereitstellen: immer aufrunden, immer abrunden und Rundung gegen 0 (Ergebnis betragsmäßig verkleinern).
Das benötigte nach außen Runden lässt sich also durch entsprechendes Umschalten der Rundungseinstellungen des Prozessors beim Berechnen von oberer und unterer Grenze bewerkstelligen. Alternativ kann dies durch Hinzuaddition eines geeigneten schmalen Intervalls [ε1,ε2] erreicht werden.
Abhängigkeitsproblem und Einhüllungseffekt
Das sogenannte Abhängigkeitsproblem ist ein Haupthindernis bei der Anwendung der Intervallarithmetik. Obwohl der Wertebereich der elementaren arithmetischen Operationen und Funktionen mit Intervallmethoden sehr genau bestimmt werden kann, gilt dies nicht mehr für zusammengesetzte Funktionen. Falls ein intervallwertiger Parameter mehrfach in einer Rechnung auftritt, wird jedes Auftreten unabhängig voneinander behandelt. Dies führt zu einer ungewollten Aufblähung der resultierenden Intervalle.
Zur Illustration sei eine Funktion f durch den Ausdruck f(x) = x2 + x gegeben. Der Wertebereich dieser Funktion über dem Intervall [ − 1,1] beträgt eigentlich [ − 1 / 4,2]. Um die natürliche Intervallerweiterung zu erhalten, rechnet man aber [ − 1,1]2 + [ − 1,1] = [0,1] + [ − 1,1] = [ − 1,2], was einen etwas größeren Bereich ergibt. In der Tat berechnet man eigentlich Infimum und Supremum der Funktion h(x,y) = x2 + y über . Hier würde man also besser eine alternative Formulierung für f verwenden, die die Variable x nur einmal verwendet. In diesem Fall kann man den Ausdruck f(x) = x2 + x einfach durch quadratische Ergänzung zu umformen.
Dann liefert die entsprechende Intervallrechnung
auch den richtigen Wertebereich.
Im Allgemeinen lässt sich zeigen, dass man tatsächlich den genauen Wertebereich erhält, wenn jede Variable nur einmal auftaucht. Allerdings lässt sich nicht jede Funktion geeignet auflösen.
Die durch das Abhängigkeitsproblem verursachte Überschätzung des Wertebereiches kann soweit gehen, dass das Resultat einen derart großen Bereich umfasst, der keine sinnvollen Schlüsse mehr zulässt.
Eine zusätzliche Vergrößerung des Wertebereichs ergibt sich aus dem Einhüllen von Bereichen, die nicht die Form eines Intervallvektors haben. Die Lösungsmenge des linearen Systems
- für
ist genau die Gerade zwischen den Punkten ( − 1, − 1) und (1,1). Intervallmethoden liefern hier aber im besten Fall das Quadrat , das die tatsächliche Lösung einhüllt (Einhüllungs- oder „Wrapping“-Effekt).
Lineare Intervallsysteme
Ein lineares Intervallsystem besteht aus einer intervallwertigen Matrix und einem Intervallvektor . Gesucht ist dann eine möglichst schmale Box , die alle Vektoren enthält, für die es ein Paar mit und gibt, das die Gleichung
erfüllt.
Für quadratische Systeme - also für n = m - lässt sich ein solcher Intervallvektor , der alle möglichen Lösungen enthält, sehr einfach mit dem Intervall-Gauß-Verfahren bestimmen. Hierfür ersetzt man die numerischen Operationen, die bei dem aus der linearen Algebra bekannten gaußschen Eliminationsverfahren auftauchen, durch ihre Intervallversionen. Da allerdings während der Abarbeitung dieser Methode die intervallwertigen Einträge von und mehrfach in die Rechnung eingehen, leidet dieser Ansatz sehr stark an dem Abhängigkeitsproblem. Folglich bietet sich der Intervall-Gauß nur für grobe erste Abschätzungen an, die zwar die gesamte Lösungsmenge enthalten, aber auch einen sehr großen Bereich außerhalb davon.
Eine grobe Lösung kann oft durch eine Intervallisierung des Gauß-Seidel-Verfahrens verbessert werden. Diese ist folgendermaßen motiviert: Die i-te Zeile der intervallwertigen linearen Gleichung
lässt sich nach der Variablen xi auflösen, falls die Division 1 / [aii] erlaubt ist. Es gilt demnach gleichzeitig
- und .
Man kann also nun [xj] durch
ersetzen, und so den Vektor elementweise verbessern. Da das Verfahren effizienter für diagonaldominante Matrizen ist, versucht man oft statt dem System die durch Multiplikation mit einer geeigneten reellen Matrix entstandene Matrixgleichung
zu lösen. Wählt man beispielsweise für die Mittelpunktsmatrix , so ist eine äußere Näherung der Einheitsmatrix.
Für die oben genannten Methoden gilt allerdings, dass sie nur dann gut funktionieren, wenn die Breite der vorkommenden Intervalle hinreichend klein ist. Für breitere Intervalle kann es sinnvoll sein, ein Intervall-lineares System auf eine endliche (wenn auch große) Anzahl reellwertiger linearer Systeme zurückzuführen. Sind nämlich alle Matrizen invertierbar, so ist es vollkommen ausreichend, alle möglichen Kombinationen an (oberen und unteren) Endpunkten der vorkommenden Intervalle zu betrachten. Die resultierenden Teilprobleme können dann mit herkömmlichen numerischen Methoden gelöst werden. Intervallarithmetik wird lediglich noch benutzt, um Rundungsfehler zu bestimmen.
Dieser Ansatz ist allerdings nur für Systeme kleinerer Dimension möglich, da bei einer vollbesetzten Matrix schon reelle Matrizen invertiert werden müssen, mit jeweils 2n Vektoren für die rechte Seite. Dieser Ansatz wurde von Jiří Rohn noch weitergeführt und verbessert [1].
Intervall-Newton Verfahren
Eine Intervallvariante des Newton-Verfahrens zur Bestimmung der Nullstellen in einem Intervallvektor lässt sich einfach aus der Mittelwert-Erweiterung ableiten (Lit.: Hansen, 1992). Für einen unbekannten Vektor gilt für ein festes , dass
- .
Für eine Nullstelle ist f(z) = 0, und somit muss
- .
erfüllt sein. Man erhält also . Eine äußere Abschätzung von kann hierbei durch eines der linearen Verfahren bestimmt werden.
In jedem Newton-Schritt wird nun ein grober Startwert durch ersetzt und so iterativ verbessert. Im Gegensatz zum klassischen Verfahren nähert sich diese Methode von außen den Nullstellen. Daher ist garantiert, dass das Ergebnis immer alle Nullstellen im Startwert enthält. Umgekehrt hat man bewiesen, dass f keine Nullstelle in hat, wenn der Newton-Schritt die leere Menge zurückliefert.
Das Verfahren konvergiert gegen eine Menge, die alle Nullstellen (innerhalb der Startregion) enthält. Durch in diesem Fall vorhandene Divisionen durch Null entstehen oft mehrere Intervallvektoren, die die Nullstellen voneinander trennen. Diese Trennung ist nicht immer vollständig, und kann dann durch Bisektion forciert werden.
Als Beispiel betrachte man die Funktion f(x) = x2 − 2, den Startwert [x] = [ − 2,2] und den Punkt y = 0. Man hat dann und der erste Newton-Schritt ist gegeben durch
- .
Es gilt also für eine Nullstelle . Weitere Newtonschritte werden dann jeweils auf und [0.5,2] getrennt angewendet. Diese konvergieren zu beliebig kleinen Intervallen um und .
Das Intervall-Newton-Verfahren lässt sich auch ohne weiteres bei dicken Funktionen anwenden, also Funktionen wie g(x) = x2 − [2,3], die bereits dann Intervalle zurückliefern, wenn man reelle Zahlen einsetzt. Die Lösung besteht dann aus mehreren Intervallen .
Bisektion und Überdeckungen
Die verschiedenen Intervallmethoden liefern nur äußerst konservative Abschätzungen eines jeweils gesuchten Bereiches, da Abhängigkeiten zwischen den intervallwertigen Größen nicht ausreichend berücksichtigt werden. Das Abhängigkeitsproblem spielt aber eine desto geringere Rolle, je dünner die Intervalle sind.
Überdeckt man einen Intervallvektor durch kleinere Boxen so dass dann gilt für den Wertebereich Für die oben genannten Intervallerweiterungen gilt dann . Da oft eine echte Obermenge der rechten Seite ist, erhält man somit meist eine verbesserte Abschätzung.
Eine solche Überdeckung kann zum einen durch Bisektion generiert werden, indem man besonders dicke Elemente [xi1,xi2] des Intervallvektors beispielsweise in der Mitte teilt und durch zwei Intervalle [xi1,(xi1 + xi2) / 2] und [(xi1 + xi2) / 2,xi2] ersetzt. Sollte das daraus folgende Resultat immer noch nicht geeignet sein, kann sukzessive weiter zerlegt werden. Hierbei gilt allerdings zu beachten, dass durch r geteilte Vektorelemente eine Überdeckung aus 2r Intervallvektoren entsteht, was den Rechenaufwand natürlich stark erhöht.
Bei sehr breiten Intervallen kann es sogar sinnvoll sein, alle Intervalle gleich in mehrere Teilintervalle mit (kleiner) konstanter Breite zu zerlegen („Mincing“). Damit spart man die Zwischenrechnung für die einzelnen Bisektionsschritte. Beide Herangehensweisen sind allerdings nur für Probleme niedriger Dimension geeignet.
Anwendung
Die Intervallarithmetik kommt auf verschiedenen Gebieten zum Einsatz, um Größen zu behandeln, für die keine genauen Zahlenwerte festgelegt werden können (Lit.: Jaulin et. al., 2001).
Rundungsfehleranalyse
Die Intervallarithmetik wird bei der Fehleranalyse angewendet, um Kontrolle über die bei jeder Berechnung auftretenden Rundungsfehler zu bekommen. Der Vorteil der Intervallarithmetik liegt darin, dass man nach jeder Operation ein Intervall erhält, welches das Ergebnis sicher einschließt. Aus dem Abstand der Intervallgrenzen kann man den aktuellen Berechnungsfehler direkt ablesen:
- Fehler = abs(a − b) für gegebenes Intervall [a,b].
Intervallanalyse bietet hierbei keinen Ersatz für die klassischen Methoden zur Fehlerreduktion, wie Pivotisierung, sondern ergänzt diese lediglich.
Toleranzanalyse
Bei der Simulation technischer und physikalischer Prozesse treten oft Parameter auf, denen keine exakten Zahlenwerte zugeordnet werden können. So unterliegt der Produktionsprozess technischer Bauteile gewissen Toleranzen, so bestimmte Parameter innerhalb bestimmter Intervalle schwanken können. Außerdem können viele Naturkonstanten nicht mit beliebiger Genauigkeit gemessen werden (Lit.: Dreyer, 2005).
Wird das Verhalten eines solchen toleranzbehafteten Systems beispielsweise durch eine Gleichung , für und Unbekannten , beschrieben, dann kann die Menge aller möglichen Lösungen
- ,
durch Intervallmethoden abgeschätzt werden. Diese stellen hier eine Alternative zur klassischen Fehlerrechnung dar. Im Gegensatz zu punktbasierten Methoden, wie der Monte-Carlo-Simulation, stellt die verwendete Methodik sicher, dass keine Teile des Lösungsgebietes übersehen werden. Allerdings entspricht das Ergebnis immer einer Worst Case-Analyse für gleichverteilte Fehler, andere Wahrscheinlichkeitsverteilungen sind nicht möglich.
Fuzzy-Arithmetik
Intervallarithmetik kann auch dazu verwendet werden, beliebige Zugehörigkeitsfunktionen für unscharfe Mengen wie sie in der Fuzzy-Logik benutzt werden anzunähern. Neben den strikten Aussagen und sind hier auch Zwischenwerte möglich, denen reelle Zahlen zugeordnet werden. Dabei entspricht μ = 1 der sicheren Zugehörigkeit und μ = 0 der Nichtzugehörigkeit. Eine Verteilungsfunktion ordnet jedem dieser Werte einen gewissen Schwankungsbereich zu, den man wieder als Intervall auffassen kann.
Für die Fuzzy-Arithmetik[2] werden nur endlich viele diskrete Zugehörigkeitsstufen betrachtet. Die Form einer solchen Verteilung für einen unscharfen Wert kann dann durch eine Reihe von Intervallen
angenähert. Dabei entspricht das Intervall [x(i)] genau dem Schwankungsbereich für die Stufe μi.
Die entsprechende Verteilung für eine Funktion bezüglich unscharfer Werte und den entsprechenden Sequenzen lässt sich dann durch die Intervallsequenz approximieren. Die Werte sind gegeben durch und können durch Intervallverfahren abgeschätzt werden. Dabei entspricht dem Ergebnis einer Intervallrechnung.
Geschichtliches
Intervallarithmetik ist keine völlig neue Erscheinung in der Mathematik und tauchte bereits mehrfach unter verschiedenen Namen im Laufe der Geschichte auf. So berechnete Archimedes bereits im 3. Jahrhundert v. Chr. obere und untere Schranken für die Kreiszahl Pi. Allerdings wurde das eigentliche Rechnen mit Intervallen nie so populär wie andere numerische Techniken, wurde aber nie völlig vergessen.
Regeln für das Rechnen mit Intervallen und anderen Teilmengen der reellen Zahlen finden sich schließlich in einer 1931 veröffentlichten Arbeit von Rosalind Cicely Young, einer Doktorandin an der Universität Cambridge. Arbeiten für eine Arithmetik von range numbers („Bereichszahlen“) in Hinblick auf eine Verbesserung und Zuverlässigkeit digitaler Systeme finden sich dann in einem 1951 veröffentlichten Lehrbuch zur linearen Algebra von Paul S. Dwyer (University of Michigan). Hier werden Intervalle tatsächlich dafür eingesetzt, die Rundungsfehler bei Gleitkommazahlen abzuschätzen.
Als Geburtsstunde der modernen Intervallarithmetik wird das Erscheinen des Buches Interval Analysis von Ramon E. Moore im Jahr 1966 (Lit.: Moore) angesehen. Die Idee dazu hatte er im Frühjahr 1958, und bereits ein knappes Jahr später veröffentlichte er einen Artikel über computerunterstützte Intervallarithmetik [3]. Sein Verdienst ist es, dass aus einem einfachen Prinzip eine allgemeingültige Methode zur automatisierten Fehleranalyse wurde, mit deren Hilfe nicht nur der Einfluss von Rundungen bestimmt werden konnte.
Unabhängig davon hatte Mieczyslaw Warmus zwar schon 1956 Formeln für das Rechnen mit Intervallen vorgeschlagen [4], bei Moore fanden sich aber neben Implementierungshinweisen auch erste nicht-triviale Anwendungen.
In den folgenden zwanzig Jahren leisten deutsche Forschergruppen um Götz Alefeld (Lit.: Alefeld und Herzberger) und Ulrich Kulisch (Lit.: Kulisch) an der Universität Karlsruhe und später auch an der Bergischen Universität Wuppertal Pionierarbeit. Beispielsweise erforschte Karl Nickel effizientere Implementierungen, während man verbesserte Eingrenzungsverfahren für die Lösungsmenge von Gleichungssystemen unter anderen Arnold Neumaier verdankt[5]. Auch Eldon R. Hansen beschäftigte sich zunächst in den 60ern mit intervallwertigen linearen Gleichungen und lieferte später dann entscheidende Beiträge zur globalen Optimierung (Lit.: Hansen). Auf diesem Gebiet wird versucht, mit Intervallen das Problem anzugehen, dass mit der klassischen Numerik oft nicht der größte (oder kleinste) Funktionswert bestimmt werden kann, sondern nur ein sogenanntes lokales Optimum an einer Stelle, in deren Umgebung keine besseren Werte angenommen werden. Hierfür übertrugen Ratschek und Rokne das Branch-and-Bound-Verfahren, das ursprünglich nur für ganzzahlige Werte definiert war, mit Hilfe von Intervallverfahren auf kontinuierliche Größen[6]. Im Jahr 1988 entwickelte Rudolf Lohner eine Fortran-basierte Software für sichere Lösungen für Anfangswertaufgaben bei gewöhnliche Differentialgleichungen. [7]
Seit den 90ern wird das Journal Reliable Computing (ursprünglich Interval Computations) herausgegeben, das sich der Zuverlässigkeit computerunterstützter Berechnungen widmet. Als leitender Redakteur hat R. Baker Kearfott neben seinen Arbeiten zur globalen Optimierung wesentlich zur Vereinheitlichung der Notation und Begrifflichkeiten der Intervallarithmetik beigetragen (Web: Kearfott).
In jüngerer Zeit sind insbesondere die Arbeiten zur Abschätzung des Urbildes parametrisierter Funktionen und zur robusten Kontrolle von der COPRIN-Arbeitsgruppe des INRIA im französischen Sophia Antipolis zu erwähnen (Web: INRIA).
Patente
Einer der wesentlichen Förderer der Intervallarithmetik, G. William Walster von Sun Microsystems, hat in den Jahren 2003/04 – teilweise zusammen mit Ramon E. Moore und Eldon R. Hansen – mehrere Patente im Bereich der Intervallarithmetik beim U.S. Patent and Trademark Office angemeldet [8]. Die Gültigkeit dieser Ansprüche ist jedoch in der Intervallarithmetik-Forschungsgemeinde stark umstritten, da sie möglicherweise lediglich den bisherigen Stand der Technik wiedergeben.
Implementierungen
Es gibt viele Softwarepakete, welche die Entwicklung numerischer Anwendungen unter Nutzung der Intervallarithmetik erlauben [9]. Diese sind meist in Form von Programmbibliotheken umgesetzt [10]. Es gibt allerdings auch C++- und Fortran-Übersetzer, welche Intervall-Datentypen und entsprechend geeignete Operationen als Spracherweiterung [11] besitzen, so dass Intervallarithmetik direkt unterstützt wird.
Seit 1967 entwickelte man zunächst an der Universität Karlsruhe XSC-Erweiterungen für wissenschaftliches Rechnen („Extensions for Scientific Computation“) für verschiedene Programmiersprachen, darunter C++, Fortran und Pascal [12]. Plattform war zunächst ein Zuse Z 23, für den ein neuer Intervall-Datentyp mit entsprechenden elementaren Operatoren zur Verfügung gestellt wurde.
1976 folgte mit Pascal-SC eine Pascal-Variante auf einem Zilog Z80, die es ermöglichte, schnell komplexe Routinen für automatisierte Ergebnisverifikation zu schaffen. Es folgte das Fortran 77-basierte ACRITH-XSC für die System/370-Architektur, das später auch von IBM ausgeliefert wird. Ab 1991 kann man mit Pascal-XSC dann Code für C-Compiler erzeugen, und ein Jahr später unterstützt die C++-Klassenbibliothek C-XSC bereits viele verschiedene Computersysteme. 1997 werden alle XSC-Varianten unter die General Public License gestellt und stehen so frei zu Verfügung. Anfang der 2000er-Jahre wurde C-XSC 2.0 unter Federführung der Arbeitsgruppe für wissenschaftliches Rechnen an der Bergischen Universität Wuppertal neugestaltet, um dem mittlerweile verabschiedeten C++-Standard besser entsprechen zu können.
Eine weitere C++-Klassenbibliothek ist das 1993 an der TU Hamburg-Harburg geschaffene Profil/BIAS („Programmer's Runtime Optimized Fast Interval Library, Basic Interval Arithmetic“), das die üblichen Intervalloperationen benutzerfreundlich zur Verfügung stellt. Dabei wurde besonderen Wert auf die effiziente Ausnutzung der Hardware, Portabilität und Unabhängigkeit von einer speziellen Intervalldarstellung gelegt.
Die Boost-Sammlung von C++-Bibliotheken enthält ebenfalls eine Template-Klasse für Intervalle. Deren Autoren bemühen sich derzeit um eine Aufnahme der Intervallarithmetik in den C++-Sprachstandard [13].
Heute können außerdem die gängigen Computeralgebrasysteme, wie Mathematica, Maple und MuPAD, mit Intervallen umgehen. Außerdem gibt es für Matlab die Erweiterung Intlab, die auf BLAS-Routinen aufbaut, sowie die Toolbox b4m, die ein Profil/BIAS-Interface zur Verfügung stellt[14].
Siehe auch
- Automatisches Differenzieren (Automatic differentiation in der englischsprachigen Wikipedia)
- Mehrgitterverfahren
- Monte-Carlo-Simulation
IEEE-Standard P1788
Ein IEEE-Standard für Intervallarithmetik [15] wird zur Zeit entwickelt.
Referenzen
Literatur
- Götz Alefeld und Jürgen Herzberger: Einführung in die Intervallrechnung. Bibliographisches Institut, Reihe Informatik, Band 12, B.I.-Wissenschaftsverlag, Mannheim - Wien - Zürich, ISBN 3-411-01466-0
- Alexander Dreyer: Interval Analysis of Analog Circuits with Component Tolerances. Doktorarbeit, Shaker Verlag, Aachen, 2003, ISBN 3-8322-4555-3.
- Eldon Hansen und G. William Walster: Global Optimization using Interval Analysis, Second Edition, Revised and Expanded, Marcel Dekker, New York, 2004, ISBN 0-8247-4059-9.
- L. Jaulin, M. Kieffer, O. Didrit, and É.Walter: Applied Interval Analysis: With examples in parameter estimation robust control and robotics. Springer, London, 2001, ISBN 1-85233-219-0.
- Ulrich Kulisch: Wissenschaftliches Rechnen mit Ergebnisverifikation. Eine Einführung, Vieweg-Verlag, Wiesbaden 1989, ISBN 3-528-08943-1.
- R. E. Moore: Interval Analysis. Prentice-Hall, Englewood Cliff, NJ, 1966, ISBN 0-13-476853-1.
Weblinks
- Brian Hayes, 'A Lucid Interval', gute Einführung (pdf) (83 kB)
- Einführender Film (mpeg) des COPRIN Teams des INRIA, Sophia Antipolis
- Bibliographie von R. Baker Kearfott, University of Louisiana, Lafayette
- Bibliographie von Arnold Neumaier, Universität Wien
Quellen
- ↑ Veröffentlichungen von Jiří Rohn
- ↑ Fuzzy-Methoden, Zusammenstellung von Michael Hanss, Universität Stuttgart
- ↑ Abhandlung über frühe Artikel von R. E. Moore
- ↑ Frühe Arbeiten von M. Warmus
- ↑ Veröffentlichungen von Arnold Neumaier
- ↑ Veröffentlichungen von Jon Rokne
- ↑ Einschließungen gewöhnlicher Differentialgleichungen nach Rudolf Lohner
- ↑ Patentschriften unter Anwendung von Intervallarithmetik beim U.S. Patent and Trademark Office
- ↑ Software für Intervallrechnungen, zusammengestellt von Vladik Kreinovich, University of Texas, El Paso
- ↑ Beispiel einer Intervallarithmetik-Klasse in C++ von Sun Microsystems
- ↑ C++- und Fortran-Compiler mit Intervallunterstützung von Sun Microsystems
- ↑ Geschichte der XSC-Erweiterungen
- ↑ Vorschlag für eine Erweiterung der C++-Standards um Intervalle
- ↑ INTerval LABoratory und b4m
- ↑ IEEE Interval Standard Working Group - P1788
Kategorien:- Arithmetik
- Computerarithmetik
- Numerische Mathematik
Wikimedia Foundation.