Matrixmultiplikation C ++

Matrixmultiplikation C ++
Möglicherweise haben Sie beim Studium viele Fragen zu Matrizen in Ihren Mathematikfächern gelernt und haben. Matrix ist eine Sammlung von Zeilen und Spalten. Die Matrix kann die äquivalente Anzahl von Zeilen und Spalten haben und unterschiedlich sein. Wir können jeden mathematischen Betrieb auf Matrizen ausführen, ich.e. Addition, Subtraktion, Multiplikation und Abteilung. Mit C ++ ermöglicht es uns auch, Matrizen in unseren Codes zu verwenden und diese Vorgänge auszuführen. So haben wir beschlossen, die Matrix -Multiplikation in C ++ - Programmierung bei der Verwendung des Ubuntu 20 durchzuführen.04 Linux -System. Beginnen wir mit der C ++ New Dateierstellung, um Code hinzuzufügen. Starten Sie zuerst das Shell -Terminal und verwenden Sie die Anweisung "Touch" des Shell -Terminals, um eine Datei zu generieren. Wir haben diese Datei "Matrix" benannt.CC ”. Die Datei wird im Home -Ordner unseres Linux -Systems gehalten. Wir haben es im Gnu Nano -Editor mit Ubuntus NANO -Editor geöffnet, wie im folgenden Bild demonstriert. Die leere Datei wird in nur 5 Sekunden direkt im GNU Nano -Editor geöffnet.

Beispiel # 01:

Beginnen wir mit dem grundlegenden Beispiel für die Matrixmultiplikation in C++. C ++ verwendet den Header „iOstream“, um Standardeingang und Ausgabe über den Eingangs-Output-Stream zu erhalten. Es muss also auch in der Codedatei enthalten sein. Wir haben es in unsere c ++ leere Datei mit dem Schlüsselwort "#include" in der oberen Zeile aufgenommen. In C ++ können Eingangs- und Ausgangsobjekte nur mit dem Standard -Namespace verwendet werden.

Daher müssen wir den Namespace „STD“ mit dem Wort „Verwenden“ nach dem Header verwenden. Wir werden unsere Matrix -Multiplikation innerhalb der C ++ Main () -Methode durchführen, die auch die Ausführungsquelle startet. Wir haben drei Matrizen "x", "y" und "z" mit der Größe von 5-5 deklariert, ich.e. Zeilen*Spalten. Wir haben aber auch Variablen „R“ und „C“ als Zeilen und Spalten deklariert und beide mit demselben Wert zugeordnet. Derzeit gibt es in unseren Matrizen keine Werte. Wir werden die Matrix „X“ und „Y“ als Eingangsmatrizen verwenden, während die Matrix „Z“ das Produkt beider Matrizen sein wird. Erstens müssen wir Werte in der Eingangsmatrix „x“ und „y“ separat mit Schleifen hinzufügen.

Die Cout -Anweisungen zeigen, dass der Benutzer die Werte in den Matrizen „x“ und „y“ getrennt eingibt. Die äußere "für" -Schloop wird verwendet, um die Zeilen auf "R" und die äußere "für" Schleife zu iterieren, um den Spaltenwert "C" zu iterieren. Da sowohl "R" als auch "C" Wert 2 haben, werden wir also eine "x" und "y" -Matrix von 2*2 erstellen. Das "CIN" -Objekt wurde verwendet, um die Werte in der Matrix "x" und "y" mit "I" und "J" -Slauen hinzuzufügen. Dadurch fügt der Benutzer "2" Zeilenwerte und "2" -Spaltenwerte in den Matrizen durch die Shell hinzu. Nach dem Eingeben von Werten in "X" und "Y" -Matrizen müssen wir das Produkt beider Matrizen herausfinden. Zunächst müssen wir alle Zeilen und Spalten der Produktmatrix „Z“ auf jeder Iteration mit sowohl I "und" J "für Loops initialisieren, bis 0.e. r = 2 und c = 2.

Bei jeder Iteration wird die „K“ -Schichtung verwendet, um die Matrix „x“ mit „y“ zu multiplizieren und diesen Produktwert einem bestimmten Iterationsindex von Matrix „Z“ hinzuzufügen. Dies wird bis zur letzten Reihe von Matrix "Z" fortgesetzt. Die letzten 2 "für" Loops wurden verwendet, um die Matrix "z" auf der Shell über die Anweisung "Cout" von Objekt "COUT" anzuzeigen. Nach all dem wird die letzte Cout -Anweisung verwendet, um die Endzeile hinzuzufügen. Unser Programm ist nun bereit, auf der Hülle zusammengestellt zu werden.

