Modelos y Simulación · Tema 07

Variables, parámetros y constantes

Los ingredientes numéricos de todo modelo: qué cambia, qué configura y qué nunca cambia.

01 · Punto de partida

El mismo número, tres roles posibles

Un 2 en el código puede ser tres cosas distintas: el nivel actual del tanque (cambia en cada paso), el caudal de salida que elegimos para este escenario (fijo durante la corrida) o una constante universal que nunca cambia. Confundir los roles es la causa más común de modelos rígidos y experimentos imposibles de repetir.

  • ¿Esto cambia durante la corrida o entre corridas?
  • ¿Quién lo decide: el sistema, el escenario o la naturaleza?
  • ¿Qué pasa si mañana necesita otro valor?
  • ¿Dónde está escrito y con qué nombre?

02 · Definiciones

Tres roles, tres nombres

x

Variable

Cambia durante la ejecución: nivel, cola, espera. Vive dentro del bucle temporal.

p

Parámetro

Fijo durante la corrida, distinto entre escenarios: caudales, capacidad, márgenes.

k

Constante

Nunca cambia en el estudio: IVA legal, segundos por hora, tope físico absoluto.

Los mismos modelos, leídos por rol.
ModeloVariableParámetroConstante
Tanquenivelentrada, salida, tope0 como piso físico
Colacola, atendidosllegada máx., atenciónpasos del experimento
Gananciademanda (si varía)fijo, margenIVA 0.21

03 · La prueba del experimento

Cómo distinguirlos sin dudar

  1. 1
    Preguntá cuándo cambia.

    ¿Dentro de la corrida? Variable. ¿Entre corridas? Parámetro. ¿Nunca? Constante.

  2. 2
    Preguntá quién lo fija.

    El sistema lo mueve (variable), el escenario lo elige (parámetro) o la realidad lo impone (constante).

  3. 3
    Mirá la firma de la función.

    Los parámetros entran como argumentos; las variables viven adentro; las constantes se nombran arriba en mayúsculas.

Parámetro

Configura el escenario

Se varía a propósito para comparar: ¿y con salida 1, 2 o 3? Aparece en tablas de experimentos.

Variable

Registra la historia

Se mide y se grafica en el tiempo: el nivel paso a paso. Nunca se fija a mano a mitad de corrida.

04 · En el código

Números mágicos, nunca más

Número mágico
Valor suelto sin nombre: ganancia(d, 100, 3). Nadie sabe qué es 100 ni 3.
Constante nombrada
IVA = 0.21 arriba del todo, en mayúsculas, con su significado.
Parámetro explícito
Argumento de la función con nombre claro: def ganancia(demanda, fijo, margen).
Variable local
Nace y muere dentro de la corrida: nivel, cola, historia.

05 · En Python

Nombrar cada rol en su lugar

Python en tu navegador. Las constantes van en mayúsculas, los parámetros en la firma y las variables dentro del bucle.

IVA = 0.21  # constante: no cambia en este estudio


def precio_final(base, descuento=0):
    # base y descuento son parámetros; total es variable local.
    total = base * (1 - descuento) * (1 + IVA)
    return round(total, 2)


print(precio_final(1000))
print(precio_final(1000, 0.1))

Barrer un parámetro

El experimento típico fija todo menos un parámetro y mira la salida: así se descubre qué configura de verdad el sistema.

def nivel_final(nivel_inicial, entrada, salida, pasos=12, tope=50):
    n = nivel_inicial
    for t in range(pasos):
        n = n + entrada - salida
        n = min(max(n, 0), tope)
    return n


print([nivel_final(10, e, 2) for e in [0, 2, 4]])

06 · Exploración

Laboratorio: barrido del parámetro entrada

El eje horizontal es el parámetro entrada (0 a 6); cada curva es el nivel final con otra salida (1, 2, 3). El marcador muestra tu escenario actual.

EXPERIMENTO 07

Un parámetro, tres historias

nivel final vs. entrada · 12 pasos

