1. Phase: Methode der kleinsten Quadrate Einführung Im Vortrag über das CT-Verfahren hat Herr Köckler schon auf die Methode der kleinsten Quadrate hingewiesen. Diese Lösungsmethode, welche bei überbestimmten Gleichungssystemen (d.h. mehr Gleichungen als Variablen) zur Anwendung kommt, werden wir als erstes näher kennenlernen. Matrizen A, b Lösen mit der KQ-Methode: x = lsqr(a,b) Lösungsvektor x Bevor wir allerdings die Rekonstruktion eines Objektes mittels der Methode der kleinsten Quadrate anwenden, machen wir uns einige Gedanken zur Vorverarbeitung und Vereinfachung. Hierbei werden wir auch gleich auf Matlab zurückgreifen. 1 Vorbereitung Bestimmen Sie eine Gerade, welche durch die Punkte P (, 1) und Q(6, ) verläuft. Hinweise: Wie lautet die allgemeine Geradengleichung? Wo werden die Koordinaten der Punkte eingetragen? Welches sind die Unbekannten? Die allgemeine Geradengleichung lautet y = mx + n. In diese werden jeweils die x und die y- Koordinate eingesetzt. Die Unbekannten sind m und n. Für diese erhält man ein lineares Gleichungssystem: I. 1=m + n I. 1=m + n II. =6m + n II. I. = II. 8=4m II./4 = In Matrix-Vektor-Notation sieht das wie folgt aus: 1 1 m 1 1 m = = 6 1 n 8 4 0 n Daher lautet die Geradengleichung y =x 3. 1 = I. 1=m + n II. =m ( 1 1 0 ) m n I. II. = I. 3 =n II. =m 3 = ( 0 1 1 0 ) m n 1
KQ-Methode mit einer Unbekannten Das Gewicht G einer Probe wird viermal mit verschiedenen Instrumenten und Methoden gemessen, das ergibt die Messungen G 1, G, G 3 und G 4. Eine möglichst gute Nährung für das Gewicht soll jetzt nach der Methode der kleinsten Quadrate bestimmt werden, d.h. es soll der Ausdruck (G G 1 ) +(G G ) +(G G 3 ) +(G G 4 ) bezüglich G minimiert werden. Beschreiben Sie, wie man auf den genannten Ausdruck kommt. Bestimmen Sie die Näherung für G. Bemerkung: Man kann das Verfahren der Ableitung - wie im Vortrag erlebt - auf mehrere Variablen ausdehnen. In diesem Fall erhält man ein Gleichungssystem, welches zur Bestimmung der einzelnen Variablen gelöst wird. Hinweise: Aufstellen der Gleichungen und anschließendes Umstellen. Bilden der Ableitung! Nullstellen der Ableitung als mögliche Extremstellen. Das überbestimmte Gleichungssystem lauten zunächst G = G 1 G = G G = G 3 G = G 4 bzw. in Matrix-Vektor-Notation 1 G 1 1 1 G = G G 3 1 G 4 Es ist dann f(g) =(G G 1 ) +(G G ) +(G G 3 ) +(G G 4 ). Dann erhält man durch Ableiten f (G) =(G G 1 )+(G G )+(G G 3 )+(G G4). Nullsetzen und nach G auflösen ergibt somit: 8G G 1 G G 3 G 4 =0= 8G =(G 1 + G + G 3 + G 4 )= G = 1 4 (G 1 + G + G 3 + G 4 ) Hätte man das Ergebnis einfacher errechnen können? Welcher bekannte Begriff liefert diese einfachere Rechnung? Ja. Der Mittelwert der Messwerte ergibt gerade das Minimum der quadratischen Abweichungen.
3 KQ-Methode in der CT - ein einführendes Beispiel Wir schauen uns nun ein erstes - einfaches - Beispiel an, welches schon dem Bereich der Computertomographie zugeordnet werden kann. Hierzu sei die folgende Anordnung gegeben: 4 5 7 8 Das Ziel dieser Aufgabe ist, ein Gleichungssystem aufzustellen, mit welchem die beste Näherung für die roten und blauen Kästchen berechnet werden kann. Erinnern wir uns an den Vortrag von Herrn Köckler. Dort wurde die Formel zum Aufstellen des Gleichungssystemes eingeführt. Für einen Strahl lautet die allgemeine Gleichung: I1 L 1 µ 1 + L µ +...+ L n µ n = ln mit I 0 als gegebener Eingangsintensität und I 1 als gemessener Ausgangsintensität. Weiter ist n die Anzahl der durchstrahlten Zellen, welche voneinander verschieden sind. In unserem Beispiel gibt es nur rote und blaue Zellen, somit ist n =. Da wir sechs parallele Strahlen im Beispiel sehen und pro Strahl eine Gleichung aufgestellt wird, erhalten wir am Ende ein Gleichungssystem bestehend aus sechs Gleichungen der obigen Form. D.h. eine Gleichung des Gleichungssystems hat also die Form I1 L 1 µ 1 + L µ = ln. Die Werte L 1 und L beinhalten die berechneten Längen des Strahles in der jeweiligen Zelle in unserem Beispiel in den roten bzw. blauen Kästchen. Wird eine Zelle nicht getroffen, erhält der L j -Wert für diese Zelle den Wert Null. Die µ-werte sind die unbekannten Abschwächungskoeffizienten, die wir bestimmen wollen. I 0 I 0 3
Aufgabenteil 1: In diesem Aufgabenteil machen wir uns die Rechnung etwas einfacher und setzen L j entweder gleich 1, falls eine Zelle getroffen wurde, oder gleich 0, falls eine Zelle nicht getroffen wurde. Als Zelle bezeichnen wir dabei ein Kästchen, wie im Bild zu sehen. Stellen Sie das Gleichungssystem für diesen vereinfachten Fall auf. 4 µ rot = ln 3µ rot = ln µ rot + µ blau = ln 5 µ rot +µ blau = ln 7 3µ blau = ln 8 µ blau = ln In Matrizenschreibweise Aµ = b mit µ =(µ rot,µ blau ) erhält man 1 0 ln 4 3 0 ln 1 µrot 1 = ln µ blau ln 5 0 3 ln 7 0 1 ln 8 Ist eine eindeutige Lösung des Systems möglich? Nein. Nun wollen wir das System analog zur Aufgabe für µ blau =0.11 lösen. Welches Ergebnis für µ rot erhalten Sie? Sei µ blau =0.11. Zu lösen ist ( min (µ rot +ln 4 ) +(3µ rot +ln ) +(µ rot + µ blau +ln ) + +(µ rot +µ blau +ln 5 ) +(3µ blau +ln 7 ) +(µ blau +ln 8 ) ) 4
Ableiten liefert 0 = (µ rot +ln 4 )+6(3µ rot +ln )+4(µ rot + µ blau +ln )+(µ rot +µ blau +ln 5 ). Umstellen ergibt 30µ rot =16.58 und somit ist (gerundet) µ rot =0.5653. Als nächstes wollen wir nun das Gleichungssystem mit beiden Unbekannten bestmöglichst lösen. Hierzu nutzen wir die kleinste Quadrate Lösungsmethode lsqr,welche in Matlab implementiert ist. Einige Vorbereitungen: Das oben aufgestellte Gleichungssystem muss in Matrix-Vektor-Schreibweise geschrieben werden, d.h. es sollte die Form Aµ = b mit µ =(µ rot,µ blau ) besitzen. In der Matrix A stehen dabei die Koeffizienten von µ rot und µ blau und in b die Einträge der rechten Seite des Gleichungssystems. Sowohl A als auch b müssen dann in Matlab über die Befehle MatrixEingabe bzw. VektorEingabe eingegeben werden (siehe Übersicht der Matlab-Befehle). Ist dies geschehen, können Sie mit Hilfe des Befehls mu=lsqr(a,b) das Gleichungssystem mit der Methode der kleinsten Quadrate lösen. Wie ist das Ergebnis? Eingabe der Werte: A=MatrixEingabe(,6,[1030110301]); b = VektorEingabe(6, [-log(4/) -log(/) -log(/) -log(5/) -log(7/) -log(8/)]); Lösen: mu = lsqr(a,b); liefert µ rot =0.57 und µ blau =0.084. Um die Ergebnisse auf ihre Genauigkeit hin überprüfen zu können, schaut man sich die sogenannte Fehlerquadratsumme oder auch Residuum genannt etwas näher an. Hierzu berechnet man b Aµ = n (b i (Ax) i ). i=1 Dieser Ausdruck kann per Hand berechnet werden, aber um uns Zeit und Rechnerei zu ersparen, nutzen wir direkt wieder Matlab mit dem Befehl fehler = norm(b - A*mu) Berechnen Sie mit diesem Befehl zunächst den Fehler für den Fall, in welchem µ blau vorher auf 0.11 gesetzt wurde. Anschließend wollen wir diesen Fehler mit dem vergleichen, der beim Lösen des Gleichungssystems mit L j = {0, 1} entstanden ist. D.h. wir setzen für mu die Werte ein, welche von Matlab mittels lsqr berechnet wurden. Residuum einfacher Fall: µ blau =0.11, µ rot =0.5653 5
fehler1 = norm(b - A*mu) = 0.460 Residuum für Fall L j = {0, 1}: µ rot =0.57 und µ blau =0.084 fehler = norm(b - A*mu) = 0.4500 Aufgabenteil : Das Ziel ist es nun, die eben berechneten Fehler zu verbessern, indem wir die zu Beginn des Aufgabenteiles 1 gemachte Einschränkung nun durch bessere (exaktere) Werte für die L j ersetzen. Stellen Sie erneut ein Gleichungssystem auf. Die Werte für die verschiedenen L j entnehmen Sie direkt dem Bild, indem Sie die Länge der verschiedenen Strahlen messen. 4 1.1µ rot = ln.3µ rot = ln.4µ rot +0.µ blau = ln 5 0.5µ rot +.1µ blau = ln 7.6µ blau = ln 8 1.1µ blau = ln In Matrizenschreibweise Aµ = b mit µ =(µ rot,µ blau ) erhält man 1.1 0 ln 4.3 0 ln.4 0. µrot 0.5.1 = ln µ blau ln 5 0.6 ln 7 0 1.1 ln 8 Um nun die Werte für µ rot und µ blau erneut berechnen zu können, muss die Matrix A neu in Matlab eingeben werden. Ist es notwendig den Vektor b noch einmal einzugeben? Nein. Nachdem Sie die Matrix eingegeben haben, berechnen Sie bitte wie zuvor mit Matlab die Lösung mit der Methode der kleinsten Quadrate. 6
Eingabe der Werte: Aneu = MatrixEingabe(, 6, [1.1 0.3 0.4 0. 0.5.1 0.6 0 1.1]); Lösen: muneu = lsqr(aneu,b); liefert µ rot =0.6468 und µ blau =0.1070. Wie bereits angekündigt, wollen wir dieses Ergebnis mit den vorherigen vergleichen. Dazu berechnen Sie bitte erneut die Fehlerquadratsumme. Was stellen Sie fest? Residuum für die verbesserten Eingabewerte: µ rot =0.6468, µ blau =0.1070 fehler3 = norm(b - Aneu*muneu) = 0.1316 Es fällt auf, dass dieses zum Schluss berechnete Residuum das kleinste ist. Dies kommt daher, dass in diesem Fall die bestmöglichsten Eingabewerte benutzt worden. 7