int numeroFilas;
int numeroColumnas;
double [][] matriz;
public Matriz(){}
/**
* Constructor de matrices
* @param nF numero de filas
* @param nC numero de columnas
*/
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;
}
/**
* Imprime los objetos de la clase matriz
* @return Un string que contien a la matriz
*/
public String imprimir(){
String aux = "";
for(int i=0; i
}
aux = aux + "\n";
}
return aux;
}
public String imprimir2(){
String aux ="";
aux=aux+"y1="+ matriz[0][0];
aux=aux+"\n";
aux=aux+"y2="+matriz[1][0];
return aux;
}
/**
* Metodo para sumar matrices
* @param B La matriz sumando
* @return Retorna otra matriz
*/
public Matriz suma(Matriz B){
if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden sumar las matrices");
return r;
}
}
public Matriz resta(Matriz B){
if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden restar las matrices");
return r;
}
}
public Matriz multiplica(Matriz B){
if(this.numeroFilas==B.numeroColumnas){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
int k;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden multiplicar las matrices");
return r;
}
}
public Matriz clonar(){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j
return r;
}
public Matriz transpueta(){
Matriz r = new Matriz(this.numeroColumnas,this.numeroFilas);
int j;
for (int i = 0; i < r.numeroFilas; i++)
for(j = 0; j < r.numeroColumnas;j++)
r.matriz[i][j] = this.matriz[j][i];
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 i = 0; i
if (i==j)
I.matriz[i][j+this.numeroFilas]=1.0;
}
}
for(int i=0; i<(this.numeroFilas); 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
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 < this.numeroFilas; i++)
for(int j = 0; j
return result;
}
public static void main(String args[]){
Matriz m= new Matriz(3, 3);
m.matriz[0][0]=1;
m.matriz[1][1]=3;
m.matriz[2][2]=5;
System.out.println("LA MATRIZ M ES: ");
System.out.println(m.imprimir());
Matriz copia;
copia= m;
System.out.println("LA COPIA DE M ES: ");
System.out.println(copia.imprimir());
m.matriz [0][0]= 100;
System.out.println("LA MATRIZ M MODIFICADA ES: ");
System.out.println(m.imprimir());
System.out.println("LA COPIA DE M MODIFICADA ES: ");
System.out.println(copia.imprimir());
copia=m.clonar();
m.matriz [0][0]= 1;
System.out.println("LA MATRIZ M ES: ");
System.out.println(m.imprimir());
System.out.println("LA MATRIZ CLON DE M ES: ");
System.out.println(copia.imprimir());
Matriz b = new Matriz(3,3);
b.matriz[0][0] = 1; b.matriz[0][1]=2; b.matriz[0][2]=3;
b.matriz[1][1] = 4; b.matriz[1][2] = 5;
b.matriz[2][2] = 6;
System.out.println(b.imprimir());
Matriz resultado;
resultado = m.suma(b);
System.out.println("LA SUMA ES: ");
System.out.println(resultado.imprimir());
resultado = m.resta(b);
System.out.println("LA RESTA ES: ");
System.out.println(resultado.imprimir());
resultado = b.transpueta();
System.out.println("LA TRANSPUESTA DE B ES: ");
System.out.println(resultado.imprimir());
resultado = m.transpueta();
System.out.println("LA TRANSPUESTA DE M ES: ");
System.out.println(resultado.imprimir());
resultado = m.multiplica(b);
System.out.println("LA MULTILPLICACION ES: ");
System.out.println(resultado.imprimir());
resultado=m.inversa();
System.out.println("LA INVERSA DE M ES: ");
System.out.println(resultado.imprimir());
resultado=b.inversa();
System.out.println("LA INVERSA DE B ES: ");
System.out.println(resultado.imprimir());
Matriz d=new Matriz(2,2);
d.matriz[0][0]=1;d.matriz[0][1]=1;
d.matriz[1][0]=-1;d.matriz[1][1]=2;
System.out.println("LA MATRIZ D ES: ");
System.out.println(d.imprimir());
Matriz c=new Matriz(2,2);
c.matriz[0][0]=1;
c.matriz[1][0]=0;
System.out.println("LA MATRIZ C ES: ");
System.out.println(c.imprimir());
Matriz resultante;
resultante=d.inversa();
System.out.println("LA INVERSA DE D:");
System.out.println(resultado.imprimir());
resultante=d.multiplica(c);
System.out.println("LA MULTIPLICACIÓN DE D Y C ES: ");
System.out.println(resultado.imprimir());
resultante=d.inversa().multiplica(c);
System.out.println("LA MULTIPLICACIÓN CON LA INVERSA DE D ES: ");
System.out.println(resultado.imprimir2());
}
}
el codigo esta completo.. buen trabajoes un buen aporte pa un estudiante
ResponderEliminarfelicitaciones es un trabajo largo pero entendible bien compañero
ResponderEliminarEl programa esta extenso pero funciona; simplemente tocaría ver si es posible calcular la matriz inversa por otro método.
ResponderEliminarMe parese que es un buen progrma, uanuque seria mejor que describas lo que estas haciendo poniendo comentarios,
ResponderEliminarahora lo has mejorado.. esta muy bien buen trabajo
ResponderEliminarel programa esta bien estructurado, pero creo que podrias separar los programas para que se entienda mejor....
ResponderEliminares un buen programa si nos puede servir mucho en nuestros estudios...
ResponderEliminaresta un poco claro seria mejor que añadas comentarios
Hola, copio el codigo a netbeans, pero me marca que me falta el metodo main y no se como ponerlo, es que no se programar en java... te agradeceria mucho tu ayuda.
ResponderEliminarGracias.
lo inicie en Jgrasp y me marca un error al iniciar, ocasionado unos 100 errores mas, intentare resolverlo i publico la solucion
ResponderEliminarHOLA TU EJERCICO ESTA SUPER, Y TE PREGUNTO SI POR FA ME PUEDES AYUDAR CON ESTE EJERCICIO: De una matriz cuadrada mostrar las las areas: triangular inferior, triangular superior,diagonal principal y secundaria. gracias si me puedes ayudar o al que lo pueda hacer es urgentee!!!!!!!!!!!!!!!!!
ResponderEliminarHOLA!! DIME Y SI SOLO QUIERO LA MULTIPLICACION DE LAS MATRICES A Y B, PERO QUE SE LLENEN ALEATORIAMENTE COMO LO MODIFICARÍAS?
ResponderEliminarcuando copio el codigo a netbens me salen muchos errores
ResponderEliminarsape!
ResponderEliminaresta muy bueno tu codigo..........
ResponderEliminarHola jorge, buen ejemplo el que compartes :) Integré tu condigo con una Interfaz de Calculadora de Matrices que encontré por ahí, espero que también les sirva para complementar el ejercicio como lo hice jeejej :) xO xO
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHola Jorge Cevallos
EliminarElimine mis dos comentarios, pero sigo viendo información personal mía (mi nombre Xavier Carbó Duran), podrías porfavor eliminarla.
Lo que veo es esto:
Xavier Carbó Duran12 de abril de 2014, 11:34
Este comentario ha sido eliminado por el autor.
Xavier Carbó Duran12 de abril de 2014, 11:36
Este comentario ha sido eliminado por el autor.
Muchas gracias de antemano Jorge Cevallos
Un saludo
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola Jorge Cevallos
ResponderEliminarElimine mis dos comentarios, pero sigo viendo información personal mía (mi nombre Xavier Carbó Duran), podrías porfavor eliminarla.
Lo que veo es esto:
Xavier Carbó Duran12 de abril de 2014, 11:34
Este comentario ha sido eliminado por el autor.
Xavier Carbó Duran12 de abril de 2014, 11:36
Este comentario ha sido eliminado por el autor.
Muchas gracias de antemano Jorge Cevallos
Un saludo