No es un bug, es una característica no documentada

domingo, 16 de noviembre de 2014

Programación. Estructura de datos estáticos (III)

0:08 Posted by Inazio , No comments
Operaciones con matrices

Matriz determinante

Para hallar el determinante de una matriz, en este caso de 3x3, usaremos el método Sarrus.

Esto significa que duplicaremos las columnas 1 y 2 (o 0 y 1 en vectores), y multiplicaremos en diagonal.


Es decir, dada esta matriz


Realizaremos las operaciones 1 a 6:


Que traducido a operaciones matemáticas sería


Y posteriormente realizamos la suma de 1+2+3+4+5+6 (o si no hemos cambiado de signo como indico en la segunda imagen, hacemos 1+2+3-4-5-6. El resultado es el determinante de esa matriz.

Matriz adjunta

De nuevo, pensaremos en una matriz de 3x3. Por ejemplo:


Lo primero será hallar el menor complementario de la matriz. Esto se halla, por cada campo de la matriz, incluir todos los campos que no están en esa fila y en esa columna.

Es decir, de A11, el menor complementario para operar es:


Veamos toda la matriz con  menores complementarios


Ahora, por cada menor complementario calcularemos su determinante, que se halla haciendo (a*d) – (b*c), lo que sería igual a :

(A22*A33) – (A32*A23)

Y eso con todos los complementarios.

Por ultimo ya obtenido el determinante de dicho calculo, si la suma de fila+columna es igual a un número impar, multiplicaremos el resultado por -1

En este caso, por ejemplo:
A11=(A22*A33) – (A32*A23)
A12=((A21*A33) – (A31*A23)) * -1

Matriz inversa

La forma de calcular inversas es a través del cálculo de determinantes. La fórmula para el cálculo es


Siendo:


Por lo tanto, las operaciones que debemos realizar son:
  1. Calcular el determinante de la matriz
  2. Hallar la matriz adjunta
  3. Calcular la traspuesta de la matriz adjunta
  4. Multiplicar el inverso del valor determinante por la matriz traspuesta de la adjunta


Para comprobar que se ha realizado correctamente, podemos hacerlo calculando su matriz identidad. ¿Cómo se hace?

Matriz inversa

Necesitamos una matriz que contenga estos valores


Y multiplicaremos nuestra matriz, en este ejemplo la M, por la matriz I, de la siguiente manera:


Es decir, para dar valor a la posición 1,1 ([0,0] en informática), haremos lo siguiente:

(M11*I11)+(M12*I21)+(M13*I31) // En este ejemplo, =2

Posición 1,2:
(M11*I12)+(M12*I22)+(M13*I32)

Posición 1,3:
(M11*I13)+(M12*I23)+(M13*I33)

Y así con todas las filas de la matriz M, hasta completar el recorrido.

Posteriormente, si el resultado de estas operaciones es idéntico al de nuestra matriz M, sabremos que la operación de la matriz inversa ha sido correcta.

0 comentarios:

Publicar un comentario