Las matrices juegan un papel vital en muchos campos diversos, incluidos los gráficos por computadora, la criptografía y la comunicación inalámbrica. Una matriz es una matriz rectangular de números dispuestos en filas y columnas, que se utiliza para representar un objeto matemático o su propiedad.
Una de las operaciones que podría necesitar realizar con ellos es la multiplicación de matrices. Esto encuentra usos en muchas áreas, como cálculos aerodinámicos, procesamiento de señales, procesamiento de imágenes y análisis sísmico. Pero, ¿exactamente cómo se multiplican las matrices?
Cómo multiplicar dos matrices
El orden de una matriz se representa como el producto del número de filas (m) y el número de columnas (n). Para multiplicar dos matrices, el número de columnas de la primera matriz debe ser igual al número de filas de la segunda matriz.
Si tienes dos matrices, matriz A de orden m × n y B de orden n × p, el orden de la matriz producto será m × p. Por ejemplo, suponga que tiene una matriz A que contiene dos filas (m) y tres columnas (n) y una matriz B que contiene tres filas (n) y dos columnas (p). La matriz resultante constará de dos filas y dos columnas:
Multiplicas dos matrices usando el producto escalar. Para obtener el valor del primer elemento de la matriz resultante, multiplique y sume los elementos de la primera fila de la primera matriz y la primera fila de la segunda matriz elemento por elemento como:
(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58
De manera similar, para el segundo elemento, multiplique la primera fila de la primera matriz y la segunda columna de la segunda matriz como:
(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64
Para el tercer elemento, multiplique la segunda fila de la primera matriz y la primera columna de la segunda matriz como:
(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139
Para el cuarto elemento, multiplique la segunda fila de la primera matriz y la segunda columna de la segunda matriz como:
(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154
Por lo tanto, la matriz resultante es:
Puede explorar y construir diferentes programas para diferentes operaciones en matrices como:
- suma y resta de dos matrices
- encontrar la transpuesta de una matriz
- comprobar si dos matrices son idénticas
Un algoritmo para multiplicar dos matrices
Siga este algoritmo para construir el programa para la multiplicación de dos matrices cualesquiera:
- Comience el programa.
- Ingrese las filas y columnas de la primera matriz.
- Ingrese las filas y columnas de la segunda matriz.
- Si las matrices son incompatibles para la multiplicación, imprime un error y sale.
- Defina una matriz e ingrese los números en la primera matriz.
- Defina otra matriz e ingrese el número en la segunda matriz.
- Defina una matriz para almacenar el resultado de la multiplicación de las dos matrices.
- Establezca un ciclo para iterar sobre la fila de la primera matriz.
- Configure un ciclo interno para iterar sobre la columna de la segunda matriz.
- Establezca otro ciclo interno para iterar sobre la columna de la primera matriz.
- Multiplica y suma los elementos usando la fórmula mul[i][j] += m1[i][k] * m2[k][j] y almacenar el resultado de la multiplicación en la matriz resultante.
- Muestre la matriz resultante.
- Salga del programa.
Cómo realizar la multiplicación de matrices usando C
El código fuente completo para la multiplicación de matrices usando C está presente en este repositorio GitHub y es de uso gratuito.
Importe la biblioteca stdio para ingresar números y muestre la salida en consecuencia. declarar el principal función y pídale al usuario que ingrese el número de columnas y el número de filas para ambas matrices usando el imprimir() función.
Utilizar el escanear() Función para recibir entrada. %d es el especificador de formato decimal que asegura que el programa lea la entrada como un número.
#incluir
#incluirEn tprincipal()
{
En t r1, r2, c1, c2;
imprimir("Ingrese el número de filas para la primera matriz:\n");
escanear("%d", &r1);
imprimir("Ingrese el número de columnas para la primera matriz:\n");
escanear("%d", &c1);
imprimir("Ingrese el número de filas para la segunda matriz:\n");
escanear("%d", &r2);
imprimir("Ingrese el número de columnas para la segunda matriz:\n");
escanear("%d", &c2);
Comprueba que la multiplicación de matrices es posible. Si el número de columnas de la primera matriz no es igual al número de filas de la segunda matriz, muestra un error y sale.
si (c1 != r2) {
imprimirf("Las matrices no se pueden multiplicar juntas");
salida(-1);
}
Si todo está bien, defina dos matrices multidimensionales, m1 y m2, con el tamaño que el usuario proporcionó. Pida al usuario que ingrese los elementos de ambas matrices uno por uno. Utilice un anidado para loop para tomar la entrada tanto para la fila como para la columna de la matriz. El ciclo for externo itera sobre las filas de la matriz y el ciclo interno sobre la columna de la matriz.
En tm1[r1][c1], m2[r2][c2];
imprimirf("Introduzca los elementos de la primera matriz\n");para (En t yo = 0; yo < r1; i++) {
para (En t j = 0; j escanear("%d", &m1[i][j]);
}
}
imprimirf("Introduzca los elementos de la segunda matriz\n");
para (En t yo = 0; yo < r2; i++) {
para (En t j = 0; j
}
}
Defina una tercera matriz, Mul, de orden r1 * c2 para almacenar el resultado. Utilice un anidado para bucle para realizar la multiplicación. El bucle for más externo itera sobre las filas, el siguiente bucle interno itera sobre las columnas y el más interno realiza la multiplicación. Usa la fórmula mul[i][j] += m1[i][k] * m2[k][j] para multiplicar los elementos de la matriz.
La fórmula utiliza el operador abreviado += agregar mu[i][j] a la expresión calculada y almacenarla. Recuerde inicializar el resultado a cero antes de agregarlo.
En tMul[r1][c2];para (En t yo = 0; yo < r1; i++) {
para (En t j = 0; j mu[i][j] = 0;
para (En t k = 0; k
}
}
}
Muestra la matriz multiplicada usando un bucle for anidado que itera sobre las filas y columnas de las matrices resultantes. Utilice el carácter de nueva línea (\n) para mostrar cada una de las filas en una línea separada. Retorna 0 para salir de la función principal y del programa.
imprimir("La matriz multiplicada es: \n"); para (En t yo = 0; yo < r1; i++) {
para (En t j = 0; j imprimir("%d\t", mul[i][j]);
}
imprimir("\norte");
}
devolver0;
}
El resultado del programa de multiplicación de matrices
Debería ver algo como el siguiente resultado cuando ejecute el programa de multiplicación de matrices:
Si ingresa una entrada no válida, la multiplicación de matrices falla y verá algo como esto:
Las matrices tienen muchos usos
Varios campos usan matrices como ciencia, comercio, economía, geología, robótica y animación. Principalmente usarás matrices en matemáticas para resolver ecuaciones lineales y representar transformaciones como rotación o traslación. Las matrices pueden calcular la cantidad de reflexión y refracción, así como resolver ecuaciones de red de CA en circuitos eléctricos.
Además de las aplicaciones educativas, puede usar matrices para el análisis de datos de encuestas, datos de votaciones, listas de elementos de cálculo y otros conjuntos de datos.