Multiplicación de Matrices
Desliza para mostrar el menú
La multiplicación de matrices es una operación fundamental en matemáticas y programación, especialmente al trabajar con arreglos bidimensionales, también llamados matrices. Para multiplicar dos matrices, se deben seguir reglas específicas: el número de columnas de la primera matriz debe ser igual al número de filas de la segunda matriz. El resultado de multiplicar una matriz de m x n por una matriz de n x p es una nueva matriz de m x p. Cada elemento en la matriz resultante se calcula tomando el producto punto de una fila de la primera matriz y una columna de la segunda matriz.
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(); } } } }
Para comprender cómo funciona la multiplicación de matrices, sigue estos pasos basados en el código anterior:
- Verifica las dimensiones: la primera matriz (
matrixA) tiene 3 columnas y la segunda matriz (matrixB) tiene 3 filas, lo que significa que la multiplicación es posible; - Crea una matriz de resultado con tantas filas como
matrixAy tantas columnas comomatrixB; - Utiliza tres bucles anidados:
- El bucle externo itera sobre cada fila de la primera matriz;
- El bucle intermedio itera sobre cada columna de la segunda matriz;
- El bucle interno calcula la suma de productos para la fila y columna actuales, multiplicando los elementos correspondientes y sumándolos;
- Asigna el valor calculado a la celda correspondiente en la matriz de resultado;
- Imprime el resultado en un formato legible.
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. } } }
Este ejemplo verifica si dos matrices pueden multiplicarse. Define matrixA (2×2) y matrixB (1×3), luego compara el número de columnas de la primera matriz con el número de filas de la segunda. Como estos valores no coinciden, el programa imprime un mensaje de incompatibilidad y se detiene. Demuestra cómo validar las dimensiones de las matrices antes de realizar la multiplicación.
Multiplicación de matrices es el proceso de combinar dos matrices para producir una nueva matriz multiplicando las filas de la primera matriz por las columnas de la segunda matriz y sumando los productos.
1. ¿Cuáles son los requisitos para multiplicar dos matrices?
2. ¿Cuántos bucles anidados se necesitan normalmente para la multiplicación de matrices?
3. ¿Qué sucede si las matrices tienen tamaños incompatibles?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla