Gauß-Newton-Verfahren

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. Wie beim Newton-Verfahren wird die Funktion in jedem Schritt durch eine lineare Näherung ersetzt. Das dabei entstehende lineare Ausgleichsproblem kann mit Standardverfahren gelöst werden.
 
 

Grundzüge des Verfahrens

Im folgenden wird angenommen, dass Daten mit folgenden Merkmalen vorliegen:
  • Die Tabelle der Messwerte hat \(\displaystyle k\) Zeilen, es wurden also \(\displaystyle k\) Messungen durchgeführt
  • Bei jeder Messung wurden \(\displaystyle n\) Stellgrößen \(\displaystyle \, x_1, \dots , x_n \) vorgegeben und das Ergebnis \(\displaystyle y\) gemessen
  • Es gibt eine Modellfunktion \(\displaystyle \, f(x_1, \dots , x_n) = y \) , welche den Zusammenhang zwischen \(\displaystyle \, x_1, \dots , x_n \) und \(\displaystyle y\) beschreibt. Diese Funktion hat \(\displaystyle p\) verschiedene Parameter \(\displaystyle \, a_1, \dots , a_p \), die nun so berechnet werden sollen, dass mit der Funktion y möglichst genau aus den \(\displaystyle \, x_1, \dots , x_n \) berechnet werden kann. Das besondere an der Funktion ist, dass sie nichtlinear in den Parametern ist.
Es ist dabei nicht notwendig, dass die Anzahl \(\displaystyle p\) der Parameter \(\displaystyle a\) gleich der Anzahl der Variablen \(\displaystyle x\) ist. Sucht man z.B. die Koeffizienten eines kubischen Polynoms, so liegt nur ein \(\displaystyle x\) je Datensatz vor, aber beim kubischen Polynom hat jede Potenz einen eigenen Koeffizienten \(\displaystyle a\), so dass (einschließlich des absoluten Gliedes) vier Koeffizienten zu bestimmen wären.
Wenn die Messungen als Tabelle vorliegen, können sie so dargestellt werden:
\(\displaystyle \mathbf{x_1} \) \(\displaystyle \mathbf{x_2} \) \(\displaystyle \cdots \) \(\displaystyle \mathbf{x_n} \) \(\displaystyle \mathbf{y} \)
\(\displaystyle \, x_{1,1} \) \(\displaystyle \, x_{1,2} \) \(\displaystyle \cdots \) \(\displaystyle \, x_{1,n} \) \(\displaystyle \, y_1 \)
\(\displaystyle \, x_{2,1} \) \(\displaystyle \, x_{2,2} \) \(\displaystyle \cdots \) \(\displaystyle \, x_{2,n} \) \(\displaystyle \, y_2 \)
\(\displaystyle \vdots \) \(\displaystyle \vdots \) \(\displaystyle \cdots \) \(\displaystyle \vdots \) \(\displaystyle \vdots \)
\(\displaystyle \, x_{k,1} \) \(\displaystyle \, x_{k,2} \) \(\displaystyle \cdots \) \(\displaystyle \, x_{k,n} \) \(\displaystyle \, y_k \)
Der Ansatz, die Summe der Fehlerquadrate zu minimieren, liefert:
\(\displaystyle \sum\limits_{i=1}^k (f(x_{i,1}, \dots , x_{i,n}) - y_i)^2 \rightarrow min! \)

Algorithmus

Zur Bestimmung der Parameter \(\displaystyle \, a_1, a_2, \dots , a_p \) geht man nach diesem Schema vor:

Vorbereitung

  • Gegeben ist die Funktion \(\displaystyle \, f(x_1, \dots , x_n) = y \) mit n Variablen \(\displaystyle x_1, \dots , x_n \, \) und p gesuchten Parametern \(\displaystyle a_1, \dots , a_p \, \)
  • Aufstellen der Residuumsfunktion \(\displaystyle \, r \) und des Residuenvektors \(\displaystyle \mathbf{r}\)
\(\displaystyle \, r = f(x_1, \dots , x_n) - y\)
\(\displaystyle r_i = f(x_{i,1}, \dots , x_{i,n}) - y_i, i=1\, \, k \, \)
  • Berechnung der partiellen Ableitungen der Residuumsfunktion \(\displaystyle \, r \) nach jedem Parameter \(\displaystyle ( a_1, \dots , a_p \, )\):
