Matrixvermenigvuldiging
Veeg om het menu te tonen
Matrixvermenigvuldiging is een fundamentele bewerking in de wiskunde en programmeren, vooral bij het werken met 2D-arrays, ook wel matrices genoemd. Om twee matrices te vermenigvuldigen, moeten specifieke regels worden gevolgd: het aantal kolommen in de eerste matrix moet gelijk zijn aan het aantal rijen in de tweede matrix. Het resultaat van het vermenigvuldigen van een m x n matrix met een n x p matrix is een nieuwe m x p matrix. Elk element in de resulterende matrix wordt berekend door het nemen van het inwendig product van een rij uit de eerste matrix en een kolom uit de tweede matrix.
MatrixMultiplication.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758using System; namespace ConsoleApp { public class MatrixMultiplication { public static void Main(string[] args) { int[,] matrixA = { {1, 2, 3}, {4, 5, 6} }; int[,] matrixB = { {7, 8}, {9, 10}, {11, 12} }; int rowsA = matrixA.GetLength(0); int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); int colsB = matrixB.GetLength(1); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: incompatible matrix sizes."); return; } int[,] result = new int[rowsA, colsB]; for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { int sum = 0; for (int k = 0; k < colsA; k++) { sum += matrixA[i, k] * matrixB[k, j]; } result[i, j] = sum; } } Console.WriteLine("Result of matrix multiplication:"); for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { Console.Write(result[i, j] + " "); } Console.WriteLine(); } } } }
Om te begrijpen hoe matrixvermenigvuldiging werkt, volg deze stappen op basis van de bovenstaande code:
- Controleer de afmetingen: de eerste matrix (
matrixA) heeft 3 kolommen en de tweede matrix (matrixB) heeft 3 rijen, wat betekent dat vermenigvuldiging mogelijk is; - Maak een resultaatmatrix met evenveel rijen als
matrixAen evenveel kolommen alsmatrixB; - Gebruik drie geneste lussen:
- De buitenste lus doorloopt elke rij van de eerste matrix;
- De middelste lus doorloopt elke kolom van de tweede matrix;
- De binnenste lus berekent de som van producten voor de huidige rij en kolom, waarbij overeenkomstige elementen worden vermenigvuldigd en opgeteld;
- Wijs de berekende waarde toe aan de juiste cel in de resultaatmatrix;
- Druk het resultaat af in een leesbaar formaat.
IncompatibleMatrices.cs
12345678910111213141516171819202122232425262728293031using System; namespace ConsoleApp { public class IncompatibleMatrices { public static void Main(string[] args) { int[,] matrixA = { {1, 2}, {3, 4} }; int[,] matrixB = { {5, 6, 7} }; int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: the number of columns in the first matrix does not match the number of rows in the second matrix."); return; } // This code will not be reached because the matrices are incompatible. } } }
Dit voorbeeld controleert of twee matrices met elkaar vermenigvuldigd kunnen worden. Het definieert matrixA (2×2) en matrixB (1×3), en vergelijkt vervolgens het aantal kolommen in de eerste matrix met het aantal rijen in de tweede. Omdat deze waarden niet overeenkomen, geeft het programma een incompatibiliteitsmelding en stopt. Dit toont aan hoe matrixdimensies gevalideerd kunnen worden voordat vermenigvuldiging wordt uitgevoerd.
Matrixvermenigvuldiging is het proces waarbij twee matrices worden gecombineerd om een nieuwe matrix te vormen door rijen van de eerste matrix te vermenigvuldigen met kolommen van de tweede matrix en de producten op te tellen.
1. Wat zijn de vereisten voor het vermenigvuldigen van twee matrices?
2. Hoeveel geneste lussen zijn er doorgaans nodig voor matrixvermenigvuldiging?
3. Wat gebeurt er als de matrices onverenigbare afmetingen hebben?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.