Multiplication de matrices
Glissez pour afficher le menu
La multiplication de matrices est une opération fondamentale en mathématiques et en programmation, en particulier lors de la manipulation de tableaux 2D, également appelés matrices. Pour multiplier deux matrices, il faut respecter des règles spécifiques : le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la seconde matrice. Le résultat de la multiplication d'une matrice m x n par une matrice n x p est une nouvelle matrice m x p. Chaque élément de la matrice résultante est calculé en effectuant le produit scalaire d'une ligne de la première matrice et d'une colonne de la seconde matrice.
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(); } } } }
Pour comprendre le fonctionnement de la multiplication de matrices, suivez ces étapes en vous basant sur le code ci-dessus :
- Vérifier les dimensions : la première matrice (
matrixA) possède 3 colonnes et la seconde matrice (matrixB) possède 3 lignes, ce qui rend la multiplication possible ; - Créer une matrice résultat ayant autant de lignes que
matrixAet autant de colonnes quematrixB; - Utiliser trois boucles imbriquées :
- La boucle extérieure parcourt chaque ligne de la première matrice ;
- La boucle intermédiaire parcourt chaque colonne de la seconde matrice ;
- La boucle intérieure calcule la somme des produits pour la ligne et la colonne courantes, en multipliant les éléments correspondants puis en les additionnant ;
- Affecter la valeur calculée à la cellule appropriée de la matrice résultat ;
- Afficher le résultat dans un format lisible.
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. } } }
Cet exemple vérifie si deux matrices peuvent être multipliées. Il définit matrixA (2×2) et matrixB (1×3), puis compare le nombre de colonnes de la première matrice avec le nombre de lignes de la seconde. Comme ces valeurs ne correspondent pas, le programme affiche un message d'incompatibilité et s'arrête. Cela montre comment valider les dimensions des matrices avant d'effectuer une multiplication.
La multiplication de matrices est le processus consistant à combiner deux matrices pour produire une nouvelle matrice en multipliant les lignes de la première matrice par les colonnes de la seconde matrice et en additionnant les produits.
1. Quelles sont les conditions requises pour multiplier deux matrices ?
2. Combien de boucles imbriquées sont généralement nécessaires pour la multiplication de matrices ?
3. Que se passe-t-il si les matrices ont des tailles incompatibles ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion