Ok, no hay ningún problema haber te indico:
Código C++:
Ver originalint i=0,k=0,l=0;
int acum=0; //incializamos el acumulador en 0
for(i=0;i<4;i++)
{
for(k=0;k<4;k++)
{
for(l=0;l<4;l++)
{
acum=acum+matrizA[i][l]*matrizB[l][k];
}
matrizR[i][k]=acum;
acum=0;
}
}
i,k y l son solo variables contadores de los for respectivamente todas ellas inicializadas con cero.
como imagino has de saber en la multiplicación de matrices se va multiplicando cada elmento de la fila de una matriz por cada elemento de la columna actual o correspondiente de la otra, y la suma de esos productos es el resultado en la posición actual, así:
|1 2 3 4| |3 4 5 1|
|2 3 1 4| |3 4 1 6|
|3 4 5 7| |5 2 3 1|
|4 3 4 5| |3 6 7 8|
el for(i=0;i<4;i++)
indica que inciamos en la fila cero la primera matriz que es 1 2 3 4 5
entonces vamos al otro for(k=0;k<4;k++)
indicamos de que columna de la otra matriz se trata en este caso de la columna cero:
3
3
5
3
luego vamos al otro for(l=0;l<4;l++)
que nos permitirá recorrer cada elemento de la fila y columna respectivamente, así
con l = 0, i=0, k = 0
tenemos:
acum= acum + matrizA[i][l]*matrizB[l][k]
ya que hay que ir acumulado los valores
con números sería:
acum=acum + 1*3
acum = 3
incremento l=1
acum = acum + 2*3
acum=9
incremento l=2
acum = acum + 3*5
acum=24
incremento l=3
acum = acum + 4*3
acum=36
entonces ese 36 corresponde al primer elemento de la matriz productos
que sería la posición i,k que seria 0,0
y ahora regresamos a for(k=0;k<4;k++)
pero ya k incrementado entonces k = 1
y volvemos a for(l=0;l<4;l++)
tenemos i=0,k=1,l=0
Como se incrementó k nos vamos por la siguiente columna de la matrizB, pero la fila de la matrizA se mantiene, entonces
l=0
acum=acum + 1*4
acum = 4
incremento l=1
acum = acum + 2*4
acum=12
incremento l=2
acum = acum + 3*2
acum=18
incremento l=3
acum = acum + 4*6
acum=42
entonces 42 corresponde al segundo elemento de la matriz de resultado o producto, es decir la posición y i,k que es 0,1
Y así hasta que la primera fila de la matriz A se multiplique por todas la columnas de la matrizB, una vez hecho esto con la primera fila se procede de la misma manera con la siguiente fila de la matriz A la multiplicamos por cada columna de la matrizB, obteniendo de esta manera la matriz producto.
Espero haber sido claro, cualquier duda posteanla.