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