Ich lerne lineare Algebra für eine Klasse für maschinelles Lernen und habe eine Frage zur Matrizenmultiplikation. Das Produkt zweier Matrizen ist immer dann undefiniert, wenn die Zeilen der ersten Matrix (von rechts nach links gelesen) nicht mit der Spalte der zweiten Matrix übereinstimmen.
Angenommen, ich müsste (aus irgendeinem Grund) eine 3x3-Matrix mit einer 2x2-Matrix multiplizieren. Könnte ich die Operation nicht einfach abschließen, indem ich die "fehlende Zeile" mit den Koordinaten [0,0] hinzufüge? Ich denke darüber nach, denn wenn Matrizen lineare Transformationen des Raums darstellen, dann repräsentiert eine 2x2-Matrix eine zweidimensionale Transformation. Aber ist eine zweidimensionale Transformation nicht einfach eine Transformation, bei der jede andere Dimension gleich 0 ist?
Nehmen wir zur Veranschaulichung an, ich möchte eine lineare Transformation [-1,0;0,1] auf den Vektor [3,3] anwenden. Der resultierende Vektor wäre ein zweidimensionaler Vektor [-3,3]. Nehmen wir nun an, dass ich nach dieser Transformation eine weitere Transformation auf denselben Vektor anwenden möchte, diesmal jedoch in drei Dimensionen. Um das Beispiel so einfach wie möglich zu halten, verwenden wir dafür die Identitätstransformation: [1,0,0;0,1,0;0,0,1]. Dazu müsste die 3x3-Matrix [1,0,0;0,1,0;0,0,1] mit der 2x3-Matrix [-1,0;0,1] multipliziert werden, was technisch nicht möglich ist. Wenn ich jedoch die obige Methode anwende (dh eine dritte Zeile mit allen 0 zur 2x3-Matrix hinzufüge), wäre ich immer noch in der Lage, die Transformation zu berechnen und das Ergebnis [-1,0,0;0,1,0] zu erhalten. Ich kann dies dann mit meinem ursprünglichen Vektor multiplizieren und erhalte [-3,3,0]. Der einzige Unterschied, den ich zwischen [-3,3,0] und [-3,
Was fehlt mir hier?
Grüße,
Federico
Du musst etwas deutlicher sagen, was du machen willst. Technisch gesehen können Sie eine 2x2-Matrix einfach nicht mit einer 3x3-Matrix multiplizieren. Ich bin mir also nicht sicher, was du da vorhast.
Aber falls und du willst finden damit wann immer wir haben identisch mit der Projektion von auf die ersten beiden Koordinaten, dann ist das durchaus machbar. In der Tat, nehme an
Ich würde sagen, der Kern der Idee kann verwendet werden, aber eine Matrix, die nur 0 enthält, lässt den Vektor nicht unverändert, die Einheitskarte ändert den Vektor nicht. Wenn Sie also eine 2D-Karte auf einem 3D-Objekt verwenden möchten Sie Sie können sich dafür entscheiden, 1 Achse zu wählen, entlang der nichts geändert wird, indem Sie die Einheitskarte anstelle der Nullkarte verwenden.
Sie führen effektiv Berechnungen durch , der endlich unterstützte Bereich -dimensionale reellwertige Matrizen. Und Sie betrachten jede solche Matrix als äquivalent zu jeder endlichdimensionalen Scheibe, die alle ihre Nicht-Null-Einträge enthält. Das funktioniert im Allgemeinen gut: zum Beispiel Multiplikation in ist assoziativ. Aber es gibt keine Identitätsmatrix, da sie unendlich viele haben müsste s, und das ist unbequem.
Das heißt, nur weil Sie dies tun können, heißt das nicht unbedingt, dass Sie es tun sollten ! Um dies in einer angewandten Umgebung auszudrücken: Nehmen wir an, Sie entwerfen ein Paket für lineare Algebra von Grund auf neu. Wenn der Benutzer versucht, zwei Matrizen mit unerwarteten Formen zu multiplizieren, dann ist es wahrscheinlich ein Fehler, also ist es besser, einen großen Fehler zu signalisieren, anstatt stillschweigend die Hälfte seiner Daten in Nullen umzuwandeln. Wenn der Benutzer die Multiplikation wirklich durchführen möchte, fordern Sie ihn auf, explizit zu beschreiben, wie die Eingaben zuerst in Form geschlagen werden sollen. Siehe zum Beispiel die Array-Manipulation und Pad- Funktionen von numpy .
fcorte
Ben W
fcorte
Ben W