Nichtlineare Ausgleichsrechnung¶
Lernziele¶
Sie verstehen den Unterschied zwischen linearen und nichtlinearen Ausgleichsproblemen.
Sie kennen numerische Verfahren zur Lösung eines nichtlinearen Ausgleichsproblems.
Sie können das
Gauss-Newton Verfahren und
Levenberg-Marquardt Verfahren
anwenden.
Theorie¶
Die Theorie zum Praktikum ist im Skript Kapitel 2.4 gegeben.
Das Praktikum ist wie folgt aufgebaut:
Implementieren Gauss-Newton Verfahren
Testen am Modell Beispiel
Gleichung (2.43) im Skript mit den Daten aus der Tabelle 2.4 (vgl. Jupyter Notebook)
Anwenden auf Industrielle Anwendung aus der Gas Analytik (vgl. Praktikum 5)
Erweitern des Gauss-Newton Verfahrens für eine gedämpfte Iteration
Vergleichen Konvergenz Verhalten ungedämpft vs gedämpft
Implementieren Levenberg-Marquardt Verfahren
Testen am Modell Beispiel
Anwenden auf Industrielle Anwendung aus der Gas Analytik
Aufträge¶
Implementieren Sie das Gauss-Newton Verfahren (Algorithmus 2.11)
Testen Sie Ihr Programm mit dem Modellproblem
(1)¶\[\begin{split} u(t; u_0,\tau,\omega,\varphi) = u_0 \cdot e^{-\tau\, t} \cdot sin(\omega\, t+\varphi) \end{split}\]Gleichung (2.41) aus dem Skript.
Benutzen Sie die Daten aus dem Jupyter Notebook.
Generieren Sie selber ein Testdatenset und testen Sie Ihren Code.
Anwenden auf industrielle Anwendung aus der Gas Analytik
Wir greifen die Anwendung aus dem Praktikum 5 (lineare Ausgleichsrechnung) auf, wobei nun ebenso die Breite \(s_0\), wie auch die Position \(x_0\) gesucht ist.
Studieren Sie als Repetition die Einführung Industrielle Anwendung aus der Gas Analytik
Skalieren Sie die \(x\)-Achse
Für die nichtlineare Ausgleichsrechnung müssen wir die \(x\)-Achse zwingend skalieren. Benutzen Sie dazu die Skalierung \(\tau\) auf das Einheitsintervall \([0,1]\)
\[\begin{split}\begin{split} \tau : [x_{\min},x_{\max}] & \to [0,1]\\ x & \mapsto \tau(x) = \frac{x-x_{\min}}{x_{\max}-x_{\min}} \end{split}\end{split}\]Berechnen Sie mit Hilfe der linearen Ausgleichsrechnung gute Startwerte \(a_0\)
Die Daten P7 weichen leicht von denen im Praktikum 5 ab. Schätzen Sie die Lage \(x_0\) und Breite \(s_0\) ab und berechnen Sie mit Hilfe der linearen Ausgleichsrechnung Startwerte für das Parameterset. Achten Sie auf die Skalierung.
Berechnen Sie das nichtlineare Ausgleichsproblemen
Benutzen Sie dazu das implementierte Gauss-Newton Verfahren und die Startwerte vom Schritt oben. Kontrollieren Sie die Lösung, in dem Sie das Modell mit den Startwerten und dem optimierten Parametersatz darstellen.
Variation der Startwerte
Berechnen Sie das nichtlineare Ausgleichsproblem mit den beiden folgenden Startwerte:
\(\tilde{a}_0 = 1.1 \cdot a_0\)
\(\hat{a}_0 = 0.8 \cdot a_0\)
wobei mit \(a_0\) die Startwerte aus der linearen Ausgleichsrechnung bezeichnet seien. Sie werden feststellen, dass das Gauss-Newton Verfahren im ersten Fall gut konvergiert, im zweiten jedoch nicht. Das Problem kann etwas entschärft werden, in dem eine Dämpfung benutzt wird.
(optional) Erweitern des Gauss-Newton Verfahrens mit einer Dämpfung
Erweitern Sie Ihr Gauss-Newton Verfahren gemäss Algorithmus 2.12 im Skript. Sie können Ihre Funktion um diese Funktionalität erweitern und optional zur Verfügung stellen. Eine mögliche Definition könnte wie folgt aussehen:
def GaussNewton(data, x0, y, dy, maxIter=100, tol=1e-12, damped=False, maxDampingIter=10):
Testen Sie Ihre Erweiterung mit durch Variation der Startwerte
Sie werden feststellen, dass die Dämpfung eine kleine Verbesserung bringt, jedoch nicht wirklich befriedigend ist.
Implementieren Sie das Levenberg-Marquardt Verfahren analog zum Gauss-Newton Verfahren.
Benutzen Sie als Test das Modellproblem aus dem Skript
Wenden Sie das Verfahren auf die industrielle Anwendung.
Sie werden sehen, dass dieses Verfahren eine Verbesserung bezüglich Konvergenz bietet. Der Grund liegt in der Regularisierung und der Trust-Region Strategie für das Gewicht dieser. Das Verfahren findet daher in der Praxis sehr weitverbreitet Anwendung.
Nicht desto trotz sind gute Startwerte so gut wie immer entscheidend!
Wie siehe sehen werden, ist auch hier die Konvergenz stark von den Startwerten abhängig.
Industrielle Anwendung aus der Gas Analytik¶
Abgabe¶
Bitte geben Sie Ihre Lösungen bis spätestens vor dem nächsten Praktikum 8 ab.