Ir al contenido

Matriz Simétrica con Java

En este ejemplo vamos a calcular una matriz simétrica con Java. Una matriz simétrica es aquella donde la matriz es igual a la matriz transpuesta.

Una matriz es simétrica cuando es igual a su transpuesta. Es decir, cuando:

$$ A = A^t $$

Así que lo primero que tenemos que saber es cómo calcular la matriz transpuesta con Java (At). Es decir, convertir sus filas en columnas. Hemos creado una clase Matriz.java la cual contiene múltiples operaciones. Entre las cuales encontrarás la de transponer una matriz con Java.

public static int[][] transponer(int[][] m) {
int[][] mt = new int[m[0].length][m.length];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
mt[j][i] = m[i][j];
}
}
return mt;
}

Creamos la matriz de la cual queremos saber si es simétrica.

int[][] m1 = {{1, 2, 3}, {2, 4, 5}, {3, 5, 6}};

E invocamos para obtener la matriz transpuesta el método anterior:

int[][] m2 = Matriz.transponer(m1);

Ahora tendremos que comparar si m1 y m2 son iguales. Para ello recuerda que no podemos utilizar ni el operador igual ni el método equals. Si no que tenemos que utilizar el método .deepEquals.

if (Arrays.deepEquals(m1, m2)) {
System.out.println("La matriz es simétrica");
} else {
System.out.println("La matriz no es simétrica");
}

En nuestra clase Matriz.java también hemos creado este método que podrás utilizar. Así que lo último que hacemos para saber si es una matriz simétrica con Java será compararlas.

if (Matriz.esIgual(m1, m2)) {
System.out.println("La matriz es simétrica");
}
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Matriz Simétrica con Java

Código que nos calcula si tenemos una matriz simétrica con Java. Ayuda con el cálculo para transponer una matriz.

Descargar código
Pon a prueba tu conocimiento
Arrays en Java

¿Cuál de las siguientes opciones inicializa correctamente un array de String con 3 elementos?

  • A String[] nombres = {"Ana", "Luis", "Carlos"};
  • B String nombres[] = new String[3] {"Ana", "Luis", "Carlos"};
  • C String nombres = ["Ana", "Luis", "Carlos"];
  • D String[] nombres = new String(3);