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 < numeroFilas; i++)
for(int j = 0; j < numeroColumnas; j++)
matriz[i][j] = 0;
}
public String imprimir1(){
String aux ="";
for(int i = 0; i < numeroFilas; i++){
for(int j = 0; j < numeroColumnas; j++){
aux = aux + matriz[i][j] +" ";
}
aux = aux + "\n";
}
return aux;
}
public String imprimir2(){
String aux ="";
aux=aux+"x1="+ matriz[0][0];
aux=aux+"\n";
aux=aux+"x2="+matriz[1][0];
return aux;
}
public Matriz multiplicacion(Matriz B){
if(this.numeroFilas==B.numeroColumnas){
Matriz r =new Matriz(this.numeroFilas,this.numeroColumnas);
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;
}
else{
Matriz r=new Matriz(1,1);
System.out.println("NO SE PUEDE OPERAR");
return r;
}
}
}
public Matriz inversa(){
Matriz result=new Matriz(this.numeroFilas,this.numeroColumnas);
double tmp;//variable temporal
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 x=new Matriz(2,2);
x.matriz[0][0]=1;x.matriz[0][1]=1;
x.matriz[1][0]=-1;x.matriz[1][1]=2;
System.out.println("la matriz x es:");
System.out.println(x.imprimir1());
Matriz y=new Matriz(2,2);
y.matriz[0][0]=1;
y.matriz[1][0]=0;
System.out.println("la matriz y es:");
System.out.println(y.imprimir1());
matriz resultado;
resultado=x.inversa();
System.out.println("la matriz inversa de x es:");
System.out.println(resultado.imprimir1());
resultado=y.inversa().multiplicacion(y);
System.out.println("las soluciones del sistema:");
System.out.printlin();
System.out.println(resultado.imprimir2());
}
}
domingo, 5 de abril de 2009
Suscribirse a:
Enviar comentarios (Atom)
muy bueno el programa y el codigo ta bueno, el penultimo paso es necesario? no tiens problma con l ainversa en la mitad del codigo?? si realiza la inversa?? ... chekalo ahi no entiendo por k cierras tantas llaves?
ResponderEliminarexelente contribucion gracias tu codio me ayudo mucho
ResponderEliminares un buen programa si nos puede servir mucho en nuestros estudios...
ResponderEliminarMuy claro y entendible el codigo, ademas esta bien estructurado.
ResponderEliminar