Artículos
Java

Matriz Antisimétrica en Java

17/Ago/2015

Una matriz antisimétrica es aquella cuya matriz transpuesta es igual a la matriz negativa. Es decir, que cumple:

At = -A

Es por ello que para poder calcular si una matriz es antisimétrica en Java deberíamos de saber como calcular la matriz transpuesta y como calcular la matriz negativa.

Lo primero será obtener la matriz transpuesta. Para ello hay que cambiar las filas por columnas:

int[][] nuevaMatriz = new int[matriz[0].length][matriz.length];
		
for (int x=0; x < matriz.length; x++) {
  for (int y=0; y < matriz[x].length; y++) {
    nuevaMatriz[y][x] = matriz[x][y];
  }
}

Vemos que lo que hacemos es recorrer toda la matriz mediant dos bucles anidados y finalmente asignar el valor de lo que encontremos en x,y a la posición y,x.

Para generar la matriz negativa vamos a realizar la misma operación con los dos bucles anidados. Lo único que en este caso lo que hacemos es invertir el signo del elemento que se encuentre en la posición x,y

for (int x=0; x < m.length; x++) {
  for (int y=0; y < m[x].length; y++) {
    m[x][y] = -m[x][y];
  }
}

Ya solo nos quedará comparar las dos matrices. Hay que recordar que para comparar matrices no nos vale el método equals, si no que deberemos de utilizar el método deepEquals de la clase Arrays

if (Arrays.deepEquals(mn, mt))
  System.out.println("Es una Matriz Antisimétrica");
else
  System.out.println("No es una Matriz Antisimétrica");

Para ayudar a calcular una matriz Antisimétrica en http://www.manualweb.net/tutorial-java/ hemos publicado una clase Matriz.java en la que dispones de múltiples métodos para el manejo de matrices. En ella encontraras los métodos transponer(), negativa() y equals(). Así que puedes calcular si una matriz es antisimética en Java invocándolos a los tres.

int[][] m = {{0,-2,4},{2,0,2},{-4,-2,0}};

System.out.println("Matriz Inversa");
int[][] mn = Matriz.negativa(m);
		
System.out.println("Matriz Transpuesta");
int[][] mt = Matriz.transponer(m);
		
if (Matriz.equals(mn, mt))
  System.out.println("Es una Matriz Antisimétrica");
else
  System.out.println("No es una Matriz Antisimétrica");

Ahora que más fácil sería invocar al método esAntiSimetrica() en el que ya hemos dispuesto este código y así tendríamos de una forma sencilla el cálculo para saber si tenemos una matriz antisimétrica en Java.

if (Matriz.esAntiSimetrica(m))
  System.out.println("Es una Matriz Antisimétrica");
else
  System.out.println("No es una Matriz Antisimétrica");

Código Fuente

Descárgate el código fuente de Matriz Antisimétrica en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
0 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios