56. Modelado matemático mediante funciones

Modelar con funciones significa representar una situación real o de software mediante entradas, reglas de cálculo y salidas.

56.1 Introducción

Un modelo matemático es una representación simplificada de una situación. En programación, muchas reglas de negocio, simulaciones y cálculos se expresan como funciones.

Entrada: datos del problema
Regla: fórmula o algoritmo
Salida: resultado calculado

El objetivo no es copiar toda la realidad, sino capturar las relaciones importantes para resolver un problema.

56.2 Qué significa modelar

Modelar consiste en identificar variables, establecer relaciones entre ellas y expresar esas relaciones con una función.

costo(cantidad) = precioUnitario * cantidad

La función anterior modela una compra simple: si cambia la cantidad, cambia el costo total.

56.3 Variables de entrada y salida

Todo modelo debe distinguir qué valores recibe y qué valor produce.

f(x) = 2x + 5
x es la entrada
f(x) es la salida

En código, esta idea se traduce en parámetros y valor de retorno.

56.4 Del problema a la función

Para construir un modelo, conviene escribir primero el problema en lenguaje cotidiano y luego pasarlo a una expresión algebraica.

Problema: se cobra una tarifa fija de 100 más 20 por kilómetro.
Modelo: costo(k) = 100 + 20k

La variable k representa los kilómetros recorridos.

56.5 Implementación en JavaScript

Una vez definida la fórmula, se puede convertir directamente en una función de programa.

function costoViaje(kilometros) {
  return 100 + 20 * kilometros;
}

console.log(costoViaje(0));
console.log(costoViaje(5));
console.log(costoViaje(12));

El modelo permite calcular distintos casos usando la misma regla.

56.6 Modelo lineal

Un modelo lineal representa situaciones donde el cambio es constante. Su forma general es:

f(x) = mx + b

El valor m indica cuánto cambia la salida por cada unidad de entrada, y b indica el valor inicial.

56.7 Ejemplo de suscripción

Una aplicación cobra una cuota fija mensual y un costo adicional por usuario activo.

function costoMensual(usuarios) {
  const cuotaFija = 5000;
  const costoPorUsuario = 350;
  return cuotaFija + costoPorUsuario * usuarios;
}

console.log(costoMensual(1));
console.log(costoMensual(10));
console.log(costoMensual(25));

El modelo ayuda a estimar facturación, presupuestos o límites de uso.

56.8 Modelo cuadrático

Un modelo cuadrático aparece cuando el crecimiento no es constante y depende del cuadrado de la variable.

f(x) = ax² + bx + c

Este tipo de función puede servir para trayectorias, áreas, optimización simple y comportamientos con aceleración.

56.9 Ejemplo de trayectoria

En una simulación, la altura de un objeto puede modelarse con una función cuadrática simplificada.

function altura(tiempo) {
  return -5 * tiempo ** 2 + 20 * tiempo + 2;
}

for (let t = 0; t <= 5; t++) {
  console.log(t, altura(t));
}

El tiempo es la entrada y la altura calculada es la salida.

56.10 Elegir las unidades

Un modelo debe usar unidades coherentes. Mezclar metros con centímetros, o segundos con minutos, produce errores.

Si velocidad está en km/h, el tiempo debe expresarse en horas.
distancia = velocidad * tiempo

Antes de programar una fórmula, conviene revisar qué representa cada número.

56.11 Validar el modelo

Un modelo se valida probando casos simples, casos extremos y valores esperados.

function descuento(precio) {
  return precio * 0.9;
}

console.log(descuento(1000)); // 900
console.log(descuento(0));    // 0
console.log(descuento(250));  // 225

Si los resultados básicos no coinciden con lo esperado, el modelo o la implementación deben revisarse.

56.12 Límites del modelo

Todo modelo tiene un rango de uso. Una fórmula puede ser útil para ciertos valores y dejar de tener sentido fuera de ellos.

function precioConDescuento(precio, porcentaje) {
  if (porcentaje < 0 || porcentaje > 100) {
    return "Porcentaje inválido";
  }

  return precio * (1 - porcentaje / 100);
}

console.log(precioConDescuento(2000, 15));
console.log(precioConDescuento(2000, 150));

Programar validaciones evita aplicar un modelo en situaciones que no corresponde.

56.13 Modelos por partes

Algunos problemas requieren reglas diferentes según el intervalo de la entrada.

function costoEnvio(peso) {
  if (peso <= 1) {
    return 1200;
  }

  if (peso <= 5) {
    return 1200 + 400 * (peso - 1);
  }

  return 2800 + 700 * (peso - 5);
}

console.log(costoEnvio(0.5));
console.log(costoEnvio(3));
console.log(costoEnvio(8));

Este enfoque es común en tarifas, impuestos, descuentos y sistemas de puntuación.

56.14 Errores comunes

Al modelar con funciones, los errores más frecuentes son elegir mal la variable, confundir entrada con salida, mezclar unidades o asumir una relación lineal cuando no lo es.

Preguntas útiles:
¿Qué dato cambia?
¿Qué resultado quiero calcular?
¿La relación es constante?
¿El modelo tiene límites?

Estas preguntas reducen errores antes de escribir código.

56.15 Conclusión

El modelado matemático mediante funciones conecta el álgebra con la programación práctica. Permite transformar problemas en reglas claras, probables y reutilizables.

Un buen modelo identifica entradas, define una regla, produce una salida y aclara sus límites.

En el próximo tema se estudiarán las sucesiones y los patrones numéricos, útiles para detectar regularidades y construir algoritmos repetitivos.