domingo, 19 de abril de 2009

MRU y MRUV vectorial

MRU
public class Particula {
private Matriz posicionInicial;
private Matriz velocidadInicial;
private Matriz aceleracion;

public Particula(){}
public Particula(Matriz Xo, Matriz Vo, Matriz a){
posicionInicial = Xo;
velocidadInicial = Vo;
aceleracion = a;
}

public Matriz getPosicionInicial(){
return posicionInicial;
}
public void setPosicionInicial(Matriz Xo){
posicionInicial = Xo;
}
public Matriz getAceleracion(){
return aceleracion;
}
public void setAceleracion(Matriz a){
aceleracion = a;
}
public Matriz getVelocidadInicial(){
return velocidadInicial;
}
public void setVelocidadInicial(Matriz Vo){
velocidadInicial = Vo;
}
}
package encapsulamientoii;
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 for(int j=0; j aux= aux + matriz[i][j] + " ";
}
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 r.matriz[i][j]=this.matriz[i][j]+B.matriz[i][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden sumar las matrices");
return r;
}
}
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 r.matriz[i][j]= this.matriz[i][j]*a;
return r;
}
}
package encapsulamientoii;
public class MovRecUNi {
public Particula particula;

public MovRecUNi(){}
public MovRecUNi(Matriz x0, Matriz v0, Matriz a){
particula = new Particula();
particula.setPosicionInicial(x0);
particula.setVelocidadInicial(v0);
particula.setAceleracion(a);
}

public Matriz calcularPosicion(double t){
Matriz posicion;
Matriz x0, v0, a;
x0 = this.particula.getPosicionInicial();
posicion = new Matriz(x0.numeroFilas,x0.numeroColumnas);
v0 = this.particula.getVelocidadInicial();
a = this.particula.getAceleracion();
posicion = x0.suma(v0.multiplicaEscalar(t));
return posicion;
}

public Matriz calculoVelocidad(double t){
Matriz velocidad = particula.getVelocidadInicial();
return velocidad;
}

public Matriz calculoAceleracion(double t){
Matriz aceleracion = new Matriz(1,this.particula.getPosicionInicial().numeroColumnas);
for(int i = 0; i < aceleracion.numeroFilas; i++)
for(int j = 0; j < aceleracion.numeroColumnas; j++)
aceleracion.matriz[i][j] = 0;
return aceleracion;
}

public static void main(String args[]){
Matriz x0 = new Matriz(1,3);
x0.matriz[0][0]=5; x0.matriz[0][1]=0; x0.matriz[0][2]=-5;
Matriz v0 = new Matriz(1,3);
v0.matriz[0][0]=2; v0.matriz[0][1]=0; v0.matriz[0][2]=0;
Matriz a = new Matriz(1,3);
a.matriz[0][0]=0; a.matriz[0][1]=0; a.matriz[0][2]=0;
MovRecUNi m = new MovRecUNi(x0,v0,a);

Matriz x;
x = m.calcularPosicion(2);
Matriz v;
v = m.calculoVelocidad(2);
Matriz ac;
ac = m.calculoAceleracion(2);

System.out.println("la posicion inicial\n"+x0.imprimir());
System.out.println("la posicion final\n"+x.imprimir());
System.out.println("la velocidad inicial\n"+v0.imprimir());
System.out.println("la velocidad final\n"+v0.imprimir());
}
}

