Professional Documents
Culture Documents
EL trato de excepciones que quieran manejar lo dejo a su criterio. Este documento slo mostrar la realizacin del mtodo de manera matemtica, agregando ese toque de curiosidad al usar recursividad. Espero les sea til. (No olviden el nombre del paquete y de la clase).
package com.determinante.matriz; public class MatrizDeterminante { public static Double getDeterminante(Double[][] matriz){ final int cero = 0; final int uno = 1; final int dos = 2; Double det = new Double(cero); for(int i = cero; i < matriz[cero].length; i++){ Double indice = Math.pow(-uno, i) * matriz[cero][i]; Double[][] subMatriz = new Double[ matriz[cero].length uno][matriz[cero].length - uno]; for(int j = uno; j < matriz[cero].length; j++){ int m = cero; for(int k = cero; k < matriz[cero].length; k++){ if(k != i){ subMatriz[j-uno][m] = matriz[j][k]; m++; } } } if(dos == matriz[cero].length){ Double detAux; detAux = (matriz[cero][cero] * matriz[uno][uno]) (matriz[cero][uno] * matriz[uno][cero]); return detAux; }else{ det += indice * getDeterminante(subMatriz); } } return det; } public static void main(String... args){ Double[][] matriz = new Double[3][3]; matriz[0][0] = 1.0; matriz[0][1] = 2.0; matriz[0][2] = 3.0; matriz[1][0] = 6.0; matriz[1][1] = 1.0; matriz[1][2] = 3.0; matriz[2][0] = 4.0;
// // // // // } }
matriz[2][1] = 2.0; matriz[2][2] = 3.0; Double[][] matriz = new Double[2][2]; matriz[0][0] = 1.0; matriz[0][1] = 2.0; matriz[1][0] = 6.0; matriz[1][1] = 1.0; System.out.println(getDeterminante(matriz));