\(\displaystyle r'_1 = \dfrac{\partial r}{\partial a_1}; \quad r'_2 = \dfrac{\partial r}{\partial a_2}; \quad \dots ; \quad r'_p = \dfrac{\partial r}{\partial a_p} \)
\(\displaystyle \, r'_{i,j} = r'_j(x_{i,1}, \dots , x_{i,n}) \)
  • Aufbau der Matrizen für die Iteration:
\(\displaystyle \mathbf{D} = \begin{pmatrix} r'_{1,1} & r'_{1,2} & \cdots & r'_{1,p} \\ r'_{2,1} & r'_{2,2} & \cdots & r'_{2,p} \\ \vdots & \vdots & \vdots & \vdots \\ r'_{k,1} & r'_{k,2} & \cdots & r'_{k,p} \end{pmatrix}\); \(\displaystyle \mathbf{r} = \begin{pmatrix} r_1 \\ r_2 \\ \vdots \\ r_k \end{pmatrix}\); \(\displaystyle \mathbf{a} = \begin{pmatrix} a_1 \\ a_2 \\ \vdots \\ a_p \end{pmatrix} \)
Für den Aufbau der Matrizen ist folgendes zu beachten:
  • Die Matrix \(\displaystyle \bm{D}\) und der Spaltenvektor \(\displaystyle \bm{r}\) haben \(\displaystyle k\) Zeilen, also für jede Zeile der oben angegebenen Tabelle eine.
  • Der Spaltenvektor \(\displaystyle \bm{a}\) hat \(\displaystyle p\) Zeilen, also für jeden Parameter \(\displaystyle a_1, \dots , a_p \, \) eine
  • Die Spalten in der Matrix \(\displaystyle \bm{D}\) sind die partiellen Ableitungen nach den Parametern \(\displaystyle a_1, \dots , a_p \, \). Die Reihenfolge der Spalten in \(\displaystyle \bm{D}\) hängt mit der Reihenfolge der Parameter in \(\displaystyle \bm{a}\) zusammen. Steht in Zeile 1 von \(\displaystyle \bm{a}\) der Parameter \(\displaystyle a_1 \, \), so muss in \(\displaystyle \bm{D}\) die erste Spalte die Ableitungen nach \(\displaystyle a_1 \, \) enthalten. Dementsprechend hat \(\displaystyle \bm{D}\) \(\displaystyle p\) Spalten, also für jeden Parameter \(\displaystyle a_1, \dots , a_p \, \) eine.
  • Die Anzahl der Variablen n hat keinen Einfluss auf den Aufbau der Matrix \(\displaystyle \bm{D}\) und der beiden Vektoren \(\displaystyle \bm{r},\, \bm{a}\).
  • Zu Beginn der Iteration müssen Startwerte für die Parameter \(\displaystyle a_1, a_2, \dots , a_p \, \) festgelegt werden

Iteration

  • Die Iteration wird mit folgender Matrixgleichung durchgeführt:
\(\displaystyle \mathbf{a}_{i+1} = \mathbf{a}_i - (\mathbf{D}^T \cdot \mathbf{D})^{-1} \cdot \mathbf{D}^T \cdot \mathbf{r} \)
Dabei wird in jedem Schritt der Vektor \(\displaystyle \mathbf{a}_i \), der die Parameter \(\displaystyle a_1, a_2, \dots , a_p \, \) enthält, verbessert.
Die Matrix \(\displaystyle \bm{D}\) wird berechnet, indem man zunächst alle Werte in den \(\displaystyle k\) Zeilen der Tabelle in die Funktion \(\displaystyle r'_1 \, \) einsetzt. Das Ergebnis schreibt man untereinander in die Spalte 1 von \(\displaystyle \bm{D}\). Danach setzt man alle Werte in den \(\displaystyle k\) Zeilen der Tabelle in die Funktion \(\displaystyle r'_2 \, \) ein und schreibt sie in Spalte 2 der Matrix \(\displaystyle \bm{D}\) usw.
Um den Vektor \(\displaystyle \bm{r}\) zu berechnen, setzt man alle Werte in den \(\displaystyle k\) Zeilen der Tabelle in die Funktion \(\displaystyle r_i \, \) und schreibt die Ergebnisse jeweils untereinander als Vektor \(\displaystyle \bm{r}\) 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 \(\displaystyle \bm{s}\) ersetzt werden kann:
\(\displaystyle (\mathbf{D}^T \cdot \mathbf{D}) \cdot \mathbf{s} = \mathbf{D}^T \cdot \mathbf{r}; \qquad \mathbf{a}_{i+1} = \mathbf{a}_i - \mathbf{s} \)
Die Vorteile liegen in einer schnelleren Berechnung bei höherer Genauigkeit.
  • Sobald \(\displaystyle \mathbf{a}_{i+1} \) 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 \(\displaystyle \bm{s}\) iteriert werden. Dieses Vorgehen wird beim Newtonschen Verfahren häufig empfohlen, reduziert aber die Konvergenzgeschwindigkeit und sollte erst angewendet werden, wenn sich \(\displaystyle \bm{a}\) nur noch wenig ändert.
  • Die Iteration wird abgebrochen, falls \(\displaystyle \mathbf{a}_{i+1} = \mathbf{a}_i \), also bei den \(\displaystyle a_1, a_2, \dots , a_p \, \) keine Änderung mehr eintritt.

Anmerkungen

  • Da \(\displaystyle \mathbf{D}^T \cdot \mathbf{D} \) symmetrisch und positiv definit ist, eignet sich die Cholesky-Zerlegung besonders gut für die Auflösung des Gleichungssystems.
  • Die Anzahl der Zeilen in der Tabelle (\(\displaystyle k\)) muss stets größer, als die Anzahl der Parameter \(\displaystyle a_1, a_2, \dots , a_p \, \) sein. Falls die Anzahl der Paramater gleich \(\displaystyle k\) 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 \(\displaystyle k\) ist.
  • Durch Einführung eines Schrittweiteparameters \(\displaystyle \gamma \) lässt sich ein Abstieg, d.h. die Verringerung der Fehlerquadratsumme erreichen.

Literatur

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

Jede mathematische Formel in einem Buch halbiert die Verkaufszahl dieses Buches.

Stephen Hawking

Copyright- und Lizenzinformationen: Diese Seite basiert dem Artikel Gauß-Newton-Verfahren aus der frеiеn Enzyklοpädιe Wιkιpеdιa und stеht unter der Dοppellizеnz GNU-Lιzenz für freie Dokumentation und Crеative Commons CC-BY-SA 3.0 Unportеd (Kurzfassung). In der Wιkιpеdιa ist eine Listе dеr Autorеn des Originalartikels verfügbar. Da der Artikel geändert wurde, reicht die Angabe dieser Liste für eine lizenzkonforme Weiternutzung nicht aus!
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld  • Dοrfplatz 25  •  17237 Blankеnsее  • Tel.: 01734332309 (Vodafone/D2)  •  Email: cο@maτhepedιa.dе