01 · Punto de partida
Todo modelo continuo empieza por un flujo
Antes de escribir una ecuación diferencial, hay una pregunta previa: ¿qué es lo que fluye y sin detenerse? El nivel de un tanque con canillas abiertas, la temperatura de una taza que se enfría, una población de bacterias que se divide, la carga de una batería o los primeros contagios de una epidemia son sistemas continuos: su estado cambia en todo instante, no a saltos.
Reconocer ese flujo es la mitad del trabajo. Si lo tratamos como una secuencia de pasos sueltos, perdemos lo esencial: la tasa a la que cambia en cada momento.
- ¿Qué magnitud se acumula o se pierde de forma permanente?
- ¿A qué velocidad cambia en cada instante?
- ¿Qué entra y qué sale sin interrupción?
- ¿Qué detalle temporal podemos ignorar y cuál no?
02 · Definición
¿Qué es un sistema continuo?
Un sistema continuo se describe con tres elementos mínimos:
Tiempo continuo
El reloj no avanza por turnos: entre dos instantes siempre hay más instantes. Ejemplo: t = 2,37 s también existe.
Estado continuo
El nivel puede valer 10, 10,5 o 10,53 litros: no hay escalones obligatorios. Ejemplo: temperatura, nivel, población modelada como densidad.
Tasa de cambio
La velocidad instantánea del cambio: cuánto subiría por unidad de tiempo si todo siguiera igual. Ejemplo: +1 litro por minuto.
El cuarto elemento es la trayectoria: la curva completa que dibuja el estado a lo largo del tiempo. Esa curva es lo que luego intentaremos predecir con una ecuación y reproducir con un método numérico.
| Fenómeno | Mirada discreta | Mirada continua |
|---|---|---|
| Tanque con canillas | Nivel medido cada hora | Nivel que fluye en todo instante |
| Temperatura | Registro del termómetro cada minuto | Enfriamiento permanente hacia el ambiente |
| Población | Censo una vez por año | Nacimientos y muertes gota a gota |
| Epidemia | Casos reportados por día | Contagios que ocurren a cada momento |
03 · Flujo permanente
Niveles, flujos y tasas
En un sistema continuo, el nivel acumula lo que los flujos aportan o retiran sin pausa. La diferencia entre el flujo de entrada y el de salida es la tasa neta: si es positiva, el nivel sube; si es negativa, baja; si es cero, el sistema está en equilibrio.
Sistema discreto
Avanza por pasos
El estado se actualiza en instantes separados: nivel(t+1) = nivel(t) + entrada − salida. Entre pasos, nada cambia.
Sistema continuo
Fluye sin detenerse
El estado cambia en todo momento: dN/dt = entrada − salida. La curva entre dos mediciones también existe y tiene forma.
- Nivel
- Estado acumulado: litros, grados, individuos, carga. Se denota x(t) o N(t).
- Flujo
- Aporte o retiro por unidad de tiempo: litros por minuto, grados por hora.
- Tasa neta
- Entradas menos salidas en cada instante: dx/dt. Define la pendiente de la curva.
- Trayectoria
- La curva x(t) completa: el objeto que queremos modelar y simular.
04 · Ejemplos
Sistemas continuos que un programador puede simular
El patrón nivel → flujos → tasa aparece en dominios muy distintos. Reconocerlo permite reutilizar las mismas técnicas numéricas:
- 1Tanque con canillas.
Nivel: litros. Tasa: caudal de entrada menos caudal de salida. Curva: recta que sube o baja.
- 2Taza que se enfría.
Nivel: temperatura. Tasa: proporcional a la diferencia con el ambiente. Curva: descenso que se suaviza.
- 3Bacterias en cultivo.
Nivel: población. Tasa: proporcional a la población presente. Curva: crecimiento que se acelera.
- 4Batería en carga.
Nivel: carga. Tasa: corriente de entrada menos consumo. Curva: subida con techo.
- 5Contagio inicial.
Nivel: infectados. Tasa: contactos por susceptible por infectado. Curva: despegue exponencial.
05 · Representación en Python
Describir un flujo con datos
En Python, el primer paso es dejar por escrito el sistema continuo: nombre, nivel, flujos y tasa. Todavía no integramos; solo declaramos qué fluye.
Python en tu navegador. Los bloques de esta página se ejecutan localmente con Pyodide, sin instalar nada. La primera ejecución tarda unos segundos mientras se descarga el intérprete; las siguientes son inmediatas. Podés editar el código y volver a ejecutarlo.
sistema_tanque = {
"nombre": "Tanque con canillas abiertas",
"nivel": "litros en el tanque: N(t)",
"flujos": ["entrada: 3 L/min", "salida: 2 L/min"],
"tasa": "dN/dt = entrada - salida = +1 L/min",
}
for clave, valor in sistema_tanque.items():
print(clave, ":", valor)
Consejo: cambiá la tasa a +0 o a un valor negativo y anticipá si la curva subirá, se quedará plana o bajará.
Del flujo a la curva
Para dibujar la trayectoria aproximamos lo continuo con pasos muy finos dt: en cada mini-paso sumamos tasa * dt. Con dt pequeño, la poligonal se parece mucho a la curva real. Esta idea —integrar por pasos finos— será la base del método de Euler:
def trayectoria_continua(nivel_inicial, entrada, salida, t_final, dt=0.1):
nivel = nivel_inicial
t = 0.0
historia = [(t, nivel)]
while t < t_final - 1e-9:
tasa = entrada - salida
nivel = nivel + tasa * dt
if nivel < 0:
nivel = 0
t = t + dt
historia.append((round(t, 2), round(nivel, 2)))
return historia
for t, n in trayectoria_continua(10, 3, 2, 5, dt=1.0):
print(f"t={t}: N={n}")
06 · Exploración
Laboratorio: el tanque que nunca se detiene
Movete los controles y observá el sistema continuo más simple: un tanque con caudal de entrada y caudal de salida siempre abiertos. La línea sólida es la trayectoria continua; los puntos son tus mediciones cada cierto intervalo. El sistema fluye igual aunque midas poco.
Tanque continuo y muestreo
dN/dt = entrada − salida
Con entrada 3 y salida 2, la tasa es +1 por minuto.
La curva muestra el nivel en todo instante. Los puntos muestran cuándo lo medís: si medís cada 4 minutos ves pocos puntos, pero el flujo entre ellos sigue existiendo.
Preguntas para explorar
- Igualá entrada y salida. ¿Qué forma tiene la curva? ¿Cómo se llama ese estado?
- Poné la salida mayor que la entrada con nivel inicial 10. ¿En qué tiempo se vacía? ¿La curva se detiene o se queda en cero?
- Agrandá el intervalo de medición a 4. ¿Cambió el sistema o solo tu observación?
Ver respuestas sugeridas
- La curva queda horizontal: tasa 0. Es un equilibrio continuo.
- Con entrada 3 y salida 4 la tasa es −1: se vacía en t = 10 min y luego se queda en cero (el tanque no baja del fondo).
- Solo cambió tu observación: la curva continua es la misma, ves menos puntos. El sistema fluye igual entre mediciones.
07 · Comprensión
Confusiones frecuentes
«Si lo programo por pasos, ya es discreto»
No: los pasos dt son una aproximación numérica. El sistema modelado sigue siendo continuo; con dt más fino la poligonal se acerca más a la curva real.
«Si mido cada hora, el sistema cambia cada hora»
La medición es discreta, el fenómeno no. Entre dos mediciones el nivel siguió fluyendo; la recta que los une es solo una suposición.
«Continuo significa lineal»
No: continuo significa sin saltos, no en línea recta. La tasa puede depender del nivel (como veremos en el crecimiento exponencial) y la curva se dobla.
«Más ecuaciones significan mejor modelo»
Más detalle implica más tasas que estimar y más error posible. El recorte continuo debe responder a la pregunta, no a la ambición.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: declarar el sistema continuo
Completá el diccionario para el sistema «taza que se enfría» y ejecutalo. Luego cambiá los flujos y razoná qué curva esperás.
taza = {
"nombre": "Taza que se enfría",
"nivel": "temperatura T(t) en grados",
"flujos": ["pérdida hacia el ambiente"],
"tasa": "dT/dt = -k * (T - T_ambiente)",
}
print("Nivel:", taza["nivel"])
print("Tasa:", taza["tasa"])
Ver solución razonada
El nivel es una temperatura continua y la tasa depende del propio nivel: cuanto más caliente, más rápido se enfría. La curva baja rápido al principio y se suaviza cerca del ambiente. No es una recta: es el primer indicio de dinámica no lineal.
Ejercicio 2: predecir con la fórmula continua
Sin ejecutar primero: si el tanque empieza en 5, entran 4 y salen 4 por minuto durante 3 minutos, ¿qué niveles esperás en t = 0, 1, 2, 3? Después comprobalo con código.
def nivel_continuo(nivel_inicial, entrada, salida, tiempos):
tasa = entrada - salida
return [nivel_inicial + tasa * t for t in tiempos]
print(nivel_continuo(5, 4, 4, [0, 1, 2, 3]))
Ver solución
La tasa es 0, así que el nivel queda fijo: [5, 5, 5, 5]. La curva es horizontal: el sistema está en equilibrio continuo.
Ejercicio 3: tiempo de vaciado continuo
Escribí una función que devuelva en qué tiempo el tanque llega a cero (o None si nunca se vacía). Probala con nivel 6, entrada 1, salida 3.
Ver una posible respuesta
def tiempo_de_vaciado(nivel_inicial, entrada, salida):
tasa = entrada - salida
if tasa >= 0:
return None
return nivel_inicial / (salida - entrada)
print(tiempo_de_vaciado(6, 1, 3))
La tasa es −2 por minuto, así que tarda 6 / 2 = 3 min. En tiempo continuo el vaciado ocurre exactamente en t = 3, no «en el paso 3»: entre t = 2,5 y t = 3 el nivel pasó por todos los valores intermedios.
09 · Síntesis
Ideas para recordar
- Un sistema continuo combina nivel continuo, flujos permanentes, tasa instantánea y trayectoria.
- La tasa dx/dt es la pendiente de la curva en cada instante: su signo dice si el nivel sube, baja o reposa.
- Medir por intervalos no vuelve discreto al sistema: el flujo entre mediciones sigue existiendo.
- En Python, un flujo se declara con datos y se aproxima con pasos finos dt; con dt pequeño la poligonal imita la curva.
- El tanque con entrada y salida constantes es el arquetipo: tasa fija, trayectoria recta y equilibrio cuando se igualan.
En el próximo tema estudiaremos el tiempo continuo: cómo representar el reloj que nunca se detiene y por qué el paso dt es una decisión numérica, no una propiedad del sistema.