63. Modelado matemático mediante funciones

Modelar con funciones consiste en representar una situación real o computacional mediante una relación matemática entre variables.

63.1 Introducción

Un modelo matemático es una simplificación de una situación. No intenta copiar todos los detalles, sino capturar los aspectos importantes para calcular, predecir o simular.

Las funciones son una herramienta central para modelar porque permiten expresar cómo una cantidad depende de otra.

63.2 Qué significa modelar

Modelar significa elegir variables, definir relaciones y construir una función que represente el fenómeno que queremos estudiar.

entrada → función → salida

En programación, la entrada puede ser tiempo, distancia, nivel, cantidad de usuarios, temperatura, precio o cualquier dato relevante.

63.3 Componentes de un modelo

Componente Descripción Ejemplo
Variable independiente Valor de entrada Tiempo
Variable dependiente Valor calculado Posición
Parámetro Valor que ajusta el modelo Velocidad
Función Regla de cálculo posición = velocidad · tiempo

63.4 Modelo lineal

Un modelo lineal describe cambios constantes. Es útil cuando una cantidad aumenta o disminuye siempre al mismo ritmo.

f(x) = mx + b

La pendiente m representa la tasa de cambio y b representa el valor inicial.

63.5 Ejemplo: posición con velocidad constante

function posicion(tiempo, posicionInicial, velocidad) {
  return posicionInicial + velocidad * tiempo;
}

console.log(posicion(0, 10, 5));
console.log(posicion(3, 10, 5));
console.log(posicion(8, 10, 5));

Si la velocidad es constante, cada unidad de tiempo agrega la misma cantidad a la posición.

63.6 Modelo cuadrático

Un modelo cuadrático describe situaciones donde el cambio no es constante. Aparece en trayectorias, áreas, aceleraciones y costos con crecimiento cada vez mayor.

f(x) = ax² + bx + c

63.7 Ejemplo: altura de un objeto

Una trayectoria vertical con gravedad puede modelarse con una función cuadrática simplificada.

function altura(tiempo, alturaInicial, velocidadInicial, gravedad) {
  return alturaInicial + velocidadInicial * tiempo - 0.5 * gravedad * tiempo * tiempo;
}

console.log(altura(0, 0, 20, 9.8));
console.log(altura(1, 0, 20, 9.8));
console.log(altura(2, 0, 20, 9.8));

63.8 Modelo exponencial

Un modelo exponencial describe crecimiento o decaimiento proporcional al valor actual.

f(t) = valorInicial · factorᵗ

Es útil para población, interés compuesto, propagación, enfriamiento aproximado y decaimiento.

63.9 Ejemplo: crecimiento porcentual

function crecimiento(valorInicial, tasa, tiempo) {
  return valorInicial * Math.pow(1 + tasa, tiempo);
}

console.log(crecimiento(1000, 0.05, 0));
console.log(crecimiento(1000, 0.05, 1));
console.log(crecimiento(1000, 0.05, 5));

63.10 Modelo logarítmico

Un modelo logarítmico describe crecimiento rápido al principio y cada vez más lento después.

f(x) = a · log(x) + b

Puede usarse para escalas de percepción, compresión de valores grandes y puntuaciones con rendimiento decreciente.

63.11 Ejemplo: puntaje con rendimiento decreciente

function puntaje(experiencia) {
  if (experiencia <= 0) {
    return 0;
  }

  return Math.round(Math.log(experiencia) * 100);
}

console.log(puntaje(1));
console.log(puntaje(10));
console.log(puntaje(1000));

63.12 Modelo periódico

Un modelo periódico describe comportamientos que se repiten, como ondas, ciclos, vibraciones o movimientos oscilantes.

f(t) = centro + amplitud · sin(tiempo · frecuencia)

63.13 Ejemplo: temperatura diaria simplificada

function temperatura(hora) {
  const centro = 20;
  const amplitud = 6;
  const fase = (hora - 6) / 24 * 2 * Math.PI;

  return centro + Math.sin(fase) * amplitud;
}

console.log(temperatura(6));
console.log(temperatura(12));
console.log(temperatura(18));

63.14 Elegir el tipo de función

La elección del modelo depende del comportamiento observado.

Comportamiento Modelo probable Ejemplo
Cambio constante Lineal Movimiento con velocidad constante
Cambio acelerado Cuadrático Caída o lanzamiento
Crecimiento porcentual Exponencial Interés compuesto
Crecimiento que se desacelera Logarítmico Puntuación o percepción
Repetición regular Trigonométrico Ondas o ciclos

63.15 Parámetros del modelo

Los parámetros ajustan el modelo sin cambiar su estructura. Permiten adaptar una función general a un caso específico.

function modeloLineal(x, pendiente, inicial) {
  return pendiente * x + inicial;
}

console.log(modeloLineal(10, 2, 5));
console.log(modeloLineal(10, -1, 100));

63.16 Comparar modelo con datos

Un modelo debe compararse con datos reales o esperados. Una forma simple es calcular el error entre predicción y observación.

function modelo(x) {
  return 2 * x + 1;
}

const datos = [
  { x: 1, observado: 3 },
  { x: 2, observado: 5 },
  { x: 3, observado: 8 }
];

for (const dato of datos) {
  const predicho = modelo(dato.x);
  console.log({
    x: dato.x,
    observado: dato.observado,
    predicho,
    error: dato.observado - predicho
  });
}

63.17 Error promedio

Para evaluar un modelo sobre varios datos, podemos calcular un error promedio absoluto.

function errorPromedio(datos, modelo) {
  let suma = 0;

  for (const dato of datos) {
    suma += Math.abs(dato.observado - modelo(dato.x));
  }

  return suma / datos.length;
}

function modelo(x) {
  return 2 * x + 1;
}

const datos = [
  { x: 1, observado: 3 },
  { x: 2, observado: 5 },
  { x: 3, observado: 8 }
];

console.log(errorPromedio(datos, modelo));

63.18 Límites del modelo

Todo modelo simplifica. Un modelo puede funcionar bien en cierto rango y fallar fuera de él.

Un modelo útil no tiene que ser perfecto; debe ser adecuado para el propósito.

Por eso conviene documentar supuestos, rango de uso y posibles fuentes de error.

63.19 Aplicaciones en programación

  • Simular movimiento, crecimiento o decaimiento.
  • Predecir valores a partir de datos.
  • Diseñar sistemas de puntuación o dificultad.
  • Construir animaciones dependientes del tiempo.
  • Convertir fenómenos físicos en reglas computables.
  • Analizar errores entre datos reales y predicciones.

63.20 Errores comunes

  • Elegir una función por comodidad sin observar el comportamiento real.
  • Confundir variables con parámetros.
  • Usar el modelo fuera del rango donde fue pensado.
  • No validar el modelo con datos.
  • Creer que un modelo simple representa todos los detalles de un fenómeno.

63.21 Qué debes recordar de este tema

  • Modelar es representar una situación mediante una función.
  • La variable independiente es la entrada y la dependiente es la salida.
  • Los parámetros ajustan el modelo a un caso específico.
  • El tipo de función debe elegirse según el comportamiento observado.
  • Un modelo debe validarse y usarse dentro de sus límites.

63.22 Conclusión

El modelado matemático mediante funciones permite convertir situaciones reales en cálculos programables. Esta habilidad conecta matemática, programación y análisis de datos, y es la base para simulaciones, predicciones y sistemas interactivos.