domingo, 5 de abril de 2009

Codigo Inversa y multiplicacion

public class Matriz {
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 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 multiplicacion(Matriz B){
Matriz r = new Matriz(this.numfilas,B.numcolum);
int j;
int k;
for(int i=0; i for(j=0; j for(k=0; k r.matriz[i][j] += this.matriz[i][k]*B.matriz[k][j];
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 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.numfilas]=1.0;
}
}
for(int i=0;i tmp=I.matriz[i][i];
for(int j=0;j<(this.numcolum*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.numcolum*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.numcolum];
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]=-1;
m.matriz[1][1]=2;
System.out.println(m.imprimir());

Matriz b=new Matriz(2,2);
b.matriz[0][0]=1;
b.matriz[1][0]=0;
System.out.println(b.imprimir());

Matriz resultado;
resultado=m.inversa();
System.out.println(resultado.imprimir());

resultado=m.multiplicacion(b);
System.out.println(resultado.imprimir());

resultado=m.inversa().multiplicacion(b);
System.out.println(resultado.imprimir());
}
}

6 comentarios:

  1. muy bueno el programa y el codigo ta bueno, el penultimo paso es necesario? creo k solo hay k multplicar a la invers apor la otra matriz y ya aunk s un buen mtodo ver como seria la multiplicación sin y con la inversa... buen trabajo??

    ResponderEliminar
  2. El código esta bien definido pero al momento de imprimir los resultados te va a salir una columna demás lo que podrìas arreglar con otro método de imprimir.

    ResponderEliminar
  3. buen trabajo amigo... las lineas m poarecen bien aunq esperemos q corra el programa..

    ResponderEliminar
  4. Está bien hecho seria mejor que adjuntes comentarios que expiquen lo que hace cado método
    para que de esta manera se facilite la comprención del programa

    ResponderEliminar
  5. es un buen programa si nos puede servir mucho en nuestros estudios...
    esta un poco claro seria mejor que añadas comentarios

    ResponderEliminar
  6. bueno el esfuerzo mijo pero te saldra lo que quieres??? porque ahi ay una falencias o me equivoco???

    ResponderEliminar