Der G ++ - Compiler in Ubuntu 20.04 wurde verwendet, um den C ++ - Code zu kompilieren, und das “./A.OUT OUT ”Abfrage wird verwendet, um den kompilierten Code auszuführen. Wir haben 2-Reis-Werte und 2-Spal-Werte für "X" und "Y" -Matrizen bei der Ausführung hinzugefügt. Danach wurde die Produktmatrix „z“ von beiden Matrizen „x“ und „y“ berechnet und auf der Schale angezeigt.

Beispiel # 02:

Innerhalb des obigen Beispiels haben wir die Matrixmultiplikation für zwei gleiche Matrizen, "X" und "Y", für die gleiche Reihenfolge berechnet, ich.e. Gleiche Anzahl von Zeilen und Spalten für beide Matrizen. Aber kennen Sie die Regeln für die Berechnung der Matrixmultiplikation? Wenn nicht? Dann ist dieses Beispiel die beste Hilfe für Sie. Sie müssen wissen, dass wir die Matrixmultiplikation von zwei Matrizen mit unterschiedlichen Zeilen nicht in Spaltenreihenfolge berechnen können. Um eine Multiplikation durchzuführen, muss der erste Matrix -Zeilenwert gleich dem zweiten Matrixspaltenwert sein, i.e. R1 = C2 oder R2 = C1. Wir haben den Wert der Spalte „C“ auf 3 aktualisiert. Jetzt sind die Zeilen und Spaltenwerte für Matrix "x" und "y" nicht gleich. Das Produkt wird nicht als Matrix „X“ berechnet, und „y“ hat 2 Zeilen und 3 Spalten, i.e. R1 ist nicht gleich C2 und R2 ist nicht gleich C1. Der verbleibende Code wird unverändert und für die Kompilierung über Strg+s gespeichert.

Wir haben diesen unerreichten Zeilen-Säulen-Matrixcode zusammengestellt und ihn bisher ausgeführt. Der Benutzer hat Werte für "X" und "Y" -Matrizen hinzugefügt. Wir haben komplizierte unerwartete Multiplikationsergebnisse von Matrix "X" und "Y" erhalten. Diese Ausgabe ist ungenau, da wir nicht die gleiche Reihenfolge für die Matrixmultiplikation verwendet haben.

Um dieses Problem zu lösen, müssen wir die Reihenfolge R1 = C2 und C1 = R2 für Eingabematrizen in unserem Code verwenden. Daher haben wir denselben Code geöffnet und die Zeilen und Spalten für die Matrix „X“ und „Y“ zusammen mit den Variablen „r = 3“ und „c = 4“ geändert. Sparen wir diesen aktualisierten Code und kompilieren Sie ihn.

Bei Zusammenstellung und Ausführung haben wir Eingaben für Matrix „X“ in der Reihenfolge 3-Reihen*4-Spalte und 4-Reihen*3-Spalte für Matrix „Y“ hinzugefügt. Wir haben die Produktmatrix von 3-Reihen*4-Spalte nach der Multiplikation von Matrix „X“ und „Y“ erhalten.

Beispiel # 03:

Schauen wir uns das letzte, aber nicht zuletzt Beispiel der Matrixmultiplikation an. Wir haben R1 = 3, C1 = 4, R2 = 4, C2 = 3, Matrix „X“ und Matrix „Y“ initialisiert. Die Produktmatrix „M“ wird unter Verwendung von R1 und C2 definiert. Wir haben die "für" -Schloop verwendet, um die bereits initialisierten "x" und "y" -Matrizen auf unserer Shell mithilfe der "Cout" -Objekte anzuzeigen. Wie im folgenden beigefügten Bild gezeigt, wurde dies für die Matrixmultiplikation von „X“ und „Y“ und „Y“ -Matrizen separat durchgeführt.

Wir haben das Produkt beider Matrizen berechnet und das Produkt zu Matrix „M“ hinzugefügt. Endlich haben wir die Produktmatrix „M“ auf der Shell mit der Objektanweisung „Cout“ angezeigt.

Bei der Codeausführung wurden wir zuerst mit „X“ und „Y“ -Matrizen und dann mit ihrer Produktmatrix „M“ angezeigt, und dann wurden wir sowohl mit "x" als auch mit „y“ angezeigt.

Abschluss:

Endlich! Wir haben die Erläuterung der Berechnung der Matrixmultiplikation in C ++ - Code mit dem Ubuntu 20 abgeschlossen.04 System. Wir haben die Bedeutung von Zeilen in Spalten in der Reihenfolge der Matrizen für den Multiplikationsvorgang erklärt. Daher haben wir von einem einfachen Beispiel für die Aufnahme der gleichen Auftragsmatrizen gestartet und mit den Beispielen für verschiedene Ordnung Matrices weitergegangen.