domingo, 3 de mayo de 2009

Matriz Inversa

public class Matriz {

int numeroFilas;

int numeroColumnas;

double [][] matriz;

public Matriz(){}

public Matriz(int nF, int nC){

numeroFilas=nF;

numeroColumnas=nC;

matriz= new double[numeroFilas][numeroColumnas];

for(int i=0; i<>

for(int j=0; j<>

matriz[i][j]=0;

}

public String imprimir(){

String aux = "";

for(int i=0; i

for(int j=0; j

aux= aux + matriz[i][j] + " ";

}

aux = aux + "\n";

}

return aux;

}

public Matriz inversa(){

Matriz result=new Matriz(this.numeroFilas,this.numeroColumnas);

double tmp;

Matriz I=new Matriz(this.numeroFilas,this.numeroColumnas*2);

for(int i=0;i

for(int j=0;j

I.matriz[i][j]=0.0;

for(int i=0;i

for(int j=0;j

I.matriz[i][j]=this.matriz[i][j];

if (i==j)

I.matriz[i][j+this.numeroFilas]=1.0;

}

}

for(int i=0;i

tmp=I.matriz[i][i];

for(int j=0;j<(this.numeroColumnas*2);j++)

I.matriz[i][j]/=tmp;

for(int k=0;k

if(k!=i){

tmp=I.matriz[k][i];

for(int j=0;j<(this.numeroColumnas*2);j++)

I.matriz[k][j]-=tmp*I.matriz[i][j];

}

}

}

for(int i=0;i

for(int j=0;j

result.matriz[i][j]=I.matriz[i][j+this.numeroColumnas];

return result;

}

}

public static void main(String args[]){

Matriz m= new Matriz(2, 2);

m.matriz[0][0]=1; m.matriz[0][1]=-1;

m.matriz[1][0]=2; m.matriz[1][1]=1;

System.out.println(m.imprimir());

System.out.println("La inversa de m es:\n");

System.out.println(m.inversa().imprimir());

}

}

1 comentario: