viernes, 4 de mayo de 2007

Producto de matrices.

Producto de matrices.


Comienzo por esto por dos motivos el primero es lo más fácil de entender y explicar y segundo tiene importancia ya que para encontrar la solución a un sistema de ecuaciones lineales de NxN basta multiplicar la inversa de la matriz de las ecuaciones por el vector de los términos independientes.


Multiplicar matrices no es como multiplicar números, por algunos motivos no siempre dos matrices se pueden multiplicar (con los números no nos encontramos con este problema, ni con la multiplicación de una matriz con un numero o escalar, pero este ultimo caso no sera tratado aquí), en caso que esta operación se pueda realizar el resultado no es conmutativo es decir si tenemos dos matrices A y B, A x B <> B x A, es más se pueden presentar casos que si podemos hacer A x B, B x A puede resultar imposible de realizar. Seguramente si aprobaron algún curso de matemática esto no les va a quitar el sueño, pero si no lo aprobaron, lo están cursando y no llegaron a este punto puede ser una sorpresa.


Cual es el motivo de todo esto bueno son las distintas dimensiones de las matrices, es decir la cantidad de filas y columnas que tiene cada matriz es la que decide si se puede hacer o no la operación de multiplicación.


En general tenemos esto C = A x B con un determinado numero de filas y columnas para que se pueda realizar una multiplicación las cosas deben ser así:


C [m,p]= A[m,n] x B[n,p] Como podemos ver si la matriz A no tiene el mismo numero de columnas que filas la matriz B, la operación no podrá ser realizada. No por capricho simplemente por la definición de multiplicación matricial. Como vemos no solo no es conmutativo sino que cada matriz interviniente en la operación puede tener dimensiones distintas.


Bueno y cual es la definición de la multiplicación entre matrices.

C [i,j] = A[i,1] x B[1,j] + A[i,2] x B[2,j] + ................ + A[i, n] x B[n, j]


Ahora queda un poco más claro el propósito del código:

0050 FOR JS=0 TO N1; FOR IS=0 TO M1; FOR TS=0 TO M; LET P[TS,JS]=P[TS,JS]+S[IS,JS]*R[TS,IS]

0060 NEXT TS; NEXT IS; NEXT JS

Que puse en otro post sobre este tema. Donde Ts y Js representan los elementos de la matriz resultado.

No hay comentarios.: