Nombre: Carolina Navarrete
CLASE MATRIZ
public class Matriz {
public int numeroFilas;
public int numeroColumnas;
public double [][]matriz;
public Matriz(){
}
//nF es el numero de filas
//nc es el 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;
}
//metodo de suma de matrices
public Matriz suma(Matriz b){
Matriz resultado;
//primero revisamos que las filas y las columnas sean iguales
//this referencia a un objeto que au no esta creado pero que alguien algun momento lo va a crear
if((this.numeroFilas == b.numeroFilas)&& (this.numeroColumnas == b.numeroColumnas)){
resultado = new Matriz(this.numeroFilas, this.numeroColumnas);
for(int i=0; i < this.numeroFilas; i++)
for(int j=0; j < this.numeroColumnas; j++)
resultado.matriz[i][j] = this.matriz[i][j]+ b.matriz[i][j];
return resultado;
}
else
System.out.println("ERROR EN DIMENSIONES DE LAS MATRICES");
resultado=null;
return resultado;
}
//metodo de multiplicacion de matrices
//retorna una matriz resultado resta
public Matriz multiplicacion(Matriz b){
Matriz resultado;
if(this.numeroFilas == b.numeroColumnas){
resultado=new Matriz(this.numeroFilas,b.numeroColumnas);
for(int i=0; i < this.numeroFilas; i++){
for(int j=0; j < b.numeroColumnas; j++){
for(int k=0; k < this.numeroFilas; k++)
resultado.matriz[i][j] += (this.matriz[i][k]*b.matriz[k][j]);
}
}
return resultado;
}
else
System.out.println("error en dimensiones de las matrices");
resultado = null;
return resultado;
}
//devuelve el objeto matriz en texto para poderlo imprimir
public String toString(){
String aux="\n[\n";
for(int i=0; i < numeroFilas; i++){
for(int j=0; j < numeroColumnas; j++){
aux += matriz[i][j]+" ";
}
aux+="\n";
}
aux+= "]";
return aux;
}
}
CLASE VECTOR3D
public class Vector3D extends Matriz{
double coordenadaX;
double coordenadaY;
double coordenadaZ;
public Vector3D(){
super(1,3);
}
public Vector3D(double x, double y, double z){
super(1,3);
this.matriz[0][0] = x;
this.matriz[0][1] = y;
this.matriz[0][2] = z;
coordenadaX = x;
coordenadaY = y;
coordenadaZ = z;
}
public double magnitud(){
double resultado = 0;
for(int i=0; i < 3; i++){
resultado += this.matriz[0][i]*this.matriz[0][i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
//segunda forma de hacer la magnitud
public double magnitud1(){
double resultado;
resultado = this.coordenadaX*this.coordenadaX+this.coordenadaY*this.coordenadaY+this.coordenadaZ*this.coordenadaZ;
resultado = Math.sqrt(resultado);
return resultado;
}
//tercera forma de hacer la magnitud
public double magnitud2(){
double resultado;
resultado = Math.pow(this.coordenadaX, 2)+Math.pow(this.coordenadaY, 2)+Math.pow(this.coordenadaZ, 2);
resultado = Math.sqrt(resultado);
return resultado;
}
public Matriz unitario(){
Vector3D unitario = new Vector3D();
for(int i=0; i < 3; i++)
unitario.matriz[0][i] = this.matriz[0][i]/this.magnitud2();
return unitario;
}
public double productoEscalar(Vector3D v){
double resultado = 0;
for(int i=0; i < 3; i++)
resultado += this.matriz[0][i]*v.matriz[0][i];
return resultado;
}
public Matriz productoCruz(Vector3D v){
Vector3D resultado;
resultado = new Vector3D();
resultado.matriz[0][0] = this.matriz[0][1]*v.matriz[0][2]-this.matriz[0][2]*v.matriz[0][1];
resultado.matriz[0][1] = this.matriz[0][2]*v.matriz[0][0]-this.matriz[0][0]*v.matriz[0][2];
resultado.matriz[0][2] = this.matriz[0][0]*v.matriz[0][1]-this.matriz[0][1]*v.matriz[0][0];
return resultado;
}
public Matriz productoVectorEscalar(double a){
Vector3D resultado = new Vector3D();
for(int i = 0; i < 3; i++)
resultado.matriz[0][i] = this.matriz[0][i]*a;
return resultado;
}
public static void main(String args[]){
Vector3D v1 = new Vector3D(-1, 1, -1);
Vector3D v2 = new Vector3D(0,2,0);
System.out.println(v1+"\n"+v2+"\n suma "+(v1.suma(v2)));
System.out.println("Coordenada x "+v1.coorX);
System.out.println(v1.magnitud()+"\n"+v1.magnitud1());
System.out.println(v1.unitario());
System.out.println((v1.unitario()).magnitud());
System.out.println("Producto escalar "+v1.productoEscalar(v2));
System.out.println("Producto cruz "+v1.productoCruz (v2));
}
}
CLASE MOVIMIENTO RECTILINEO UNIFORMEMENTE VARIADO
public class MRUV extends Vector3D{
Matriz posicion;
Matriz velocidad inicial;
Matriz aceleracion;
Matriz desplazamiento;
Matriz velocidad final;
public MRUV(){
}
public MRUV (Vector3D pos, Vector3D vel0, Vector3D ace, Vector3D des){
posicion = pos;
velocidad inicial = vel0;
aceleracion = ace;
desplazamiento = des;
}
public void calcularPosicion(Vector3D ro, Vector3D vel0, Vector3D ace, double t){
posicion = ro.suma((vel0.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t,2))).productoEscalarVector(1/2)));
}
public void calcularVelocidad(Vector3D vel0, double t, Vector3D ace){
velocidad final = vel0.suma(ace.productoEscalarVector(t));
}
public void calcularDesplazamiento(Vector3D vel0, double t, Vector3D ace){
desplazamiento = (vel0.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t, 2))).productoEscalarVector(1/2));
}
public static void main(String args[]){
MRUV m = new MRUV();
Vector3D r0 = new Vector3D (1,0,-1);
Vector3D vel0 = new Vector3D (0,8,0);
Vector3D ace = new Vector3D (-2,0,6);
double t = 4;
System.out.println("posicion a t = 4s rO = i-k v0 = 8j a = -2i+6k es: \n" +m.calcularPosicion(r0, vel0, ace, t));
System.out.println("velocidad a t = 4s v0 = 8j a = -2i+6k ES: \n" +m.calcularVelocidad(vel0, t, ace));
System.out.println("desplazamiento a t = 4s v0 = 8j a = -2i+6k es: \n" +m.calcularDesplazamiento(vel0, t, ace));
}
}
domingo, 22 de noviembre de 2009
Suscribirse a:
Enviar comentarios (Atom)
public void calculaVelocidad(Vector3D vel, double t){
ResponderEliminarvelocidad = vel;
caro aqui dices que la velocidad es constante y en este movimiento la aceleracion es constante debes ocupar esta formula:
//la formula es v = v0 + a.t
public void calcularVelocidad(Vector3D vel0, double t, Vector3D ace){
velocidad = vel0.suma(ace.productoEscalarVector(t));
}
Hola!! Debes crear un método que calcule la velocidad puedes utilizar:
ResponderEliminarpublic void calcularVelocidad(Vector3D v0,double t,Vector3D r0,Vector3D ace){
velocidad = v0.suma(ace.productoVectorEscalar(t));
por el contrario la aceleracion debe ser constante, debes eliminar el matodo creado ya que la division no es compatible...
Hola caro esta mal la parte en la que quieres encontrar la velocidad ininicial ya q nunca declaras esa variable, la velociad final debes ponerla unida asi velocidadfinal sino no se te crea la variable otor error es q no puedes trabajar con las funciones public void y luego llamarlas al public static void main ya q no es compatible si quieres hacerlo tienes q hacer todas las funciones a dentro del void main o convertirlas a un double o String como tu quieres,la acelaracion manda a imprimirla xq es constante y listo.
ResponderEliminarleo no estoy de acuerdo mi programa es parecido a este y el mio corre perfectamente a pesar de que tengo las funciones como void mira:
ResponderEliminarCLASE MRUV
public class MRUV extends Vector3D{
Matriz posicion;
Matriz velocidad;
Matriz aceleracion;
Matriz desplazamiento;
Matriz velocidad2;
public MRUV(){
}
public MRUV (Vector3D pos, Vector3D vel0, Vector3D ace, Vector3D des){
posicion = pos;
velocidad = vel0;
aceleracion = ace;
desplazamiento = des;
}
//la formula es r = r0 + vo.t + 1/2a.t^2
public void calcularPosicion(Vector3D ro, Vector3D vel0, Vector3D ace, double t){
posicion = ro.suma((vel0.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t,2))).productoEscalarVector(1/2)));
}
//la formula es v = v0 + a.t
public void calcularVelocidad(Vector3D vel0, double t, Vector3D ace){
velocidad = vel0.suma(ace.productoEscalarVector(t));
}
//la formula es d = v0.t + 1/2a.t^2
public void calcularDesplazamiento(Vector3D vel0, double t, Vector3D ace){
desplazamiento = (vel0.productoEscalarVector(t)).suma((ace.productoEscalarVector(Math.pow(t, 2))).productoEscalarVector(1/2));
}
/*public void calcularVelocidad2(Vector3D vel0, Vector3D ace, Vector3D des){
velocidad2 = (Math.pow(vel0, 2)).suma((ace.productoCruz(desplazamiento)).productoEscalarVectorial(2));
}*/
public static void main(String args[]){
MRUV m = new MRUV();
Vector3D r0 = new Vector3D (1,0,-1);
Vector3D vel0 = new Vector3D (0,5,0);
Vector3D ace = new Vector3D (-4,0,9);
double t = 2;
System.out.println("LA POSICION A t = 2s rO = i-k v0 = 5j a = -4i+9k ES: \n" +m.calcularPosicion(r0, vel0, ace, t));
System.out.println("LA VELOCIDAD A t = 2s v0 = 5j a = -4i+9k ES: \n" +m.calcularVelocidad(vel0, t, ace));
System.out.println("EL DESPLAZAMIENTO A t = 2s v0 = 5j a = -4i+9k ES: \n" +m.calcularDesplazamiento(vel0, t, ace));
}
}