Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Matrizen spielen eine wichtige Rolle in vielen verschiedenen Bereichen, einschließlich Computergrafik, Kryptografie und drahtloser Kommunikation. Eine Matrix ist eine rechteckige Anordnung von Zahlen, die in Zeilen und Spalten angeordnet sind und zur Darstellung eines mathematischen Objekts oder seiner Eigenschaft verwendet werden.

Eine der Operationen, die Sie möglicherweise ausführen müssen, ist die Matrixmultiplikation. Dies findet Anwendung in vielen Bereichen wie Aerodynamikberechnungen, Signalverarbeitung, Bildverarbeitung und seismische Analyse. Aber wie genau multipliziert man Matrizen?

Wie man zwei Matrizen multipliziert

Sie stellen die Ordnung einer Matrix als Produkt aus der Anzahl der Zeilen (m) und der Anzahl der Spalten (n) dar. Um zwei Matrizen zu multiplizieren, muss die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein.

instagram viewer

Wenn Sie zwei Matrizen haben, Matrix A der Ordnung m × n und B der Ordnung n × p, ist die Ordnung der Produktmatrix m × p. Angenommen, Sie haben eine Matrix A mit zwei Zeilen (m) und drei Spalten (n) und eine Matrix B mit drei Zeilen (n) und zwei Spalten (p). Die resultierende Matrix besteht aus zwei Zeilen und zwei Spalten:

Du multiplizierst zwei Matrizen mit dem Skalarprodukt. Um den Wert des ersten Elements der resultierenden Matrix zu erhalten, multiplizieren und addieren Sie die Elemente der ersten Zeile der ersten Matrix und der ersten Zeile der zweiten Matrix elementweise wie folgt:

