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.
| Origen | Ejemplo | Riesgo |
|---|---|---|
| Medido | Nivel con sensor: 12,4 L | Ruido y sesgo del instrumento. |
| Supuesto | «Tanque vacío al inicio» | Escenario arbitrario que condiciona. |
| Calibrado | P₀ que ajusta la curva a datos | Sobreajuste si hay pocos datos. |
| Equilibrio | Arrancar en N* = 15 | Esconde 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:
- 1Tanque.
N(0): nivel medido hoy a las 0 h. Sin él no hay historia.
- 2Temperatura.
T(0): la taza sale a 80 °C. El ambiente es entrada, no arranque.
- 3Población.
P₀: conteo inicial. Cada individuo de más se multiplica.
- 4SIR.
[S, I, R](0) = [990, 10, 0]: un infectado de más cambia el pico.
- 5Resorte.
[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.
Dos arranques, un cociente
P(t) = P₀ · e^(r·t) · T = 10
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
- Con r = 0,05, ¿el cociente final sigue en 1,5? ¿Y la diferencia absoluta?
- Si el factor es 2 y P₀ = 5, ¿a qué valor llega la segunda curva en T = 10 con r = 0,3?
- ¿Qué pasaría con este cociente en el tanque lineal del Tema 5?
Ver respuestas sugeridas
- El cociente sí (1,5); la diferencia se achica (16,5 → 24,7: solo 8 de brecha). Cociente manda, diferencia engaña.
- A
2 × 5 × e³ ≈ 200,9: el arranque multiplica, r exponencia. - 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.