Documentos de Académico
Documentos de Profesional
Documentos de Cultura
}
//metodo para hacer que los elementos de la diagonal sean unos
}
//función para evitar que matriz[i][i] sea cero, es decir que el pivote no sea cero
public float[] evitarCeros(float[][] matrix,int indice){
int n = matrix.length;
boolean l = false;
while(l==false){
int rand = new Random().nextInt(n);
if(rand!=indice){
for(int i=0;i<this.matriz.length+1;i++){
matrix[indice][i]+=matrix[rand][i];
}
if(matrix[indice][indice]!=0)
l = true;
return matrix[indice];
}
//this.matriz[0].length
int n = this.matriz.length;
int k=1,i=0;
while(k<n){
if(this.matriz[i][i]==0){
this.matriz[i]=evitarCeros(this.matriz, i);
}else if(this.matriz[i][i]!=1){
this.matriz[i] = pivoteUno(this.matriz, i);
}
//que los elementos debajo del pivote sean ceros
for(int j=k;j<n;j++){
for(int g=0;g<this.matriz.length+1;g++){
this.matriz[j][g] -= matriz[j][i]*matriz[i][g];
}
}
k+=1;
i+=1;
}
//mismo proceso pero que los elementos arriba del pivote se hagan ceros
k=n-2;
i=n-1;
while(i>=0){
for(int j=k;j>-1;j--){
for(int g=0;g<this.matriz.length+1;g++){
this.matriz[j][g] = this.matriz[j][g] - matriz[j][i]*matriz[i][g];
}
}
k-=1;
i-=1;
}
String re = "";
for( i=0;i<n;i++){
for(int j=0;j<this.matriz.length+1;j++){
re+=" "+this.matriz[i][j];
}
re+= "\n";
}
System.out.println(re);
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
float[][] m = {{4,2,1,5,6},{1,2,3,3,7},{5,0,1,7,4},{5,4,2,1,7}};