No meu codigo fazendo testes para achar erro descobri que em uma das operações matematicas que este faz lança um resultado na posição matriz[1][2] = -0.0 !!!
Mas como pode ocorrer um -0.0??? Vou passar o codigo. Por favor copilem!
class Gauss {
public static void main(String [] uix){
int n = 3;
int n1 = n+1;
//double [][] matriz = {{1,1,42},{1,-1,8}};
//double [][] matriz = {{1,2,9},{7,1,9}};// ACHA A CORRETA
//double [][] matriz = {{5.0,-2.0,11.0},{6.0,1.0,20.0}};// ACHA A CORRETA
double [][] matriz = {{2.0,2.0,2.0,20},{2.0,-2.0,2.0,8},{2,-2,(-2),0}}; //ERRADO
//double [][] matriz = {{10.0,5.0,3.0,17.0},{5.0,8.0,2.0,19},{2.0,3.0,8.0,0.0}}; //ERRADO
//double [][] matriz = {{2.0,-1.0,3.0,0},{4.0,2.0,-1.0,0},{1.0,-1.0,2.0,0}}; // ACHA UM -0.0????
double [] solucoes;
//----- VERIFICA ELEMENTOS NA MATRIZ -------
System.out.println("VERIFICA ELEMENTOS NA MATRIZ ");
for(int i = 0; i<n; i++){
for(int j = 0; j<=matriz.length; j++)
System.out.println(matriz[i][j]);
}
System.out.println();
System.out.println();
System.out.println("--- CALCULO DO 1º LAÇO -----");
//--- CALCULO DO 1º LAÇO -----
solucoes = new double[n];
for(int k = 0; k<n-1; k++ ){
double mkk = matriz[k][k];
for(int j = k; j<n1; j++){
matriz[k][j]= matriz[k][j]/mkk;
//System.out.println(matriz[k][j]);
/*if(j==n1-1)
for(int p = 0; p<=matriz.length; p++)
System.out.println(matriz[k+1][p]);*/
}
for(int i = k+1; i<n; i++){
double cond = matriz[i][k];
for(int j=k; j<n1; j++){
matriz[i][j]= (matriz[i][j]) - (cond * matriz[k][j]);
//System.out.println(matriz[1][j]);
/*if(i==2){
System.out.println("-------->>> M22"+matriz[0][2]);
System.out.println("-------->>> cond "+ cond);
}*/
}
}
}
/*
matriz[n-1][n1-1] = matriz[n-1][n1-1]/matriz[n-1][n-1];
System.out.println("--- VALOR EM N-1,N1-1 -----"+matriz[n-1][n1-1]);
matriz[n-1][n-1] = 1;
System.out.println("--- VALOR EM N-1,N-1 -----"+matriz[n-1][n-1]);
solucoes[n-1] = matriz[n-1][n1-1];
System.out.println();
System.out.println("--- CALCULANDO AS SOLUÇÕES ----");
for(int i = 0; i<n-1; i++){
int k = n-i-1;
solucoes[k-1] = matriz[k-1][n1-1];
for(int j = k+1; j<=n; j++){
solucoes[k-1] = solucoes[k-1] - ( matriz[i][j-1] * solucoes[j-1]);
System.out.println(solucoes[k-1]);
}
}
for(int i = 0; i<solucoes.length; i++)
System.out.println("Soluções "+ solucoes[i]);
*///VARRENDO A NOVA MATRIZ
System.out.println();
System.out.println("--- VARRENDO A NOVA MATRIZ ----");
for(int i = 0; i<n; i++){
for(int j = 0; j<=matriz.length; j++)
System.out.println(matriz[i][j]);
}
}
}