Modelos Continuos · Tema 09

Orden superior

Aceleraciones, inercias y oscilaciones: cuando la velocidad también tiene memoria.

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.

Orden, estados y datos iniciales.
EDOOrdenEstados y arranques
dN/dt = q − k·N1N; un dato: N(0).
d²x/dt² = −k·x − c·v2x, v; dos datos: x(0), v(0).
dx/dt = v, dv/dt = −k·x − c·v1 + 1Sistema de 2: lo mismo, partido.
SIR (tres EDOs)1 × 3S, 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:

Inercia x''→Sistema (x, v)→Curva + oscilación
  1. 1
    Resorte-masa.

    x'' = −k·x − c·v. Vaivén amortiguado hacia 0.

  2. 2
    Péndulo chico.

    θ'' = −(g/L)·θ − c·θ'. Igual que el resorte con otros nombres.

  3. 3
    Movimiento con fricción.

    dx/dt = v, dv/dt = a − c·v. La velocidad converge, la posición avanza.

  4. 4
    Tanque con inercia.

    Caudal que tarda en responder: el nivel oscila antes de asentarse.

  5. 5
    SIR 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.

EXPERIMENTO 09

Inercia y freno

x'' = −k · x − c · v · x(0) = 3

Los resultados numéricos aparecen debajo.
x final (T=20)−0,01
v final+0,02
Cruces por cero9
RégimenOscila amortiguado

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

  1. Con c = 0, ¿cuántos cruces hay en T = 20? ¿La amplitud decae?
  2. Con c = 1,5, ¿llega a cruzar el cero? ¿Qué régimen es?
  3. Duplicá k con el mismo c. ¿El vaivén es más rápido o más lento?
Ver respuestas sugeridas
  1. Máximos cruces y amplitud intacta: oscilación perpetua sin disipación.
  2. Casi no cruza: sobreamortiguado, vuelve al cero sin fiesta.
  3. 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.