int numfilas;
int numcolum;
double [][] matriz;
public Matriz (){}
public Matriz(int nF, int nC){
numfilas= nF;
numcolum= nC;
matriz= new double[numfilas][numcolum];
for(int i=0;i
}
public String imprimir(){
String aux = "";
for(int i=0; i
}
aux= aux +"\n";
}
return aux;
}
public Matriz suma(Matriz B){
if ((this.numfilas == B.numfilas)&(this.numcolum == B.numcolum)){
Matriz r = new Matriz(this.numfilas,this.numcolum);
int j;
for(int i=0; i
return r;
}
else{
Matriz r = new Matriz (1,1);
System.out.println("No se pueden sumar las matrices");
return r;
}
}
public Matriz resta(Matriz B){
if ((this.numfilas == B.numfilas)&(this.numcolum == B.numcolum)){
Matriz r = new Matriz(this.numfilas,this.numcolum);
int j;
for(int i=0; i
return r;
}
else{
Matriz r = new Matriz (1,1);
System.out.println("No se pueden restar las matrices");
return r;
}
}
public Matriz multiplicacion(Matriz B){
Matriz r = new Matriz(this.numfilas,B.numcolum);
int j;
int k;
for(int i=0; i
return r;
}
public Matriz traspuesta(){
Matriz r = new Matriz(this.numcolum,this.numfilas);
int j;
for(int i=0; i
return r;
}
public Matriz inversa(){
Matriz result=new Matriz(this.numfilas,this.numcolum);
double tmp;
Matriz I=new Matriz(this.numfilas,this.numcolum*2);
for(int i=0;i
for(int i=0;i
if (i==j)
I.matriz[i][j+this.numfilas]=1.0;
}
}
for(int i=0;i
for(int j=0;j<(this.numcolum*2);j++)
I.matriz[i][j]/=tmp;
for(int k=0;k
tmp=I.matriz[k][i];
for(int j=0;j<(this.numcolum*2);j++)
I.matriz[k][j]-=tmp*I.matriz[i][j];
}
}
}
for(int i=0;i
return result;
}
public static void main(String args []){
Matriz m = new Matriz(3, 3);
m.matriz[0][0]= 1;
m.matriz[1][1]= 3;
m.matriz[2][2]= 5;
System.out.println(m.imprimir());
Matriz b = new Matriz(3, 3);
b.matriz[0][0]= 1;
b.matriz[0][1]= 2;
b.matriz[0][2]= 3;
b.matriz[1][1]= 4;
b.matriz[1][2]= 5;
b.matriz[2][2]= 6;
System.out.println(b.imprimir());
Matriz resultado;
resultado = m.suma(b);
System.out.println(resultado.imprimir());
resultado = m.resta(b);
System.out.println(resultado.imprimir());
resultado = m.multiplicacion(b);
System.out.println(resultado.imprimir());
resultado = b.traspuesta();
System.out.println(resultado.imprimir());
resultado = m.traspuesta();
System.out.println(resultado.imprimir());
resultado = m.inversa();
System.out.println(resultado.imprimir());
resultado = b.inversa();
System.out.println(resultado.imprimir());
}
}
el codigo esta completo.. a la vez entendible.. felicitacion.. good job...
ResponderEliminargran aporte Ricardo.... aunq algo extenso el trabajo pero estan casi todas las operaiones...
ResponderEliminarAunque el código esta un poco extenso, pero cumple el cálculo de la matriz inversa; tocaría ver la posibilidad de tratar de reducir usando algún bucle como for o while
ResponderEliminarMUY BUENO EL CODIGO, BUEN TRABAJO, TAL VEZ SABS ALGUNA MANRA PARA ACORTAR EL CODIGO EN LA INVERSA??
ResponderEliminarsi reducieras mas el programa seria mejor pero bueno esta bueno
ResponderEliminar