Gauß-Newton-Verfahren

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Racine carrée bleue.svg
Dieser Artikel wurde auf der Qualitätssicherungsseite des Portals Mathematik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Mathematik auf ein akzeptables Niveau zu bringen.

Bitte hilf mit, die Mängel dieses Artikels zu beseitigen, und beteilige dich bitte an der Diskussion! (Artikel eintragen)

Das Gauß-Newton-Verfahren (nach Carl Friedrich Gauß und Isaac Newton) ist ein numerisches Verfahren zur Lösung nichtlinearer Minimierungsprobleme, die durch Anwendung der Methode der kleinsten Quadrate auf nichtlineare Ausgleichsprobleme entstehen. Das Verfahren ist eine Erweiterung/Vereinfachung des Newton-Verfahrens, bei dem in jedem Schritt die zu minimierende Funktion durch eine quadratische Näherung ersetzt wird, deren Minimum explizit berechnet werden kann. Wegen der speziellen Struktur der zu minimierenden Funktion ("Summe von Fehlerquadraten") benötigt das Gauß-Newton-Verfahren im Gegensatz zum Newton-Verfahren jedoch nicht die zweite Ableitung der Funktion.

Iterationsprinzip[Bearbeiten | Quelltext bearbeiten]

Im Gegensatz zum Newton-Verfahren, welches versucht, sich durch die Minimierung einer Taylor-Approximation der eigentlichen Funktion in jedem Iterationsschritt einem Minimum zu nähern, versucht das Gauß-Newton-Verfahren das Residuum mittels der Methode der kleinsten Quadrate zu minimieren. Auf diese Weise überführt das Verfahren ein nicht-lineares Gleichungssystem in eine Folge linearer Ausgleichsprobleme.

Grundzüge des Verfahrens[Bearbeiten | Quelltext bearbeiten]

Im Folgenden wird angenommen, dass Daten mit folgenden Merkmalen vorliegen:

  • Die Tabelle der Messwerte hat Zeilen, es wurden also Messungen durchgeführt
  • Bei jeder Messung wurden Stellgrößen vorgegeben und das Ergebnis gemessen
  • Es gibt eine Modellfunktion , welche den Zusammenhang zwischen und beschreibt. Diese Funktion hat Parameter , von denen der Funktionswert im Allgemeinen nichtlinear abhängt. Diese Parameter sollen nun so berechnet werden, dass die Funktionswerte möglichst genau mit den gemessenen übereinstimmen.

Es ist dabei nicht notwendig, dass die Anzahl der Parameter gleich der Anzahl der Variablen ist. Sucht man z. B. die Koeffizienten eines kubischen Polynoms, so liegt nur ein je Datensatz vor, aber beim kubischen Polynom hat jede Potenz einen eigenen Koeffizienten , so dass (einschließlich des absoluten Gliedes) vier Koeffizienten zu bestimmen wären.

Im Allgemeinen ist die Zahl der Datensätze größer als die Zahl der Parameter, so dass man nicht genug Freiheitsgrade hat, um über die Wahl der Parameter die Funktionswerte exakt an die Messergebnisse bis anzupassen.

Wenn die Messungen als Tabelle vorliegen, können sie so dargestellt werden:

Der Ansatz, die Summe der Fehlerquadrate zu minimieren, führt zu dem Optimierungsproblem:

Algorithmus[Bearbeiten | Quelltext bearbeiten]

Zur Bestimmung der Parameter geht man nach diesem Schema vor:

Vorbereitung[Bearbeiten | Quelltext bearbeiten]

  • Gegeben ist die Funktion mit Variablen und gesuchten Parametern
  • Aufstellen der Residuumsfunktion und des Residuenvektors
mit
  • Berechnung der partiellen Ableitungen der Residuumsfunktion nach jedem Parameter ():
  • Aufbau der Matrizen für die Iteration:
Dabei ist die Jacobi-Matrix des Residuenvektors in Abhängigkeit vom Parametervektor .
Für den Aufbau der Matrizen ist Folgendes zu beachten:
    • Die Matrix und der Spaltenvektor haben Zeilen, also für jede Zeile der oben angegebenen Tabelle eine.
    • Der Spaltenvektor hat Zeilen, also für jeden Parameter eine
    • Die Spalten in der Matrix sind die partiellen Ableitungen nach den Parametern . Die Reihenfolge der Spalten in hängt mit der Reihenfolge der Parameter in zusammen. Steht in Zeile 1 von der Parameter , so muss in die erste Spalte die Ableitungen nach enthalten. Dementsprechend hat Spalten, also für jeden Parameter eine.
  • Die Anzahl der Variablen hat keinen Einfluss auf den Aufbau der Matrix und der beiden Vektoren , .
  • Zu Beginn der Iteration müssen Startwerte für die Parameter und eine Fehlerschranke , die größer Null sein muss, festgelegt werden.

Iteration[Bearbeiten | Quelltext bearbeiten]

  • Die Iteration wird mit folgender Matrixgleichung durchgeführt:
Dabei wird in jedem Schritt der Vektor , der die Parameter enthält, verbessert.
Die Matrix wird berechnet, indem man zunächst alle Werte in den Zeilen der Tabelle in die Funktion einsetzt. Das Ergebnis schreibt man untereinander in die Spalte 1 von . Danach setzt man alle Werte in den Zeilen der Tabelle in die Funktion ein und schreibt sie in Spalte 2 der Matrix usw.
Um den Vektor zu berechnen, setzt man alle Werte in den Zeilen der Tabelle in die Funktion und schreibt die Ergebnisse jeweils untereinander als Vektor auf.
Für die numerische Berechnung empfiehlt sich eine Aufspaltung der Berechnung, damit die Matrixinversion durch die Lösung eines linearen Gleichungssystems für den unbekannten Lösungsvektor ersetzt werden kann:
Die Vorteile liegen in einer schnelleren Berechnung bei höherer Genauigkeit.
  • Sobald berechnet wurde, müssen auch Matrizen neu berechnet werden, um den nächsten Iterationsschritt vorzubereiten. Um den Rechenaufwand zu verringern, kann auch mehrfach ohne Neuberechnung von iteriert werden. Dieses Vorgehen wird beim Newtonschen Verfahren häufig empfohlen, reduziert aber die Konvergenzgeschwindigkeit und sollte erst angewendet werden, wenn sich nur noch wenig ändert.
  • Die Iteration wird abgebrochen, falls , also bei den der Betrag der Änderung unterhalb der Fehlerschranke liegt.

Anmerkungen[Bearbeiten | Quelltext bearbeiten]

  • Die Anzahl der Zeilen in der Tabelle () muss stets größer als die Anzahl der Parameter sein. Falls die Anzahl der Parameter gleich ist, bestimmt das Verfahren die Parameter exakt (im Rahmen der Genauigkeit der Iteration), es ist also nicht nur die optimale Lösung im Sinne der Fehlerquadrate. Das System ist unterbestimmt, wenn die Anzahl der Parameter größer als ist.
  • Um eine konvergente Näherung zu erreichen, sollte man eine grobe Vorstellung über die Größenordnung der Parameter haben. Das Verfahren divergiert, wenn die Startwerte der Parameter ungünstig gewählt wurden.
  • Durch Einführung eines Schrittweiteparameters lässt sich ein Abstieg, d. h. die Verringerung der Fehlerquadratsumme erzwingen, indem die Funktion an der neuen Stelle für verschiedene ausgewertet wird (siehe auch Levenberg-Marquardt-Algorithmus).
  • Je näher die Fehlerschranke bei Null liegt, umso genauer wird die Lösung; allerdings mit der Nebenwirkung, dass sich die Zahl der Iterationen erhöht.

Unterschied zwischen Gauß-Newton-Verfahren und Newton-Verfahren[Bearbeiten | Quelltext bearbeiten]

Beim Newton-Verfahren werden die Jacobi- und die Hesse-Matrix benutzt, um das Minimum einer nichtlinearen-Funktion (in diesem Fall der Summe der Fehlerquadrate) iterativ zu bestimmen.

Im Gauß-Newton-Verfahren hingegen hat man immer eine Summe von Fehlerquadraten (zwischen Messwerten und Funktionswerten), die iterativ minimiert werden soll. Jede einzelne der Funktionen wird im Gauß-Newton-Schritt durch eine lineare Näherung ersetzt (Taylor-Reihe erster Ordnung). Die Summe der Fehlerquadrate ist damit quadratisch in den Parametern und kann explizit gelöst werden, ohne dass die exakte Hesse-Matrix der Summe der Fehlerquadrate benötigt würde (Voraussetzung für das Newton-Verfahren). Ist der Schritt berechnet, wird (wie beim Newton-Verfahren) der Schritt an der neuen Stelle wiederholt.

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Ralf Pfeifer: Effektive Messauswertung mit der Gauß'schen Fehlerquadratmethode, ISBN 3-89001-251-5

Weblinks[Bearbeiten | Quelltext bearbeiten]

  • www.ArsTechnica.de Excel-Berechnungsbeispiel für den Luft- und Rollwiderstand eines Fahrzeuges mit Ausrollversuchen