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)- |