Esta animación simula un
movimiento armónico simple (MAS)
en tiempo real, despreciando el rozamiento, de un resorte vertical.
La animación hace uso del mínimo de fórmulas (ni trigonometría ni
cálculo diferencial), solo realiza las variaciones necesarias en los
vectores que dirigen el movimiento.
Este movimiento es prácticamente
idéntico al del ya visto de MAS de un resorte horizontal, sin más que cambiar la orientación. La
única diferencia entre ambos es que ahora, en la oscilación vertical,
interviene la gravedad, haciendo que el centro de la oscilación pase de
ser el punto de reposo del muelle a ser el punto de equilibrio
entre la fuerza de restauración del resorte y la gravedad.
Al iniciarse, la construcción
muestra el punto azul M en estado de
equilibrio: el resorte ejerce sobre él exactamente la misma fuerza, pero
en sentido opuesto, que la gravedad. Arrastra
M hacia la abajo o hacia arriba para estirar o comprimir el
resorte. La distancia que lo arrastres determinará la amplitud.
Esa separación de la posición de
equilibrio hará que el resorte se resista, apareciendo una aceleración
a (en verde) cuyo sentido es siempre
hacia el punto de equilibrio. Pulsa el botón
para activar la
animación.
Basta adecuar a esta situación el
guion del deslizador anima, simplemente sustituyendo:
Valor(v,
v + dt
a)
por:
Valor(v,
v + dt (a
+ g))
Atención: puedes detener la
animación en cualquier momento, pero si lo haces deberás pulsar el botón
Reinicia para actualizar el contador de tiempo, en caso contrario su
medición será errónea.
GUION DEL DESLIZADOR anima
# Calcula
los segundos dt transcurridos; para ello, suma un segundo si t1(1) < tt
Valor(tt,
t1(1))
Valor(t1,
Primero(TomaTiempo(), 3))
Valor(dt,
(t1(1) < tt) + (t1(1) - tt)/1000)
# Mueve M
Valor(aux, v)
Valor(v, v
+ dt (a + g))
Valor(M, M
+ dt v)
# Registra
el tiempo del período y el número de oscilaciones completas
Valor(reg, Si(y(aux) < 0 ∧ y(v) > 0,
Añade(t, reg), reg))
Valor(osci, Si(y(aux) < 0 ∧ y(v) > 0, osci + 1, osci))