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
}
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;
}
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 < this.numeroFilas; i++)
for(j = 0; j < this.numeroColumnas;j++)
r.matriz[j][i] = this.matriz[i][j];
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 Matriz multiplicaEscalar(double a){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
for(int i = 0; i < this.numeroFilas; i++)
for(int j = 0; j
return r;
}
}
package herencia;
public class Vector extends Matriz{
public Vector(){
}
public Vector(int numElementos){
numeroFilas = 1;
numeroColumnas = numElementos;
matriz = new double[numeroFilas][numeroColumnas];
}
public Vector(int nF, int nC){
super(nF,nC);
}
public double productoEscalar(Vector x){
double resultado =0;
resultado=this.multiplica(x.transpueta()).matriz[0][0];
return resultado;
}
public static void main(String[] args){
Vector v = new Vector(3,3);
v.matriz[0][0]= 1;
v.matriz[0][1]= 0;
v.matriz[0][2]= 1;
System.out.println(v.imprimir());
Vector v1 = new Vector(3,3);
v1.matriz[0][0]= 1;
v1.matriz[0][1]= 2;
v1.matriz[0][2]= 3;
System.out.println(v1.imprimir());
System.out.println((v.suma(v1)).imprimir());
System.out.println("El producto vectorial");
System.out.println((v1.multiplica(v)).imprimir());
}
}
Me parece que es un buen pograma, me parece que es muy interesante como lo implementas, es muy original.
ResponderEliminarIMPLEMENTACION CORRECTA DEL PROGRAMA Y LA UTILIZACION DEL LENGUAJE, BUEN TRABAJO
ResponderEliminarMUy bien el codigo se lo entiende es completo...
ResponderEliminar