Backslash-Operation mit "hoher" Rechteckmatrix A
Fall a: Es existert eine Matrix B, so dass A·B = C gilt
Links sieht man das Falksche Schema für die Multiplikation zweier Matrizen: A hat 4 Zeilen und 2 Spalten, B hat 2 Zeilen und 3 Spalten, die sich daraus eindeutig ergebende Ergebnismatrix A·B = C hat nach den Regeln der Matrixmultiplikation 4 Zeilen und 3 Spalten.
Rechts sieht man das gleiche Schema, in dem aber die Matrizen A und C vorgegeben sind, und die Matrix B soll ermittelt werden. Nach den Regeln der Matrixmultiplikation müssen z. B. die 2 Werte in der ersten Spalte von B vier Bedingungen erfüllen:
Dies ist ein überbestimmtes Gleichungssystem und in der Regel nicht erfüllbar. In diesem Fall doch, denn die Matrix C wurde ja mit einer Matrix B erzeugt, deren Werte in der ersten Spalte b11 = 1 und b21 = 2 alle 4 Gleichungen erfüllen (man überzeugt sich leicht durch Einsetzen). Die gleiche Aussage gilt für die beiden anderen Spalten von B.
Fazit: Die "Matrix-Division" mit "hoher" Matrix A (mehr Zeilen als Spalten) kann möglich sein, das ist aber eher zufällig.
Die Backslash-Operation in Matlab liefert in diesem Fall auch das erwartete Ergebnis: Das kleine Script links baut zunächst die beiden Matrizen A und B auf, deren Multiplikation in Zeile 10 das im Falkschen Schema oben links zu sehende Resultat ergibt (siehe "Command window" rechts). Die "Division" (Backslash-Operation) in Zeile 11 liefert nun genau die erwartete Matrix B (hier als BB bezeichnet).
Fall b: Es existert keine Matrix B, so dass A·B = C gilt
Der als Fall a gezielt konstruierte Fall, dass zu gegebenen Matrizen A und C eine Matrix B existiert, so dass A·B = C gilt, ist natürlich die Ausnahme bei "hoher" Matrix A (mehr Zeilen als Spalten). Rechts sieht man das Falksche Schema, in dem die Matrizen A und C vorgegeben sind, und die Matrix B soll ermittelt werden. Eine solche Matrix existiert aber nicht, denn nach den Regeln der Matrixmultiplikation müssten z. B. die 2 Werte in der ersten Spalte von B die folgenden vier Bedingungen erfüllen:
Dieses Gleichungssystem ist widersprüchlich, wie man sich leich überzeugt: Die beiden ersten Gleichungen (man addiere sie, um das zu überprüfen) können nur erfüllt sein, wenn b11 = 1/7 ist, die beiden letzten Gleichungen (man subtrahiere das 5-fache der vierten von der dritten Gleichung, um das zu überprüfen) können nur erfüllt sein, wenn b11 = 1 ist. Die gleiche Aussage gilt für die beiden anderen Spalten von B.
Fazit: Die "Matrix-Division" mit "hoher" Matrix A (mehr Zeilen als Spalten) ist im Regelfall unmöglich.
Die Backslash-Operation in Matlab liefert trotzdem ein Ergebnis. Das Gleichungssystem wird nach den Regeln der Ausgleichsrechnung behandelt: Es wird das Ergebnis abgeliefert, das im Sinne des Minimums der Summe der Fehlerquadrate alle Gleichungen "bestmöglich" erfüllt. Für das aufgelistete System für die Berechnung der ersten Spalte der Matrix B ergibt sich in diesem Fall die Lösung: b11 = 0,4366 und b21 = 1,6636. Dieses Wertepaar erfüllt keine der 4 Gleichungen, aber alle 4 in dem genannten Sinne "bestmöglich".
Das kleine Script links demonstriert dies. Es baut zunächst die beiden Matrizen A und C auf. Die "Division" (Backslash-Operation) in Zeile 11 liefert eine Matrix B (Ergebnis rechts im "Command window"), die das Produkt A·B = C nicht erfüllt, wie das Ergebnis der Multiplikation in Zeile 13 beweist. Man erkennt allerdings eine gewisse Tendenz zu den Werten der Matrix C, die in diesem Fall nicht sehr stark ausgeprägt ist, weil die willkürlich aufgeschriebene Matrix C zu sehr starken Widersprüchen im überbestimmten Gleichungssystem führt (bei realistischen Problemen der Ausgleichsrechnung sind die Widersprüche normalerweise eher gering).
|