MRUV
public class Particula {
private Matriz posicionInicial;
private Matriz velocidadInicial;
private Matriz aceleracion;

public Particula(){}
public Particula(Matriz Xo, Matriz Vo, Matriz a){
posicionInicial = Xo;
velocidadInicial = Vo;
aceleracion = a;
}

public Matriz getPosicionInicial(){
return posicionInicial;
}
public void setPosicionInicial(Matriz Xo){
posicionInicial = Xo;
}
public Matriz getAceleracion(){
return aceleracion;
}
public void setAceleracion(Matriz a){
aceleracion = a;
}
public Matriz getVelocidadInicial(){
return velocidadInicial;
}
public void setVelocidadInicial(Matriz Vo){
velocidadInicial = Vo;
}
}
package encapsulamientoii;
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 for(int j=0; j aux= aux + matriz[i][j] + " ";
}
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 r.matriz[i][j]=this.matriz[i][j]+B.matriz[i][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden sumar las matrices");
return r;
}
}
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 r.matriz[i][j]= this.matriz[i][j]*a;
return r;
}
}
package encapsulamientoii;
public class MRUVV {
public Particula particula;

public MRUVV(){}
public MRUVV(Matriz x0, Matriz v0, Matriz a){
particula = new Particula();
particula.setPosicionInicial(x0);
particula.setVelocidadInicial(v0);
particula.setAceleracion(a);
}

public Matriz calcularPosicion(double t){
Matriz posicion;
Matriz x0, v0, a;
x0 = this.particula.getPosicionInicial();
posicion = new Matriz(x0.numeroFilas,x0.numeroColumnas);
v0 = this.particula.getVelocidadInicial();
a = this.particula.getAceleracion();
posicion = x0.suma(v0.multiplicaEscalar(t).suma(a.multiplicaEscalar(t*0.5*t)));
return posicion;
}

public Matriz calculoVelocidad(double t){
Matriz velocidad= particula.getVelocidadInicial();
Matriz x0, v0, a;
v0 = this.particula.getVelocidadInicial();
velocidad = new Matriz(v0.numeroFilas,v0.numeroColumnas);
x0 = this.particula.getPosicionInicial();
a = this.particula.getAceleracion();
velocidad = v0.suma(a.multiplicaEscalar(t));
return velocidad;
}

public Matriz calculoAceleracion(double t){
Matriz aceleracion = new Matriz(1,this.particula.getPosicionInicial().numeroColumnas);
for(int i = 0; i < aceleracion.numeroFilas; i++)
for(int j = 0; j < aceleracion.numeroColumnas; j++)
aceleracion.matriz[i][j] = 0;
return aceleracion;
}

public static void main(String args[]){
Matriz x0 = new Matriz(1,3);
x0.matriz[0][0]=4; x0.matriz[0][1]=0; x0.matriz[0][2]=-3;
Matriz v0 = new Matriz(1,3);
v0.matriz[0][0]=3; v0.matriz[0][1]=2; v0.matriz[0][2]=0;
Matriz a = new Matriz(1,3);
a.matriz[0][0]=3; a.matriz[0][1]=2; a.matriz[0][2]=2;
MRUVV m = new MRUVV(x0,v0,a);

Matriz x;
x = m.calcularPosicion(4);
Matriz v;
v = m.calculoVelocidad(4);
Matriz ac;
ac = m.calculoAceleracion(4);

System.out.println("la posicion inicial\n"+x0.imprimir());
System.out.println("la posicion final\n"+x.imprimir());
System.out.println("la velocidad inicial\n"+v0.imprimir());
System.out.println("la velocidad final\n"+v.imprimir());
System.out.println("la aceleracion inicial\n"+a.imprimir());
System.out.println("la aceleracion final\n"+a.imprimir());
}
}

6 comentarios:

  1. El codigo usado es bastante claro y se puede comprender de una manera facil, lo unico que se puede sugerir es que la clase matriz puede registrarse una sola vez.El resto sin novedad.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. esta muy bueno el cod. pienso lo mismo k l compañero troya, pero ta muy bueno l trabajo..

    ResponderEliminar
  4. Es un programa muy bien hecho aunque, la parte en la que imprimes ya esta comprendida nohera necesaria publicarla, por lo demas felicitaciones.

    ResponderEliminar
  5. muy bien el codigo... pero tenemos que imprimir.. los resultados

    ResponderEliminar
  6. bueno el programa mijo muy bien distribuido ni como equivocarse es bastante claro buenisimo el programa

    ResponderEliminar