Modelar con funciones consiste en representar una situación real o computacional mediante una relación matemática entre variables.
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.
Modelar significa elegir variables, definir relaciones y construir una función que represente el fenómeno que queremos estudiar.
En programación, la entrada puede ser tiempo, distancia, nivel, cantidad de usuarios, temperatura, precio o cualquier dato relevante.
| 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 |
Un modelo lineal describe cambios constantes. Es útil cuando una cantidad aumenta o disminuye siempre al mismo ritmo.
La pendiente m representa la tasa de cambio y b representa el valor inicial.
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.
Un modelo cuadrático describe situaciones donde el cambio no es constante. Aparece en trayectorias, áreas, aceleraciones y costos con crecimiento cada vez mayor.
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));
Un modelo exponencial describe crecimiento o decaimiento proporcional al valor actual.
Es útil para población, interés compuesto, propagación, enfriamiento aproximado y decaimiento.
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));
Un modelo logarítmico describe crecimiento rápido al principio y cada vez más lento después.
Puede usarse para escalas de percepción, compresión de valores grandes y puntuaciones 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));
Un modelo periódico describe comportamientos que se repiten, como ondas, ciclos, vibraciones o movimientos oscilantes.
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));
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 |
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));
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
});
}
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));
Todo modelo simplifica. Un modelo puede funcionar bien en cierto rango y fallar fuera de él.
Por eso conviene documentar supuestos, rango de uso y posibles fuentes de error.
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.