Los resultados numéricos aparecen debajo.
Final (salida 1)34,00
Final (salida 2)22,00
Final (salida 3)10,00
Rango24,00

Con entrada 3, la salida elegida mueve el final entre 10 y 34.

Cada curva barrió el parámetro entrada con una salida fija. La distancia vertical entre curvas mide cuánto configura la salida.

Preguntas para explorar

  1. Con entrada 0, ¿qué curva da el nivel más alto? ¿Por qué?
  2. Subí el tope a 60 y el inicial a 30 con entrada 6. ¿Qué curvas se amesetan?
  3. ¿Qué es parámetro y qué es variable en este laboratorio?
Ver respuestas sugeridas
  1. La de menor salida (salida 1): con igual entrada, la que menos saca acumula más.
  2. Las de salida baja, que tocan el tope 60; las de salida alta nunca llegan.
  3. Parámetros: entrada, salida, tope e inicial (fijan el escenario). Variable: el nivel paso a paso (resulta de la dinámica).

07 · Comprensión

Confusiones frecuentes

«Si está fijo en el código, es constante»

Si lo cambias entre escenarios, es parámetro aunque hoy valga siempre lo mismo. Constante es lo que nunca se toca en el estudio.

«Las variables se eligen»

No: las variables resultan de la dinámica. Se eligen parámetros y escenarios; las variables se observan.

«Un 0.21 suelto se entiende»

Hoy sí; en un mes nadie sabe si es IVA, margen o tasa. IVA = 0.21 cuesta una línea y salva el modelo.

«Da igual dónde va cada número»

Parámetros en la firma (reutilizables), variables adentro (aisladas), constantes arriba (visibles). El lugar es documentación.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: clasificar

En nivel_final(10, 3, 2) con 12 pasos y tope 50: ¿qué es cada número?

llamada = {"nivel_inicial": 10, "entrada": 3, "salida": 2}
fijos = {"pasos": 12, "tope": 50}
print("parámetros del escenario:", llamada)
print("constantes del experimento:", fijos)
Ver solución razonada

10, 3 y 2 son parámetros del escenario; 12 y 50 son constantes del experimento (valores por defecto). El nivel paso a paso, que no aparece aquí, sería la variable.

Ejercicio 2: cazar números mágicos

Esta función esconde dos números mágicos. Reescribila con constante y parámetro.

def total_malo(base):
    return base * 1.21 - 50


IVA = 0.21

def total_bien(base, descuento):
    return base * (1 - descuento) * (1 + IVA)

print(round(total_bien(1000, 50 / 1000), 2))
Ver solución

1.21 escondía el IVA y 50 un descuento fijo. La versión buena nombra IVA y recibe descuento: el resultado 1149.5 ahora es auditable.

Ejercicio 3: el parámetro que más configura

Compará cuánto cambia el nivel final al mover la entrada de 2 a 4 frente a mover la salida de 2 a 0.

Ver una posible respuesta
def nivel_final(nivel_inicial, entrada, salida, pasos=12, tope=50):
    n = nivel_inicial
    for t in range(pasos):
        n = min(max(n + entrada - salida, 0), tope)
    return n


base = nivel_final(10, 2, 2)
print("base:", base)
print("entrada 4:", nivel_final(10, 4, 2), "salida 0:", nivel_final(10, 2, 0))

Base 10; ambas variantes dan 34: en este modelo lineal, entrada y salida configuran simétrico (balance). El barrido lo hace visible.

09 · Síntesis

Ideas para recordar

  • Variables cambian en la corrida, parámetros entre corridas, constantes nunca.
  • El rol lo define el experimento: documentarlo evita modelos rígidos.
  • Parámetros en la firma, variables adentro, constantes en mayúsculas arriba.
  • Cero números mágicos: todo literal con significado lleva nombre.
  • Barrer un parámetro revela cuánto configura el sistema.

En el próximo tema veremos las variables de estado: lo que define la situación del sistema en cada instante.