Modelos Continuos · Tema 25

Puntos de equilibrio

Donde el sistema se detiene: resolver f = 0 y leer el destino antes de simular.

01 · Punto de partida

El sistema quieto en movimiento

El tanque en N* = 15 sigue recibiendo 3 y soltando 3 por minuto: el nivel no se mueve porque los flujos se compensan. Ese es el equilibrio: tasa cero con flujos activos. Encontrarlo es resolver f(x*) = 0, sin integrar nada.

Todo destino del curso —techos, ambientes, capacidades, R(∞)— es un equilibrio de alguna f. Cazarlos primero ahorra simulaciones.

  • ¿Dónde se anula cada tasa?
  • ¿El equilibrio mueve flujos o es reposo total?
  • ¿Cuántos hay y dónde están ordenados?
  • ¿Cuál sobrevive si cambio un parámetro?

02 · Definición

¿Qué es un punto de equilibrio?

Cero de la regla, candidato a destino:

=0

Cero de f

Valor x* con f(x*) = 0: la pendiente se anula. Ejemplo: q − k·N* = 0 → N* = q/k.

⇄

Flujos que empatan

Entradas = salidas: 3 L/min contra 3 L/min. Equilibrio dinámico, no apagado.

◎

Conjunto

En sistemas, todas las tasas en cero a la vez: f₁ = 0 y f₂ = 0 juntas.

Arrancar justo en x* dibuja una horizontal perfecta: la prueba de que el álgebra y el integrador coinciden.

Equilibrios que ya calculaste sin saberlo.
Modelof = 0Equilibrios
Tanque q − kNq − kN* = 0N* = q/k (uno).
LogísticorP(1 − P/K) = 00 y K (dos).
Enfriamiento−k(T − T_amb) = 0T* = T_amb.
SIR (I = 0)Contagio = 0Toda la línea I = 0.

03 · Anatomía

Cazar, ordenar y contar equilibrios

La receta algebraica:

Igualar a cero
Plantear f(x) = 0 y despejar: lineal da uno, cuadrática da dos, SIR da una recta.
Ordenar en la fase
Ubicarlos en la recta: 0 < K·(1 − h/r) < K. El orden decide las flechas.
Colisión
Si dos se juntan y desaparecen, el sistema cambia de régimen (bifurcación). Con cosecha h = r colapsa.
En sistemas
Resolver el sistema f₁ = 0, f₂ = 0: cascada da (q/k₁, q/k₂); SIR da (S*, 0).

Un equilibrio

Tanque lineal

N* = q/k: un solo cero, destino único. No hay dónde perderse.

Dos equilibrios

Logístico con cosecha

0 y K·(1 − h/r): si h crece, el segundo baja hasta chocar con 0 y el sistema colapsa.

04 · Equilibrios del curso

El catálogo de destinos

Cada destino con nombre es un f = 0 resuelto:

f(x)→f = 0→x*
  1. 1
    Tanque.

    N* = q/k: compensa entrada y desagüe.

  2. 2
    Ambiente.

    T* = T_amb (+ P/k con fuente).

  3. 3
    Capacidad.

    P* = K (y 0): techo y vacío.

  4. 4
    Cosecha.

    P* = K·(1 − h/r): el techo baja con la extracción.

  5. 5
    SIR.

    I* = 0 con cualquier S*: línea de equilibrios.

05 · Representación en Python

Resolver f = 0 antes de simular

En Python, los equilibrios son una función que despeja la fórmula: sin bucles, sin dt. La simulación después verifica.

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Subí h sobre r y observá el colapso a 0.

def equilibrios_cosecha(r=0.3, k=100.0, h=0.1):
    if h >= r:
        return [0.0]
    return [0.0, k * (1 - h / r)]


for h in [0.0, 0.1, 0.3, 0.4]:
    print(h, equilibrios_cosecha(h=h))

K·(1 − h/r): 100 → 66,7 → colapso en 0 cuando h ≥ r.

Verificar que reposa

En el equilibrio la tasa es cero con flujos activos:

def f(p, r=0.3, k=100.0, h=0.1):
    return r * p * (1 - p / k) - h * p


p_star = 100 * (1 - 0.1 / 0.3)
print(round(p_star, 1), round(f(p_star), 6))

06 · Exploración

