Procedimiento numérico
Raíz de una ecuación trascendente
El instante tn+1 y la posición yn+1 en el momento del siguiente choque se determina resolviendo la ecuación trascendente por el procedimiento del punto medio
yn+vn(t-tn)-g(t-tn)2/2= A·sin(ωt)
void inicio(double yIni, double resti, double periodo){
this.resti=resti;
this.frecAngular=2*Math.PI/periodo;
this.yIni=yIni;
t=t0=0.0;
yb=yIni;
vbIni=0.0;
tipo=0;
}
void setNuevo(){
t0=t;
vbIni=0.0;
tipo=1;
}
void mover(){
t+=dt;
yPiston=amplitud*Math.sin(frecAngular*t);
switch(tipo){
case 1:
yb=yIni+vbIni*(t-t0)-4.9*(t-t0)*(t-t0);
vb=vbIni-9.8*(t-t0);
if(yb<yPiston){ //choque
double tChoque=puntoMedio((t-dt), t);
yPiston=amplitud*Math.sin(frecAngular*tChoque);
yb=yIni+vbIni*(tChoque-t0)-4.9*(tChoque-t0)*(tChoque-t0);
yIni=yb;
vbIni=(1+resti)*amplitud*frecAngular*Math.cos(frecAngular*tChoque)- |
