Modelos Continuos · Tema 11

Condiciones iniciales

El punto de partida de la trayectoria: dónde arranca la historia y cuánto pesa ese arranque al final.

01 · Punto de partida

La misma regla, infinitas historias

La ecuación dN/dt = 3 − 0,2·N sola no elige curva: desde N = 2 sube, desde N = 28 baja, desde N = 15 se queda. Lo que elige es la condición inicial x(0) = x₀: el punto donde la historia se sube a la regla.

Sin arranque no hay simulación: el integrador necesita un valor para evaluar la primera tasa. Y sin arranque declarado, el resultado no es reproducible.

  • ¿En qué valores arranca cada estado?
  • ¿Vienen medidos, supuestos o calibrados?
  • ¿Cuánto pesa el arranque en el horizonte elegido?
  • ¿Qué pasa si el arranque está mal medido?

02 · Definición

¿Qué es una condición inicial?

Un número por estado, en t = 0 (o t₀), con tres decisiones:

●

Valor

El número: N(0) = 2, P(0) = 10, [S, I, R](0) = [990, 10, 0]. Sin unidades no significa nada.

◐

Origen

Medido (sensor, censo), supuesto (escenario) o calibrado (ajuste a datos). Declararlo es honestidad.

≋

Peso

Cuánto decide el final: en convergencia se olvida, en exponencial escala todo, en caos manda.

EDO + condición inicial = problema de valor inicial: el objeto que el simulador resuelve. Cambiar x₀ sin avisar es cambiar de problema.

Orígenes típicos de x₀ y su riesgo.
OrigenEjemploRiesgo
MedidoNivel con sensor: 12,4 LRuido y sesgo del instrumento.
Supuesto«Tanque vacío al inicio»Escenario arbitrario que condiciona.
CalibradoP₀ que ajusta la curva a datosSobreajuste si hay pocos datos.
EquilibrioArrancar en N* = 15Esconde el transitorio real.

03 · Anatomía

Cuánto pesa el arranque

El peso de x₀ depende de la dinámica, no de tu voluntad:

Se olvida
Convergencia lineal: el desvío decae como e^(−k·t). En T grande, todo N₀ llega a N*.
Escala todo
Exponencial: P(t) = P₀·e^(r·t). Duplicar P₀ duplica toda la curva, siempre.
Decide el destino
Múltiples equilibrios o caos: el arranque elige cuenca. Lo veremos en Temas 25–27.
Vector completo
En sistemas, cada estado necesita el suyo: S(0), I(0), R(0). Uno inventado contamina a todos.

Arranque que se olvida

Tanque lineal en T = 30

N₀ = 2 y N₀ = 28 terminan en 14,97 y 15,03: el inicio pesa 0,06. El régimen manda.

Arranque que escala

Exponencial en T = 10

P₀ = 10 y P₀ = 15 terminan en 200 y 301: el cociente 1,5 no se mueve. El inicio manda.

04 · Arranques en modelos clásicos

Cada modelo pide su x₀

El arranque es parte del modelo, no un detalle de código:

x(0) = x₀→Regla f→Curva elegida
  1. 1
    Tanque.

    N(0): nivel medido hoy a las 0 h. Sin él no hay historia.

  2. 2
    Temperatura.

    T(0): la taza sale a 80 °C. El ambiente es entrada, no arranque.

  3. 3
    Población.

    P₀: conteo inicial. Cada individuo de más se multiplica.

  4. 4
    SIR.

    [S, I, R](0) = [990, 10, 0]: un infectado de más cambia el pico.

  5. 5
    Resorte.

    [x, v](0) = [3, 0]: soltar quieto no es lanzar.

05 · Representación en Python

x₀ es un argumento más, siempre explícito

En Python, la condición inicial es el argumento inicial del integrador: nunca global oculta, nunca «el último valor que quedó».

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Duplicá p0 y verificá que el final se duplica exacto.

import math


def exponencial(p0, r, t):
    return p0 * math.exp(r * t)


for p0 in [10, 15, 20]:
    print(p0, "→", round(exponencial(p0, 0.3, 10), 1))

10 → 200,9 · 15 → 301,3 · 20 → 401,7: el cociente se conserva porque P₀ factoriza.

Cociente que delata la escala

Si el modelo escala con x₀, el cociente final entre dos arranques es constante:

