miércoles, 1 de abril de 2009

Para resolver ecuaciones (Matrices)

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 imprimir(){
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 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 esta definida la multiplicacion de estas matrices");
return r;
}
}
public Matriz inversa(){
Matriz r=new Matriz(this.numeroColumnas,this.numeroFilas);
r.matriz[0][0]=this.matriz[1][1]/((this.matriz[0][0]*this.matriz[1][1])-(this.matriz[0][1]*this.matriz[1][0]));

r.matriz[0][1]=-1*this.matriz[0][1]/((this.matriz[0][0]*this.matriz[1][1])-(this.matriz[0][1]*this.matriz[1][0]));

r.matriz[1][0]=-1*this.matriz[1][0]/((this.matriz[0][0]*this.matriz[1][1])-(this.matriz[0][1]*this.matriz[1][0]));

r.matriz[1][1]=this.matriz[0][0]/((this.matriz[0][0]*this.matriz[1][1])-(this.matriz[0][1]*this.matriz[1][0]));

return r;
}

public static void main(String args[]){

Matriz a=new Matriz(2,2);
a.matriz[0][0]=1;
a.matriz[0][1]=-1;
a.matriz[1][0]=2;
a.matriz[1][1]=1;

System.out.println("la matriz A es:");
System.out.println(a.imprimir());


Matriz c=new Matriz(2,2);
c.matriz[0][0]=3;c.matriz[1][0]=-4;
System.out.println("la matriz C es:");
System.out.println(c.imprimir());

Matriz resultado;
System.out.println(resultado.imprimir());

/* Impresion de resultados-------

resultado=a.inversa();
System.out.println("la matriz inversa de A es:");
System.out.println(resultado.imprimir());

resultado=a.multiplicacion(c);
System.out.println("la matriz producto axc es:");
System.out.println(resultado.imprimir());

resultado=a.inversa().multiplicacion(c);
System.out.println("las soluciones del sistema son:");
System.out.println(resultado.imprimir());
}
}

3 comentarios:

  1. El codigo para la multiplicacion esta bastante bien lo que tocaria ver es una mejor manera de manejar lo de la matriz inversa

    ResponderEliminar
  2. Me parece que el programa esta bien hecho pero no se entiende deberias poner comentarios explicando lo que hace cada clase.

    ResponderEliminar
  3. buen trabajo, esta muy entendible el codigo, seria bueno talves utilizar el clonar en la matriz inversa.

    ResponderEliminar