7.1.4 Aufgabe zur Methode der kleinsten Quadrate
Musterlösung zur nachfolgenden Aufgabe (läuft auch als Scilab-Skript)
// y = c1*x+c2*3^x // x=0, y=-1 => // -1 = c1*0 + c2*1 // x=1, y=-1 => // -1 = c1*1 + c2*3 // x=2, y=-5 => // -5 = c1*2 + c2*9 //In Matrixschreibweise (Scilab-Syntax): // B*c + d = r <=> B = [0,1;1,3;2,9]; d = [1;1;5]; // T //A = B * B A = B'*B //A = [5,21;21,91] // T //b = B * d b = B'*d //b = [11;49] //Lösung des LGS A*c + b = 0 von Hand, Kontrolle mit Scilab: //[c1;c2] = inv(A)*(-b) //c1 = 2 //c2 = -1 c = inv(A)*(-b) //ACHTUNG: //Bei dieser Aufgabe sind alle Residuen r Null. //D.h. der quadratische Fehler ist für alle Messungen Null. //Das ist natürlich unrealistisch und nur //ein Trick, um eine einfach zu überprüfende //Übung zu generieren. //Man könnte in diesem speziellen fall //deshalb die überzählige Gleichung einfach weglassen //und das verbleibende bestimmte LGS lösen. //Im allgemeinen tritt dies aber nicht auf und //es muss das überbestimmte Gleichungssystem //gehandhabt werden.
Code 7.1.4-1: Musterlösung.
Teil 1: Lösen Sie folgendes Problem mit Hilfe der Methode der kleinsten Quadrate (LSQ)
Bild 7.1.4-1: Aufgabe zu LSQ.
Der Zusammenhang zwischen den Größen x und y soll mit Hilfe der Methode der kleinsten Quadrate (LSQ) gefunden werden. In obigem Bild ist der vermutete funktionale Zusammenhang dargestellt und die durchgeführten Messungen. Darunter finden Sie die in der Berechnung vorkommenden Gleichungen. Setzen Sie die richtigen Zahlen für die Platzhalter B11..B32, d1..d3, A11..A22 und b1..b2 ein und bestimmen Sie damit c1 und c2 mit Hilfe der LSQ.
Teil 2: LSQ mit Scilab
Lesen Sie die Hilfe zur Funktion lsq() in Scilab nach und lösen obige Aufgabe mit Hilfe eines selbst geschriebenen Scilab-Skripts. Überprüfen Sie damit Ihr Ergebnis.