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 esta definida la multiplicacion de estas matrices");
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 a=new Matriz(2,2);
a.matriz[0][0]=1;a.matriz[0][1]=1;
a.matriz[1][0]=-1;a.matriz[1][1]=2;
System.out.println("la matriz a es:");
System.out.println(a.imprimir1());
Matriz b=new Matriz(2,2);
b.matriz[0][0]=1;
b.matriz[1][0]=0;
System.out.println("la matriz b es:");
System.out.println(b.imprimir1());
Matriz resultado;
resultado=a.inversa();
System.out.println("la matriz inversa de a es:");
System.out.println(resultado.imprimir1());
resultado=a.inversa().multiplicacion(b);
System.out.println("las soluciones del sistema:");
System.out.println(" X1+ X2=1");
System.out.println("-X1+2X2=0");
System.out.println("son:");
System.out.println(resultado.imprimir2());
}
}
domingo, 5 de abril de 2009
Suscribirse a:
Enviar comentarios (Atom)
muy buen trabajo.. el codigo esta muy bien..
ResponderEliminarEs un buen codigo, aunque porque no haces un metodo que haga las asignaciones en lugar de asignar manualmente los valores
ResponderEliminarEs un programa sencillo que muestra claramente la manera de calcular un sistema de ecuaciones aunque se podría implementar un for para el segundo imprimir
ResponderEliminarmuy buuen trabajo lo veo algo resumido (no esta extenso)... gracias...
ResponderEliminar