def cociente(p0_a, p0_b, r=0.3, t=10):
    return exponencial(p0_b, r, t) / exponencial(p0_a, r, t)


print(round(cociente(10, 15), 3))

06 · Exploración

Laboratorio: el arranque que no se olvida

Exponencial dP/dt = r·P desde P₀ (dorada) y desde 1,5·P₀ (teal). Cambiá r o P₀ y observá que el cociente final no se mueve: en divergencia, el inicio escala toda la historia.

EXPERIMENTO 11

Dos arranques, un cociente

P(t) = P₀ · e^(r·t) · T = 10

Los resultados numéricos aparecen debajo.
P final desde P₀200,86
P final ×1,5301,29
Cociente final1,50
LecturaEscala exacta

De cociente inicial 1,50 a cociente final 1,50: el arranque escala todo.

En escala lineal el abanico se abre; en logaritmo serían paralelas: la firma de la exponencial es cociente constante.

Preguntas para explorar

  1. Con r = 0,05, ¿el cociente final sigue en 1,5? ¿Y la diferencia absoluta?
  2. Si el factor es 2 y P₀ = 5, ¿a qué valor llega la segunda curva en T = 10 con r = 0,3?
  3. ¿Qué pasaría con este cociente en el tanque lineal del Tema 5?
Ver respuestas sugeridas
  1. El cociente sí (1,5); la diferencia se achica (16,5 → 24,7: solo 8 de brecha). Cociente manda, diferencia engaña.
  2. A 2 × 5 × e³ ≈ 200,9: el arranque multiplica, r exponencia.
  3. Tendería a 1: el abanico se cierra y el cociente se olvida. Olvido vs escala.

07 · Comprensión

Confusiones frecuentes

«x₀ es un detalle de código»

Es parte del problema matemático: EDO + x₀ definen la curva. Cambiarlo sin registrar es cambiar de experimento.

«Si converge, x₀ no importa»

No importa al final, pero sí en el transitorio: picos, rebalses y costos viven ahí. Y en T corto manda todavía.

«Un x₀ redondo es inocente»

Arrancar en 0 o en N* es un escenario fuerte: esconde el arranque real y puede mostrar un régimen que nunca ocurre.

«En sistemas basta un arranque»

Cada estado necesita el suyo: S(0) sin I(0) no arranca. Un vector incompleto es un modelo roto.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: una EDO, dos historias

Con q = 3 y k = 0,2, calculá N(10) desde N₀ = 2 y desde N₀ = 28. ¿Se acercan?

import math


def n_t(n0, q=3, k=0.2, t=10):
    return q / k + (n0 - q / k) * math.exp(-k * t)


print(round(n_t(2), 2), round(n_t(28), 2))
Ver solución

13,24 y 16,76: de 26 de brecha quedan 3,5. Van al mismo N* = 15 desde lados opuestos.

Ejercicio 2: escala exponencial

Desde P₀ = 8 con r = 0,25 en T = 8, ¿cuánto da? ¿Y desde el doble? Verificá el cociente.

import math


def p_t(p0, r=0.25, t=8):
    return p0 * math.exp(r * t)


a, b = p_t(8), p_t(16)
print(round(a, 1), round(b, 1), round(b / a, 3))
Ver solución

59,1 y 118,2, cociente 2,0: el arranque duplica toda la curva.

Ejercicio 3: vector inicial SIR

Armá el vector [S, I, R](0) con N = 1000 e I₀ = 1, 10 y 100. ¿Qué cambia y qué se conserva?

Ver una posible respuesta
def vector_sir(n, i0):
    return {"S": n - i0, "I": i0, "R": 0}


for i0 in [1, 10, 100]:
    print(i0, vector_sir(1000, i0))

La suma siempre es 1000 (conservación); lo que cambia es la semilla I₀, que adelanta y agranda el pico. El arranque decide la epidemia.

09 · Síntesis

Ideas para recordar

  • x(0) = x₀ elige la curva: EDO + arranque = problema de valor inicial.
  • El arranque se olvida (convergencia), escala (exponencial) o decide (múltiples equilibrios).
  • Declarar valor, origen y unidades de x₀ es parte del modelo, no del código.
  • En Python: x0 argumento explícito; comparar dos arranques revela olvido vs escala.
  • En sistemas, el vector inicial debe estar completo: un estado sin arranque rompe todo.

En el próximo tema veremos modelos nacidos de leyes naturales: cuando la física escribe f por nosotros.