01 · Punto de partida
Del dibujo a la ecuación
El esquema dice «el nivel sube con la entrada y baja con la salida». La formulación matemática lo escribe sin ambigüedad: n(t+1) = n(t) + e − s. Esa precisión permite verificar, comparar y programar sin adivinar.
- ¿Cómo se escribe esta flecha con símbolos?
- ¿Qué significa cada letra y en qué unidades?
- ¿La ecuación cubre bordes y casos raros?
- ¿Código y ecuación dan lo mismo?
02 · Las ecuaciones del curso
Cuatro fórmulas que ya conocés
Balance
Lo que entra menos lo que sale: la contabilidad de todo sistema.
Recurrencia
El próximo estado en función del actual: la marcha del tiempo.
Acumulación
La suma de aportes: totales, promedios y métricas.
| Relato | Ecuación |
|---|---|
| El nivel sube con la entrada | n(t+1) = n(t) + e − s |
| No baja de cero ni pasa el tope | n = mín(máx(n, 0), TOPE) |
| El total del día | T = v₁ + v₂ + ··· + v₈ |
| La ganancia por demanda | G(d) = m × d − F |
03 · Ingredientes formales
Cómo escribir sin ambigüedad
- 1Nombrá y tipificá.
Cada letra con significado y unidades: n en litros, t en pasos.
- 2Indexá el tiempo.
t, t+1: quién es antes y quién después, siempre explícito.
- 3Cubrí los bordes.
mín, máx y condicionales: la ecuación también respeta el contorno.
- 4Contrastá con código.
Mismos datos, mismo resultado: ecuación y programa empatan.
Ecuación
Exacta y compacta
Declara el comportamiento de una vez: ideal para verificar y comunicar.
Código
Ejecutable y flexible
Recorre casos, topes y azar: ideal para experimentar.
- Recurrencia
- Ecuación que define el siguiente a partir del actual.
- Forma cerrada
- Resultado directo sin iterar: n(t) = n₀ + b × t.
- Definición por partes
- Reglas distintas según la zona (con o sin tope).
- Notación
- Acuerdo de símbolos: el idioma del equipo.
04 · Puentes
La ecuación que verifica
El Tema 25 llevará esta ecuación al programa definitivo. Por ahora: toda recurrencia del curso debe poder escribirse y leerse en voz alta.
05 · En Python
Ecuaciones que corren
Python en tu navegador. Cada ecuación es una función de una línea: la matemática hecha código.
def cerrado(n0, balance, t):
# Forma cerrada: n(t) = n0 + b * t.
return max(n0 + balance * t, 0)
def recurrente(n0, balance, pasos):
# Recurrencia: n(t+1) = n(t) + b.
n = n0
for t in range(pasos):
n = max(n + balance, 0)
return n
print(cerrado(10, 2, 6), recurrente(10, 2, 6))
Sumatorias que resumen
ventas = [5, 8, 6, 9]
def total(xs):
# T = x1 + x2 + ... + xn.
return sum(xs)
print("total:", total(ventas))
print("promedio:", round(total(ventas) / len(ventas), 2))
06 · Exploración
Laboratorio: dónde muere la fórmula ingenua
La recta es la fórmula cerrada ingenua (sin tope); la curva, la recurrencia con tope. Se separan justo donde el contorno actúa. Movete el tope.
Cerrada contra recurrencia
n(t) = n₀ + b·t vs. con tope
La fórmula ingenua sigue de largo; la recurrencia se ameseta en 30.
La brecha entre ambas es el error de ignorar el contorno en la ecuación.
Preguntas para explorar
- Con tope 50, ¿se tocan en 12 pasos? ¿Qué dice eso de la fórmula ingenua?
- ¿En qué t toca el tope con balance 2 e inicio 10?
- Escribí la ecuación completa (por partes) de este laboratorio.
Ver respuestas sugeridas
- No se tocan (34 < 50): la ingenua vale mientras el contorno no actúa.
- En t = 10: 10 + 2 × 10 = 30, justo el tope.
- n(t+1) = mín(n(t) + b, TOPE), con n(0) = inicio: recurrencia más borde.
07 · Comprensión
Confusiones frecuentes
«La ecuación es solo para matemáticos»
Es para programadores: una línea exacta evita cien líneas de adivinanza y verifica el código.
«Si está en código ya está formulado»
El código mezcla modelo con detalles técnicos. La ecuación aísla el comportamiento puro.
«Vale con escribirla una vez»
Cada cambio del modelo actualiza la ecuación: matemática y código versionan juntos.
«Los bordes se agregan después»
Los bordes son parte de la ecuación (mín, máx, partes): sin ellos la fórmula miente.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: empatar lenguajes
Verificá que cerrada y recurrencia empaten sin tope.
def cerrado(n0, balance, t):
return max(n0 + balance * t, 0)
def recurrente(n0, balance, pasos):
n = n0
for t in range(pasos):
n = max(n + balance, 0)
return n
print(cerrado(10, 2, 6), recurrente(10, 2, 6))
Ver solución razonada
Ambas dan 22: dos escrituras de la misma matemática. Si difieren, el bug está en la traducción.
Ejercicio 2: sumar con notación
Total y promedio de [5, 8, 6, 9] con funciones que declaran su ecuación.
ventas = [5, 8, 6, 9]
print("total:", sum(ventas))
print("promedio:", round(sum(ventas) / len(ventas), 2))
Ver solución
Total 28, promedio 7.0: T = Σv y media = T/n, las sumatorias más usadas del curso.
Ejercicio 3: escribir por partes
Escribí en palabras y en código la recurrencia con tope del laboratorio.
Ver una posible respuesta
# n(t+1) = min(n(t) + b, TOPE), n(0) = inicio.
def paso(n, b, tope):
return min(n + b, tope)
print(paso(29, 2, 30), paso(10, 2, 30))
Da 30 y 12: «sube de a b hasta el tope». Una línea de matemática, una de código.
09 · Síntesis
Ideas para recordar
- La ecuación es el contrato exacto: variables, índices y bordes.
- Recurrencia cuenta la marcha; cerrada salta al final; por partes cubre bordes.
- Ecuación y código deben empatar con los mismos datos.
- La fórmula ingenua vale donde el contorno no actúa.
- En Python: funciones de una línea con su ecuación en comentario.
En el próximo tema pasaremos del papel al programa: el modelo computacional.