Multiplication de matrice avec deux matrices
Pour multiplier deux matrices, vous devez suivre certaines règles. Premièrement, le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la seconde matrice. Deuxièmement, la matrice résultante aura le même nombre de lignes que la première matrice et le même nombre de colonnes que la seconde matrice.
Supposons que nous ayons deux matrices :
A = {{1, 3, 5},
{4, 2, 6}};
B = {{7, 4},
{3, 1},
{6, 9}};
Pour multiplier ces deux matrices, nous allons effectuer un produit scalaire sur leurs lignes et colonnes. Les éléments des matrices sont multipliés en utilisant la formule suivante :
result[row][col] = matrix1[row][0] * matrix2[0][col]
+ matrix1[row][1] * matrix2[1][col]
+ matrix1[row][2] * matrix2[2][col]
+...;
Voici un programme C sur la multiplication de matrices :
#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
// définir deux matrices
int first[10][10], second[10][10], result[10][10];
// entrer le nombre de lignes et de colonnes de la première matrice
printf("Entrez le nombre de lignes et de colonnes de la première matrice :\n");
scanf("%d %d", &m, &n);
// entrer les éléments de la première matrice
printf("Entrez les %d éléments de la première matrice :\n", m * n);
for (c = 0; c < m; c++) {
for (d = 0; d < n; d++) {
scanf("%d", &first[c][d]);
}
}
// entrer le nombre de lignes et de colonnes de la seconde matrice
printf("Entrez le nombre de lignes et de colonnes de la seconde matrice :\n");
scanf("%d %d", &p, &q);
// entrer les éléments de la seconde matrice
printf("Entrez les %d éléments de la seconde matrice :\n", p * q);
for (c = 0; c < p; c++) {
for (d = 0; d < q; d++) {
scanf("%d", &second[c][d]);
}
}
// vérifier si les matrices peuvent être multipliées
if (n!= p) {
printf("Les matrices ne peuvent pas être multipliées l'une par l'autre.\n");
} else {
// multiplier les matrices
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
for (k = 0; k < p; k++) {
sum = sum + first[c][k] * second[k][d];
}
result[c][d] = sum;
sum = 0;
}
}
// afficher la matrice résultante
printf("La matrice résultante est :\n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
printf("%d\t", result[c][d]);
}
printf("\n");
}
}
return 0;
}
Le programme demandera à l'utilisateur d'entrer les éléments de deux matrices, vérifiera s'ils peuvent être multipliés, les multipliera si possible et affichera la matrice résultante.