domingo, 5 de abril de 2009

Sistema de Ecuaciones

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());
}

}

4 comentarios:

  1. 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?

    ResponderEliminar
  2. exelente contribucion gracias tu codio me ayudo mucho

    ResponderEliminar
  3. es un buen programa si nos puede servir mucho en nuestros estudios...

    ResponderEliminar
  4. Muy claro y entendible el codigo, ademas esta bien estructurado.

    ResponderEliminar