Matrixgleichung lösen X * A = B

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Matrixgleichung lösen X * A = B

Beitrag von RazorX »

Servus,

ich hoffe ich poste hier jetzt nicht falsch, aber im Prinzip kommt das ja auch in der Spieleprogrammierung vor.

Mein Problem:
Ich arbeite momentan an einem kleinen Programm für meine Lineare Algebra Abschlussprüfung (wir dürfen Programme, etc. benutzen). Gleichungen der Art A * X = B sind ja zurückzuführen auf das Falk-Schema und durch einen GJA lösbar. Mein Problem ist es nun eine andere Form zu lösen: X * A = B.

Mein Ansatz bisher:
X * A = B
X * A * A^-1 = B * A^-1
X = B * A^-1

Nun habe ich in eine der alten Klausuren reingeschaut und dort folgende Aufgabe gefunden:
A:
3 −3 2−2
3 2 2 2
5 4 2 3
11 3 6 3

B:
0 0 0 0
0 0 0 0
0 0 0 0

Lösen Sie X * A = B!

Dabei ist es nun nicht möglich die Inverse von A zu bilden, da im GJA eine Zeile vom Typ 0+..+0 != 0 auftaucht, bzw Auszeichnungen != Spaltenanzahl.
Wie löst man also so einen Aufgabentyp?

Mit freundlichen Grüßen
RazorX
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Matrixgleichung lösen X * A = B

Beitrag von eXile »

Mal ganz schnell überlegt:

Code: Alles auswählen

X * A = B
<=> (X * A)^T = B^T
<=> A^T * X^T = B^T
Löse dies mit deinem bereits vorhandenen Algorithmus nach X^T. Die gegebene Aufgabe zu lösen ist relativ einfach, als Lösung erhalt man die Matrix:

Code: Alles auswählen

x_1 x_1 x_1 -x_1
x_2 x_2 x_2 -x_2
x_3 x_3 x_3 -x_3
x_4 x_4 x_4 -x_4
für x_1, ... x_4 \in \mathbb{R}.
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: Matrixgleichung lösen X * A = B

Beitrag von RazorX »

Okay, ergibt Sinn. Wobei du in deiner Lösung eine Zeile zu viel hast.

Code: Alles auswählen

Ergebnis des GJA:
a b c s
1 0 0 1 | 0 0 0
0 1 0 1 | 0 0 0
0 0 1 1 | 0 0 0
0 0 0 0 | 0 0 0

Interpretation = Lösung des GJA:
-s -s -s
-s -s -s
-s -s -s
+s +s +s

Zuletzt transponieren um aufs Ergebnis der Aufgabe zu kommen:
-s -s -s s
-s -s -s s
-s -s -s s
Dank dir für die Hilfe.

Gruß
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Matrixgleichung lösen X * A = B

Beitrag von eXile »

RazorX hat geschrieben:Okay, ergibt Sinn. Wobei du in deiner Lösung eine Zeile zu viel hast.
Jo, hatte B als 4x4-Matrix aufgefasst. Sorry. ;) Nachtrag: Die Variable s kann allerdings durchaus pro Zeile unterschiedlich ausfallen, es muss nicht überall das gleiche s stehen. Der Algorithmus gibt also anscheinend zumindest eine gültige Lösung zurück (nicht die allgemeinste).
Antworten