Ausgleichsprobleme mit Nebenbedingungen¶
Lernziele¶
Sie verstehen das Konzept von Ausgleichsproblemen mit Nebenbedingungen.
Sie kennen eine approximative Lösungsmethode für diese Problemstellung und können diese implementieren.
Sie verstehen damit zusammenhängende, numerische Herausforderungen und berücksichtigen diese Aspekte bei der Lösung.
Theorie¶
Mitunter kann eine Fitaufgabenstellung nicht in der Form gestellt werden, welche auf eine direkte Minimierung von \(\Vert {\bf A} \, {\bf \xi} - {\bf b} \Vert^2 \to min\) führt. Eine Beispielsituation ist unten dargestetllt: von einem Prozess sei bekannt, dass die Daten in \(0 \le x < 5\) durch ein Polynom 3. Grades \(p_1(x)\) beschrieben werden, während im Interval \(5 \le x \le 10\) ein anderes Polynom 3. Grades \(p_2(x)\) vorliegt, dessen Koeffizienten verschieden sein können vom Polynom \(p_1(x)\). Nichtsdestotrotz verlangt man aber, dass die Funktion bestehend aus den beiden Polynomen an der Stelle \(x=5\) stetig ist und eine stetige 1. Ableitung aufweist!
Das Polynom \(p_1\) ist definiert durch die Koeffizienten \(\xi_i, \, i=1,\dots,4\), während das Polynom \(p_2\) die Koeffizienten \(\xi_i, \, i=5,\dots,8\) aufweist. Ein Moment der Überlegung zeigt, dass die Forderung nach der Stetigkeit der 0. und 1. Ableitung an der Stelle \(x=a\) zu linearen Bedingungsgleichungen für die Koeffizienten führt. Diese Bedingungen können in der Form \(\bf C \, \bf \xi = 0\) formuliert werden, wo \(\bf C\) eine zu bestimmende 2x8-Matrix darstellt. Die vorliegende Problemstellung lautet somit
In dieser Situation können wir nicht direkt eine Normalengleichung formulieren und den gewohnten Lösungsweg einschlagen. Es gibt aber einen Trick, um zumindest approximativ wieder auf das gewohnte Minimierungsproblem zurückzukommen und dieses zu lösen. Wir betrachten dazu den Ausdruck
Wenn \(\lambda\) genügend gross gewählt wird, führt die Minimierung dieses Ausdruckes dazu, dass die Nebenbedingung approximativ erfüllt wird, denn nur so kann der 2. Term, \(\Vert {\bf C} \, {\bf \xi} \Vert^2\), minimal werden. Durch diese (kontrollierbare) Approximation kann die obige Problemstellung auf eine lineare Ausgleichsrechnung zurückgeführt werden, denn bei konstantem \(\lambda\) sind alle Terme in dieser Gleichung quadratische Ausdrücke in den Vektorkomponenten von \(\bf \xi\).
Aufträge¶
Daten einlesen
Sie finden die entsprechenden Daten via den Link weiter unten. Die Daten lesen Sie in MATLAB ein mit:
load('dataLSforMatlab')
resp. unter PYTHON:
import pickle as pkl data=pkl.load(open('dataLSforPython.pickle','rb'))
Womit Ihnen ein 2D-Array \(data\) zur Verfügung steht, welcher spaltenweise die Werte der Variablen \(x_1\), \(x_2\), \(y_1\), \(y_2\) enthält.
Fit mit einem einzelnen Polynom 3. Grades
Zuerst versuchen Sie die Daten mit einem Fit an eine einzelnes Polynom 3. Grades. Bei einer graphische Visualisierung werden Sie feststellen, dass dieser Ansatz nicht befriedigend ist.
Fit mit zwei unabhängigen Polynomen 3. Grades
Nun testen Sie eine 2. Lösung, nämlich der Fit mit 2 unabhängigen Polynomen 3. Grades, je für die Daten \(x_1, \, y_1\) und \(x_2, \, y_2\). Stellen Sie diese Lösung im selben Graphen dar, wie das einzelne Polynom und notieren Sie, was Ihnen auffällt.
Hinweis: Sie können diese beiden Fits mit einer einzigen, so genannten Blockdiagonalmatrix erstellen. Block oben links entspricht dem Fit der Daten zu \(x_1\), der Block unten rechts gehört zu den Daten für \(x_2\). Alle übrigen Matrixelemente sind gleich Null. Diese Matrixstruktur gibt dann entsprechend auch die Aufteilung des Vektors der Unbekannten \(\xi_i\), resp. der rechten Seite, bestehend aus den \(y\)-Datenwerten vor.
Fit zwei Polynomen 3. Grades unter Berücksichtigung der Nebenbedingungen
Weiter sollen Sie nun eine Prozedur für das Fitten mit linearen Nebenbedingungen mit der oben skizzierten, approximativen Methode erarbeiten. Die folgenden Teilfragen leiten Sie Schritt für Schritt durch den Prozess.
Matrix der Nebenbedingungen In einem ersten Schritte stellen Sie die Matrix \(\bf C\) auf, welche die Stetigkeit der 0. und 1. Ableitung mit der Gleichung \(\bf C \, \bf \xi = 0\) ausdrückt. Hinweis: Setzen Sie die Polynome mit den Koeffizienen aus \(\bf \xi\) an und formulieren Sie die entsprechenden Bedingungen an der Stelle \(x=5\).
Normalengleichung mit Nebenbedingungen Die Normalengleichung zum Finden des Minimums von \(\Vert {\bf A} \, {\bf \xi} - {\bf b} \Vert^2 + \lambda \cdot \Vert {\bf C} \, {\bf \xi} \Vert^2 = min\) kann analog zum 2. Schritt oben gefunden werden. Die zusätzlichen Terme, proportional zu \(\lambda\) im Funktional führen zu zusätzlichen Zeilen in der Matrix, welche mit Hilfe von \(\bf C\) gebildet werden können. Stellen Sie sich dazu vor, dass Sie zusätzliche Messpunkte vorliegen haben, deren Abstand zum vorgegebenen Wert (hier=0!) minimiert werden soll im Sinne der kleinsten Quadrate. Diese Überlegung führt Sie auch auf die richtige Spur zur Erweiterung der rechten Seite der modifzierten Normalengleichung. Mit der Lösung dieses modifizierten Systems kann der Fit nun unter Einhaltung der Nebenbedingungen ausgeführt werden. Der Parameter \(\lambda\) kann im Bereich \(0 < \lambda < 10^6\) gewählt werden. Experimentieren Sie mit dieser Grösse, indem Sie die Genauigkeit der Stetigkeitsbedingungen kontrollieren (Nebenfrage: Wie kann man diese Genauigkeit mit einer simplen Matrix-Vektor-Multiplikation testen, wenn die Lösung vorliegt?)
Numerische Aspekte Diese approximative Vorgehensweise ist algorithmisch simpel, da nur die Matrix, resp. die rechte Seite modifiziert und der Wert von \(\lambda\) korrekt gewählt werden muss. Aufgrund der obigen Überlegung ist ein möglichst grosser Wert von \(\lambda\) eine Garantie dafür, dass die Nebenbedingungen gut eingehalten werden. Aber leider hat die Sache auch einen Nachteil: grosse \(\lambda\)-Werte verschlechtern die Kondition der Systemmatrix. Untersuchen Sie diesen Zusammenhang, indem Sie \(\lambda\) systematisch variieren und die zugehörige Kondition der modifizierten Matrix \(\bf A\), resp. von \(\bf A^T\,A\) graphisch auftragen (logarithmisch) und Ihre Einsichten als Kommentare formulieren. Insbesondere zeigt diese Betrachtung, dass nicht die Normalengleichung gelöst werden sollte, sondern stattdessen z.B. die QR-Zerlegung genutzt wird.
Abgabe¶
Geben Sie Ihre Bearbeitung der Aufträge 2. - 4. bis in einer Woche ab.
Bemerkungen¶
Mit der Splineinterpolation exisitiert eine Methode, welche ebenfalls auf einer intervallweisen Approximation mit Polynomen 3. Grades arbeitet. Auch dort werden an den übergangsstellen Stetigkeitsforderungen aufgestellt. Sie erfahren gegen Ende des Semesters mehr darüber
Die hier vorgestellte Erweiterung eines zu minimierenden Funtionals der kleinsten Quadrate mit Zusatztermen, kommt in der Anwendung in unzähligen Varianten vor. Zum Beispiel unter dem Stichwort Regularisierung (https://en.wikipedia.org/wiki/Tikhonov_regularization).
Es gibt weitere Verfahren zur numerischen Behandlung von Ausgleichsproblemen mit linearen Nebenbedingungen, welche auf der Methode der Lagrange-Multiplikatoren beruhen (https://math.stackexchange.com/questions/1984889/equality-constrained-least-squares-problem-via-lagrange-multipliers). Diese sind numerisch zwar gutmütiger, aber nicht so einfach zu verstehen oder umzusetzen, wie die hier betrachtet Methode (https://en.wikipedia.org/wiki/Ordinary_least_squares#Constrained_estimation).