Laboratorio: la cosecha que baja el techo

Logístico con cosecha f(P) = r·P·(1 − P/K) − h·P, K = 100. Izquierda: órbitas desde P₀ = 10 y 90. Derecha: parábola f(P) con sus ceros marcados: 0 y K·(1 − h/r). Subí h y mirá cómo el segundo cero camina hacia 0 hasta colapsar.

EXPERIMENTO 25

Ceros que se mueven

f(P) = r·P·(1 − P/K) − h·P · K = 100

Los resultados numéricos aparecen debajo.
Equilibrios0 y 66,7
P final de 1066,62
P final de 9066,68
LecturaTecho con cosecha

Con h 0,1 el techo baja a 66,7: ambas órbitas aterrizan ahí.

La parábola se hunde con h: sus cruces con cero son los destinos. Cuando h ≥ r solo queda el 0: colapso.

Preguntas para explorar

  1. Con h = 0, ¿dónde están los ceros? ¿Y con h = 0,3 = r?
  2. Con h = 0,4 > r, ¿a dónde van las órbitas desde 10 y 90?
  3. Si P₀ = 0 exacto, ¿la órbita se mueve? ¿Qué equilibrio es?
Ver respuestas sugeridas
  1. En 0 y 100; con h = r chocan en 0: la cosecha se come el techo.
  2. Ambas a 0: extracción mayor que el neto vacía. Colapso total.
  3. No: 0 es equilibrio (repele si r > h, atrae si h > r). Vacío exacto no despega solo.

07 · Comprensión

Confusiones frecuentes

«Si f = 0, está apagado»

No: en 66,7 nacen y se cosechan r·P·(1 − P/K) = h·P por minuto. El nivel reposa, los flujos no.

«Un equilibrio basta»

Hay que listarlos todos: el 0 olvidado decide el colapso cuando h ≥ r.

«El equilibrio se lee del final simulado»

Al revés: se calcula con álgebra y la simulación lo verifica. Leerlo del final confunde transitorio con destino.

«Si hay línea de equilibrios, da igual»

No: en SIR cada punto (S*, 0) es equilibrio con distinto ataque. Dónde se aterriza sí importa.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: techo con cosecha

Con r = 0,4, K = 200 y h = 0,1, ¿dónde queda el techo efectivo? ¿Y con h = 0,5?

def techo(r, k, h):
    return 0.0 if h >= r else k * (1 - h / r)


print(techo(0.4, 200, 0.1))
print(techo(0.4, 200, 0.5))
Ver solución

150,0 y 0 (colapso): con h > r la extracción vence al neto.

Ejercicio 2: verificar el cero

Con r = 0,3, K = 100 y h = 0,1, evaluá f en P* = 66,67. ¿Da cero con flujos activos?

def f(p, r=0.3, k=100.0, h=0.1):
    return r * p * (1 - p / k) - h * p


p_star = 100 * (1 - 0.1 / 0.3)
print(round(p_star, 2), round(f(p_star), 6))
Ver solución

66,67 con f ≈ 0: nacen 6,67 y se cosechan 6,67 por minuto. Cero neto, flujos vivos.

Ejercicio 3: colisión de equilibrios

Barré h de 0 a 0,6 con r = 0,3 y K = 100 y listá los equilibrios. ¿Dónde colapsa?

Ver una posible respuesta
def equilibrios(h, r=0.3, k=100.0):
    return [0.0] if h >= r else [0.0, round(k * (1 - h / r), 1)]


for h in [0.0, 0.1, 0.2, 0.3, 0.4, 0.6]:
    print(h, equilibrios(h))

El segundo cero baja 100 → 66,7 → 33,3 y choca en 0 con h = 0,3: desde ahí solo queda el colapso.

09 · Síntesis

Ideas para recordar

  • Equilibrio ⟺ f(x*) = 0 con flujos que se compensan; se calcula, no se simula.
  • Hay que listarlos todos y ordenarlos: el olvidado decide el colapso.
  • Con cosecha: 0 y K·(1 − h/r); si h ≥ r solo queda 0.
  • En Python: equilibrios() ordenada + verificación f(x*) ≈ 0.
  • Encontrar es el paso 1; el paso 2 es la estabilidad (Tema 26).

En el próximo tema probaremos si esos puntos atraen o repelen: la estabilidad.