Inicio › Temas › Ecuaciones diferenciales
🌀 Ecuaciones diferenciales nivel avanzado
Péndulo simple no lineal
θ″ + (g/L) sen θ = 0: cuando la amplitud crece, el periodo deja de ser constante.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
Un péndulo de longitud L que oscila en un plano cumple, proyectando el peso sobre la dirección del movimiento, la ecuación θ″ + (g/L) sen θ = 0, donde θ es el ángulo con la vertical. Es no lineal por culpa del seno, y esa no linealidad es la responsable de todo lo interesante. Nótese que ni la masa ni la amplitud aparecen en la ecuación: el movimiento sólo depende de L, de g y de las condiciones iniciales.
Para ángulos pequeños se sustituye sen θ ≈ θ (el primer término de la serie de Taylor, válido si θ está en radianes y es pequeño) y queda el oscilador armónico θ″ + (g/L) θ = 0, cuya solución es θ(t) = θ₀ cos(√(g/L) t) con periodo T₀ = 2π√(L/g) independiente de la amplitud. Esa propiedad, el isocronismo que descubrió Galileo, es lo que permitió construir relojes de péndulo. Pero es sólo una aproximación: como sen θ < θ, la fuerza recuperadora real es algo menor de lo que predice el modelo lineal, así que el péndulo real tarda más en volver.
El periodo exacto se expresa con una integral elíptica, T = 4√(L/g) K(sen(θ₀/2)), y su desarrollo en serie da la corrección práctica T ≈ T₀ (1 + θ₀²/16 + …): con 10° el error del modelo lineal es apenas del 0,2 %, con 90° supera el 18 % y cuando θ₀ tiende a 180° el periodo tiende a infinito, porque el péndulo se acerca al equilibrio invertido, que es inestable. La energía E = ½L²θ′² + gL(1 − cos θ) se conserva, lo que sirve como control de calidad del integrador: un buen paso de RK4 mantiene E constante en muchas cifras a lo largo de decenas de oscilaciones.
Fórmulas clave
- Ecuación exactaθ″ + (g/L) sen θ = 0
- Ángulos pequeñosθ″ + (g/L) θ = 0 (sen θ ≈ θ)
- Periodo linealT₀ = 2π √(L/g)
- Corrección de segundo ordenT ≈ T₀ (1 + θ₀²/16)
- Periodo exactoT = 4 √(L/g) · K(sen(θ₀/2)), con K integral elíptica completa
- Energía conservadaE = ½ L² θ′² + g L (1 − cos θ)
Dónde se aplica
Los relojes de péndulo se ajustan con amplitudes de pocos grados justamente para que el isocronismo se cumpla; el escape de áncora fue inventado para mantener la amplitud constante y evitar la deriva no lineal. En geofísica, el péndulo gravimétrico mide g con cinco cifras y sirve para prospección y para detectar cavidades, y el péndulo de Foucault demuestra la rotación terrestre. En robótica y control, el péndulo invertido es el problema de prueba por excelencia: equilibrarlo en el punto inestable es lo que hace un patinete autoequilibrado, y el péndulo doble, gobernado por ecuaciones análogas, es un ejemplo de libro de dinámica caótica.
Con programación (Python)
import math
g, L = 9.81, 1.0
def f(t, s):
return [s[1], -(g / L) * math.sin(s[0])]
def rk4(f, t, s, h):
a = f(t, s)
b = f(t + h / 2, [s[i] + h / 2 * a[i] for i in range(2)])
c = f(t + h / 2, [s[i] + h / 2 * b[i] for i in range(2)])
d = f(t + h, [s[i] + h * c[i] for i in range(2)])
return [s[i] + h * (a[i] + 2 * b[i] + 2 * c[i] + d[i]) / 6 for i in range(2)]
def periodo_medido(th0, h=0.0005, pasos=20000):
s, t, cruces = [th0, 0.0], 0.0, []
for _ in range(pasos):
prev = s[0]
s = rk4(f, t, s, h)
t += h
if prev * s[0] < 0:
cruces.append(t - h + h * prev / (prev - s[0]))
if len(cruces) == 3:
return cruces[2] - cruces[0]
return None
T0 = 2 * math.pi * math.sqrt(L / g)
print("Periodo lineal T0 =", round(T0, 6), "s")
for grados in [5, 30, 90, 150]:
th0 = math.radians(grados)
T = periodo_medido(th0)
print(grados, "grados -> T medido =", round(T, 5),
" serie =", round(T0 * (1 + th0 * th0 / 16), 5),
" exceso =", round(100 * (T / T0 - 1), 3), "%")La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.
Temas relacionados
Oscilador armónico amortiguado · Polinomios de Taylor · Métodos de Euler y Runge-Kutta