Inicio › Temas › Ecuaciones diferenciales
🌀 Ecuaciones diferenciales nivel medio
Oscilador armónico amortiguado
Masa y resorte con rozamiento: tres regímenes según el discriminante.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
Una masa m unida a un resorte de constante k y sometida a un rozamiento proporcional a la velocidad cumple, por la segunda ley de Newton, la ecuación lineal de segundo orden m x″ + c x′ + k x = 0. Es el modelo de referencia de toda la física e ingeniería lineal: suspensiones, sismógrafos, circuitos RLC y microestructuras se describen con esta misma expresión. Al ser homogénea y de coeficientes constantes se resuelve probando x = e^(λt), lo que conduce a la ecuación característica m λ² + c λ + k = 0.
Todo depende del discriminante c² − 4mk, o equivalentemente del amortiguamiento relativo ζ = c / (2√(m k)). Si ζ < 1 las raíces son complejas conjugadas y el movimiento es subamortiguado: oscila con frecuencia ω_d = ω₀√(1 − ζ²) dentro de una envolvente e^(−ζω₀t), donde ω₀ = √(k/m) es la frecuencia natural. Si ζ = 1 hay raíz doble y el movimiento es críticamente amortiguado: vuelve al equilibrio lo más rápido posible sin pasarse. Si ζ > 1 las raíces son reales negativas distintas y el sistema está sobreamortiguado: regresa lentamente, como un émbolo en aceite.
Escrita como sistema de primer orden, con y₁ = x e y₂ = x′, la ecuación se convierte en y₁′ = y₂, y₂′ = −(c y₂ + k y₁)/m, que es la forma que consumen los integradores numéricos como Runge-Kutta. La energía mecánica ½ m x′² + ½ k x² decrece a un ritmo c x′², exactamente la potencia disipada por el rozamiento: cuando c = 0 se conserva y el movimiento es armónico simple, de amplitud constante y periodo 2π/ω₀ independiente de la amplitud.
Fórmulas clave
- Ecuaciónm x″ + c x′ + k x = 0
- Ecuación característicam λ² + c λ + k = 0, λ = [−c ± √(c² − 4 m k)] / (2 m)
- Frecuencia naturalω₀ = √(k/m), T₀ = 2π/ω₀
- Amortiguamiento relativoζ = c / (2 √(m k))
- Subamortiguado (ζ < 1)x(t) = A e^(−ζ ω₀ t) cos(ω_d t + φ), ω_d = ω₀ √(1 − ζ²)
- Crítico (ζ = 1)x(t) = (C₁ + C₂ t) e^(−ω₀ t)
Dónde se aplica
La suspensión de un automóvil se diseña con ζ ≈ 0,7: un amortiguador gastado (ζ pequeño) deja el coche botando y uno demasiado duro (ζ grande) transmite cada bache al chasis. Los sismógrafos y las balanzas electrónicas buscan amortiguamiento crítico para que la aguja se detenga sin oscilar, y los rascacielos incorporan amortiguadores de masa sintonizada que añaden c efectiva frente al viento. En electrónica, el circuito RLC obedece la misma ecuación con L, R y 1/C en lugar de m, c y k, y en control automático ζ y ω₀ fijan el sobreimpulso y el tiempo de establecimiento de cualquier lazo de segundo orden.
Con programación (Python)
import math
def analizar(m, c, k):
w0 = math.sqrt(k / m)
z = c / (2 * math.sqrt(m * k))
disc = c * c - 4 * m * k
if disc < -1e-12:
reg = "subamortiguado"
elif disc > 1e-12:
reg = "sobreamortiguado"
else:
reg = "crítico"
return w0, z, disc, reg
for c in [0.5, 4.0, 10.0]:
w0, z, disc, reg = analizar(1.0, c, 4.0)
print("c =", c, " w0 =", round(w0, 4), " zeta =", round(z, 4),
" disc =", round(disc, 3), " ", reg)
def rk4(s, h, m, c, k):
f = lambda v: [v[1], (-c * v[1] - k * v[0]) / m]
a = f(s)
b = f([s[i] + h / 2 * a[i] for i in range(2)])
d = f([s[i] + h / 2 * b[i] for i in range(2)])
e = f([s[i] + h * d[i] for i in range(2)])
return [s[i] + h * (a[i] + 2 * b[i] + 2 * d[i] + e[i]) / 6 for i in range(2)]
s = [1.0, 0.0]
for n in range(1, 601):
s = rk4(s, 0.01, 1.0, 0.5, 4.0)
if n % 150 == 0:
print("t =", round(n * 0.01, 2), " x =", round(s[0], 5), " v =", round(s[1], 5))La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.
Temas relacionados
Péndulo simple no lineal · Campos de direcciones, Euler y RK4 · Valores y vectores propios