01 · Punto de partida
Cuando la velocidad no alcanza
Un resorte estirado no vuelve directo al reposo: pasa de largo, oscila y recién después se queda. La posición sola no explica el futuro: hay que conocer también la velocidad. Y la velocidad cambia según la aceleración: aparece la segunda derivada.
Las ecuaciones de orden superior modelan inercias: lo que se mueve tiende a seguir moviéndose y lo elástico tiende a devolver.
- ¿La regla habla de posición, de velocidad o de aceleración?
- ¿Qué dos datos iniciales necesito: dónde y con qué velocidad?
- ¿Oscila, se frena de golpe o ni se mueve?
- ¿Cómo la convierto en dos ecuaciones de primer orden?
02 · Definición
¿Qué es una EDO de orden superior?
El orden lo manda la derivada mayor. Tres ideas ordenan el tema:
Orden 2
Aparece la aceleración: d²x/dt² = f(x, v, t). Ejemplo: resorte con amortiguador.
Dos estados
Posición x y velocidad v = dx/dt. Dos memorias, dos condiciones iniciales.
Oscilación
La inercia pasa de largo y la elasticidad devuelve: nace el vaivén amortiguado.
La conversión es mecánica: se crea la variable v para la velocidad y la ecuación de orden 2 se parte en dos de orden 1. Desde ahí, Euler y Runge-Kutta sirven sin cambios.
| EDO | Orden | Estados y arranques |
|---|---|---|
| dN/dt = q − k·N | 1 | N; un dato: N(0). |
| d²x/dt² = −k·x − c·v | 2 | x, v; dos datos: x(0), v(0). |
| dx/dt = v, dv/dt = −k·x − c·v | 1 + 1 | Sistema de 2: lo mismo, partido. |
| SIR (tres EDOs) | 1 × 3 | S, I, R; tres datos iniciales. |
03 · Anatomía
Resorte y amortiguador: el arquetipo
El modelo x'' = −k·x − c·v concentra todo el tema (masa m = 1):
- Rigidez k
- Fuerza elástica que devuelve al cero: más k, vaivén más rápido. Período ≈ 2π/√k.
- Amortiguamiento c
- Freno proporcional a la velocidad: disipa energía y apaga la oscilación.
- Subamortiguado
- c chico: oscila cruzando el cero varias veces antes de quedarse.
- Sobreamortiguado
- c grande: vuelve al cero sin cruzar, lento y sin fiesta.
Sin amortiguador (c = 0)
Oscila para siempre
La energía se conserva: x(t) es un coseno puro que nunca se apaga. Útil como referencia, irreal como modelo.
Con amortiguador (c > 0)
Oscila y se queda
Cada cruce es más bajo que el anterior: la envolvente decae como e^(−c·t/2) hacia el reposo.
04 · Orden superior en el curso
Dónde reaparece la inercia
Cada vez que algo «pasa de largo», hay un orden 2 escondido:
- 1Resorte-masa.
x'' = −k·x − c·v. Vaivén amortiguado hacia 0.
- 2Péndulo chico.
θ'' = −(g/L)·θ − c·θ'. Igual que el resorte con otros nombres.
- 3Movimiento con fricción.
dx/dt = v, dv/dt = a − c·v. La velocidad converge, la posición avanza.
- 4Tanque con inercia.
Caudal que tarda en responder: el nivel oscila antes de asentarse.
- 5SIR con latencia.
Expuestos E entre S e I: el pico se retrasa y se suaviza (Tema 20).
05 · Representación en Python
Partir la EDO en (x, v) e integrar
En Python, el estado es el par (x, v) y la dinámica devuelve el par (v, a). Euler semi-implícito (primero v, luego x) es estable y simple para empezar.
Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Bajá c a 0 y observá la oscilación perpetua.
def aceleracion(x, v, k=2.0, c=0.3):
return -k * x - c * v
def paso(x, v, dt, k=2.0, c=0.3):
a = aceleracion(x, v, k, c)
v_nueva = v + a * dt
x_nueva = x + v_nueva * dt
return x_nueva, v_nueva
x, v = 3.0, 0.0
for _ in range(5):
x, v = paso(x, v, dt=0.1)
print(round(x, 3), round(v, 3))
La posición cae y la velocidad se hace negativa: el resorte ya tira de vuelta.
Simular la historia completa
El mismo paso en un bucle hasta T dibuja el vaivén amortiguado:
def simular(x0, v0, k, c, t_final, dt=0.05):
x, v, t = x0, v0, 0.0
historia = [(t, x)]
while t < t_final - 1e-9:
a = -k * x - c * v
v = v + a * dt
x = x + v * dt
t += dt
historia.append((round(t, 2), round(x, 3)))
return historia
hist = simular(3, 0, 2.0, 0.3, 2.0)
print(hist[0], "…", hist[-1])
06 · Exploración
Laboratorio: del vaivén al reposo
Resorte x'' = −k·x − c·v desde x₀ = 3, v₀ = 0. La dorada es la posición; la teal, la velocidad (escala propia). Subí c y observá cómo muere la oscilación; subí k y observá cómo se acelera el vaivén.
Inercia y freno
x'' = −k · x − c · v · x(0) = 3
Con k 2 y c 0,3 hay 9 cruces: el vaivén se apaga hacia 0.
La velocidad adelanta a la posición en un cuarto de ciclo: cuando x cruza el cero, v es máxima; cuando x toca un extremo, v se anula.
Preguntas para explorar
- Con c = 0, ¿cuántos cruces hay en T = 20? ¿La amplitud decae?
- Con c = 1,5, ¿llega a cruzar el cero? ¿Qué régimen es?
- Duplicá k con el mismo c. ¿El vaivén es más rápido o más lento?
Ver respuestas sugeridas
- Máximos cruces y amplitud intacta: oscilación perpetua sin disipación.
- Casi no cruza: sobreamortiguado, vuelve al cero sin fiesta.
- Más rápido: la frecuencia crece como √k y el período se acorta.
07 · Comprensión
Confusiones frecuentes
«Orden 2 es el doble de difícil»
No: es el doble de estados con la misma idea. Partido en (x, v), Euler y RK sirven sin cambios.
«Con x(0) alcanza»
Falta v(0): dos memorias piden dos arranques. Soltar el resorte quieto (v = 0) no es lo mismo que lanzarlo.
«Si oscila, está mal calibrado»
La oscilación es física (inercia + elasticidad), no error numérico. El error numérico cambia amplitud y fase; la física pone la forma.
«Euler explícito sirve igual»
Con oscilaciones, el explícito puro inyecta energía y puede agrandar el vaivén. El semi-implícito conserva mejor con el mismo dt.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: partir en sistema
Escribí la conversión de x'' = −4·x − 0,5·v a dos EDOs de orden 1 y evaluá las derivadas en x = 1, v = 2.
def sistema(x, v, k=4, c=0.5):
dx_dt = v
dv_dt = -k * x - c * v
return dx_dt, dv_dt
print(sistema(1, 2))
Ver solución
(2, −5,0): la posición crece a 2/s pero la aceleración ya es −5: el freno elástico domina.
Ejercicio 2: período aproximado
Sin simular: si k = 4, ¿cuál es el período natural 2π/√k? ¿Cuántas oscilaciones caben en T = 20?
import math
def periodo(k):
return 2 * math.pi / math.sqrt(k)
print(round(periodo(4), 2), "→", round(20 / periodo(4), 1), "ciclos")
Ver solución
3,14 s por ciclo: unas 6,4 oscilaciones en T = 20 (sin amortiguar; con c se alarga un poco).
Ejercicio 3: contar cruces
Simulá con el paso semi-implícito y contá cuántas veces x cruza el cero. Probalo con k = 2, c = 0,3, x₀ = 3.
Ver una posible respuesta
def cruces(x0, k, c, t_final, dt=0.02):
x, v, t, n = x0, 0.0, 0.0, 0
previo = x
while t < t_final - 1e-9:
a = -k * x - c * v
v = v + a * dt
x = x + v * dt
t += dt
if previo == 0 or x * previo < 0:
n += 1
previo = x
return n
print(cruces(3, 2.0, 0.3, 20))
Da 9 cruces: subamortiguado clásico. Con c = 0 serían ~13; con c = 1,5 apenas 1 o ninguno.
09 · Síntesis
Ideas para recordar
- Orden 2 = aceleración: x'' = f(x, v, t) con x(0) y v(0).
- Se parte en sistema: dx/dt = v, dv/dt = f; dos estados, mismos métodos.
- k pone la frecuencia (≈ 2π/√k), c pone el apagado (envolvente e^(−c·t/2)).
- En Python: estado (x, v) + paso semi-implícito (primero v, luego x).
- Subamortiguado oscila, sobreamortiguado vuelve sin cruzar, sin c oscila perpetuo.
En el próximo tema acoplaremos ecuaciones: sistemas de EDOs donde varios estados evolucionan juntos.