(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58

In ähnlicher Weise multiplizieren Sie für das zweite Element die erste Zeile der ersten Matrix und die zweite Spalte der zweiten Matrix wie folgt:

(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64

Multiplizieren Sie für das dritte Element die zweite Zeile der ersten Matrix und die erste Spalte der zweiten Matrix wie folgt:

(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139

Multiplizieren Sie für das vierte Element die zweite Zeile der ersten Matrix und die zweite Spalte der zweiten Matrix wie folgt:

(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154

Somit ist die resultierende Matrix:

Sie können verschiedene Programme für verschiedene Operationen auf Matrizen untersuchen und erstellen, wie zum Beispiel:

  • zwei Matrizen addieren und subtrahieren
  • Finden der Transponierten einer Matrix
  • Prüfen, ob zwei Matrizen identisch sind

Ein Algorithmus zum Multiplizieren zweier Matrizen

Befolgen Sie diesen Algorithmus, um das Programm für die Multiplikation zweier beliebiger Matrizen zu erstellen:

  1. Starten Sie das Programm.
  2. Geben Sie die Zeilen und Spalten der ersten Matrix ein.
  3. Geben Sie die Zeilen und Spalten der zweiten Matrix ein.
  4. Wenn die Matrizen für die Multiplikation nicht kompatibel sind, geben Sie einen Fehler aus und beenden Sie.
  5. Definieren Sie eine Matrix und tragen Sie die Zahlen in die erste Matrix ein.
  6. Definieren Sie eine weitere Matrix und tragen Sie die Zahl in die zweite Matrix ein.
  7. Definieren Sie eine Matrix, um das Ergebnis der Multiplikation der beiden Matrizen zu speichern.
  8. Legen Sie eine Schleife fest, um über die Zeile der ersten Matrix zu iterieren.
  9. Richten Sie eine innere Schleife ein, um über die Spalte der zweiten Matrix zu iterieren.
  10. Legen Sie eine weitere innere Schleife fest, um über die Spalte der ersten Matrix zu iterieren.
  11. Multiplizieren und addieren Sie die Elemente mithilfe der Formel mul[i][j] += m1[i][k] * m2[k][j] und das Ergebnis der Multiplikation in der resultierenden Matrix zu speichern.
  12. Zeigen Sie die resultierende Matrix an.
  13. Beenden Sie das Programm.

So führen Sie eine Matrixmultiplikation mit C durch

Darin ist der gesamte Quellcode für die Matrixmultiplikation mit C enthalten GitHub-Repository und ist kostenlos nutzbar.

Importieren Sie die stdio-Bibliothek, um Zahlen einzugeben, und zeigen Sie die Ausgabe entsprechend an. Deklarieren Sie die hauptsächlich Funktion und bitten Sie den Benutzer, die Anzahl der Spalten und die Anzahl der Zeilen für beide Matrizen mit einzugeben drucken() Funktion.

Verwenden Sie die scanf() Funktion zum Empfangen von Eingaben. %D ist der Dezimalformatbezeichner, der sicherstellt, dass das Programm die Eingabe als Zahl liest.

#enthalten
#enthalten

inthauptsächlich()
{
int r1, r2, c1, c2;

Druckf("Geben Sie die Anzahl der Zeilen ein für die erste Matrix:\n");
Scanf("%d", &r1);

Druckf("Geben Sie die Anzahl der Spalten ein für die erste Matrix:\n");
Scanf("%d", &c1);

Druckf("Geben Sie die Anzahl der Zeilen ein für die zweite Matrix:\n");
Scanf("%d", &r2);

Druckf("Geben Sie die Anzahl der Spalten ein für die zweite Matrix:\n");
Scanf("%d", &c2);

Überprüfen Sie, ob eine Matrixmultiplikation möglich ist. Wenn die Anzahl der Spalten der ersten Matrix nicht gleich der Anzahl der Zeilen der zweiten Matrix ist, wird ein Fehler angezeigt und beendet.

wenn (c1 != r2) {
printf("Die Matrizen können nicht miteinander multipliziert werden");
Ausfahrt(-1);
}

Wenn alles gut ist, definieren Sie zwei mehrdimensionale Arrays, m1 Und m2, mit der Größe, die der Benutzer angegeben hat. Bitten Sie den Benutzer, die Elemente beider Matrizen nacheinander einzugeben. Verwenden Sie eine verschachtelte für Schleife, um die Eingabe sowohl für die Zeile als auch für die Spalte der Matrix zu übernehmen. Die äußere for-Schleife iteriert über die Zeilen der Matrix und die innere Schleife über die Spalte der Matrix.

intm1[r1][c1], m2[r2][c2];
printf("Geben Sie die Elemente der ersten Matrix\n ein");

für (int ich = 0; ich < r1; i++) {
für (int j = 0; j < c1; j++) {
scanf("%D", &m1[i][j]);
}
}

printf("Geben Sie die Elemente der zweiten Matrix\n ein");

für (int ich = 0; ich < r2; i++) {
für (int j = 0; j < c2; j++) {
scanf("%D",&m2[i][j]);
}
}

Definiere eine dritte Matrix, Mul, der Ordnung r1 * c2, um das Ergebnis zu speichern. Verwenden Sie eine verschachtelte für Schleife, um die Multiplikation durchzuführen. Die äußerste for-Schleife durchläuft die Zeilen, die nächste innere Schleife durchläuft die Spalten und die innerste führt die Multiplikation durch. Verwenden Sie die Formel mul[i][j] += m1[i][k] * m2[k][j] um die Elemente der Matrix zu multiplizieren.

Die Formel verwendet den Kurzschreiboperator += hinzufügen mul[i][j] zum berechneten Ausdruck und speichern Sie ihn. Denken Sie daran, das Ergebnis auf Null zu initialisieren, bevor Sie es addieren.

intMul[r1][c2];

für (int ich = 0; ich < r1; i++) {
für (int j = 0; j < c2; j++) {
mul[i][j] = 0;

für (int k = 0; k < c1; k++) {
mul[i][j] += m1[i][k] * m2[k][j];
}
}
}

Zeigen Sie die multiplizierte Matrix mit einer verschachtelten for-Schleife an, die über die Zeilen und Spalten der resultierenden Matrizen iteriert. Verwenden Sie das Zeilenumbruchzeichen (\n), um jede der Zeilen in einer separaten Zeile anzuzeigen. Geben Sie 0 zurück, um die Hauptfunktion und das Programm zu verlassen.

Druckf("Die multiplizierte Matrix ist: \n");

für (int ich = 0; ich < r1; i++) {
für (int j = 0; j < c2; j++) {
Druckf("%d\t", mul[i][j]);
}

Druckf("\N");
}

zurückkehren0;
}

Die Ausgabe des Matrixmultiplikationsprogramms

Sie sollten etwa die folgende Ausgabe sehen, wenn Sie das Matrixmultiplikationsprogramm ausführen:

Wenn Sie eine ungültige Eingabe eingeben, schlägt die Matrixmultiplikation fehl und Sie sehen etwa Folgendes:

Matrizen haben viele Verwendungen

Verschiedene Bereiche verwenden Matrizen wie Wissenschaft, Handel, Wirtschaft, Geologie, Robotik und Animation. Matrizen verwenden Sie hauptsächlich in der Mathematik, um lineare Gleichungen zu lösen und Transformationen wie Rotation oder Translation darzustellen. Matrizen können die Menge an Reflexion und Brechung berechnen sowie Wechselstromnetzgleichungen in elektrischen Schaltkreisen lösen.

Abgesehen von Bildungsanwendungen können Sie Matrizen für die Analyse von Umfragedaten, Abstimmungsdaten, Berechnungslisten und anderen Datensätzen verwenden.