24. Aplicaciones de funciones cuadráticas

Las funciones cuadráticas aparecen en trayectorias, áreas, optimización, animaciones y modelos donde el cambio se acelera o se frena. En programación permiten representar comportamientos curvos de manera simple.

24.1 Introducción

Una función cuadrática no solo sirve para dibujar una parábola. También permite modelar situaciones donde una cantidad no cambia siempre al mismo ritmo.

En programación, este tipo de función resulta útil cuando necesitamos simular movimiento con aceleración, calcular áreas, buscar máximos o mínimos, suavizar animaciones o detectar el momento en que una variable cruza cierto valor.

24.2 Forma general

La forma general de una función cuadrática es:

f(x) = ax² + bx + c

El término cuadrático ax² es el que produce la curvatura. Por eso estas funciones son apropiadas para representar fenómenos con aceleración, máximos o mínimos.

24.3 Resumen de usos comunes

Uso Qué representa Dato importante
Trayectorias Altura o posición con gravedad Vértice e intersecciones
Áreas Superficies que dependen de una longitud al cuadrado Crecimiento no lineal
Optimización Costos, ganancias o errores Mínimo o máximo
Animaciones Aceleración, frenado o suavizado Cambio progresivo

24.4 Trayectoria de un proyectil

Una de las aplicaciones más frecuentes es representar la altura de un objeto lanzado hacia arriba. La gravedad hace que la altura aumente al comienzo, llegue a un máximo y luego disminuya.

altura(t) = -5t² + 20t + 2

El coeficiente cuadrático es negativo, por eso la parábola abre hacia abajo.

24.5 Simular altura con JavaScript

El siguiente programa calcula la altura de un proyectil para distintos valores de tiempo.

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

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

Los valores muestran que la altura sube y luego baja, como sucede en una trayectoria real simplificada.

24.6 Calcular la altura máxima

La altura máxima se encuentra en el vértice de la parábola.

tiempo del máximo = -b / (2a)
function analizarAltura(a, b, c) {
  const tiempoMaximo = -b / (2 * a);
  const alturaMaxima = a * tiempoMaximo ** 2 + b * tiempoMaximo + c;

  return { tiempoMaximo, alturaMaxima };
}

console.log(analizarAltura(-5, 20, 2));

24.7 Detectar cuándo toca el suelo

Para saber cuándo el proyectil toca el suelo buscamos cuándo la altura vale cero.

-5t² + 20t + 2 = 0

La solución positiva indica el tiempo de caída.

function tiempoDeCaida(a, b, c) {
  const discriminante = b ** 2 - 4 * a * c;

  if (discriminante < 0) {
    return null;
  }

  const raiz = Math.sqrt(discriminante);
  const tiempos = [
    (-b - raiz) / (2 * a),
    (-b + raiz) / (2 * a)
  ];

  return tiempos.find(t => t >= 0);
}

console.log(tiempoDeCaida(-5, 20, 2));

24.8 Área de un cuadrado

El área de un cuadrado depende cuadráticamente de la medida de su lado.

área(lado) = lado²

Esto significa que duplicar el lado no duplica el área: la multiplica por cuatro.

function areaCuadrado(lado) {
  return lado ** 2;
}

console.log(areaCuadrado(2));
console.log(areaCuadrado(4));
console.log(areaCuadrado(8));

24.9 Área de una región con restricción

Las funciones cuadráticas también aparecen cuando una medida depende de otra. Por ejemplo, si el perímetro de un rectángulo es fijo, el área puede expresarse con una función cuadrática.

perímetro = 20 ancho = x alto = 10 - x área(x) = x(10 - x) = -x² + 10x

La parábola abre hacia abajo, por lo que tiene un área máxima.

24.10 Maximizar un área con JavaScript

El vértice permite encontrar el valor de x que produce el área máxima.

function areaRectangulo(x) {
  return -(x ** 2) + 10 * x;
}

function maximoArea(a, b) {
  const x = -b / (2 * a);
  return { ancho: x, area: areaRectangulo(x) };
}

console.log(maximoArea(-1, 10));

24.11 Modelo de costo mínimo

En algunos problemas, el costo baja hasta cierto punto y luego vuelve a subir. Ese comportamiento puede modelarse con una función cuadrática que abre hacia arriba.

costo(x) = 2x² - 12x + 40

El vértice representa el costo mínimo.

function costo(x) {
  return 2 * x ** 2 - 12 * x + 40;
}

const xMinimo = -(-12) / (2 * 2);

console.log(xMinimo);
console.log(costo(xMinimo));

24.12 Animaciones con aceleración

Una animación puede usar una función cuadrática para que el movimiento no sea uniforme. Por ejemplo, para simular un desplazamiento que empieza lento y acelera.

posición(progreso) = distancia × progreso²

Si progreso va de 0 a 1, la posición avanza cada vez más rápido.

function posicionAcelerada(progreso, distancia) {
  return distancia * progreso ** 2;
}

console.log(posicionAcelerada(0.25, 400));
console.log(posicionAcelerada(0.5, 400));
console.log(posicionAcelerada(1, 400));

24.13 Dificultad progresiva

En juegos o sistemas de entrenamiento, una función cuadrática puede aumentar la dificultad de manera más rápida que una función lineal.

experiencia(nivel) = 50nivel² + 100nivel
function experienciaNecesaria(nivel) {
  return 50 * nivel ** 2 + 100 * nivel;
}

for (let nivel = 1; nivel <= 5; nivel++) {
  console.log(nivel, experienciaNecesaria(nivel));
}

La cantidad requerida crece cada vez más rápido a medida que aumenta el nivel.

24.14 Comparación con un modelo lineal

Una función lineal crece por sumas constantes. Una cuadrática crece con incrementos cada vez mayores o menores, según el caso.

Entrada Lineal: 100x Cuadrática: 20x²
1 100 20
2 200 80
5 500 500
10 1000 2000

Al principio el modelo cuadrático puede crecer más lento, pero luego supera al lineal.

24.15 Cuándo elegir una función cuadrática

Pregunta Si la respuesta es sí
¿Hay un máximo o mínimo claro? Puede ser cuadrática
¿El cambio se acelera o se frena? Puede ser cuadrática
¿Aparece una magnitud elevada al cuadrado? Puede ser cuadrática
¿La trayectoria tiene forma de arco? Puede modelarse con una parábola

24.16 Errores comunes

  • Usar una función lineal para una situación con aceleración.
  • Olvidar que una función cuadrática puede tener máximo o mínimo.
  • Interpretar una raíz negativa como tiempo válido en una simulación.
  • No comprobar si el discriminante permite raíces reales.
  • Elegir una función cuadrática solo porque los datos crecen, sin verificar si el ritmo de cambio también cambia.

24.17 Qué debes recordar de este tema

  • Las funciones cuadráticas modelan comportamientos curvos.
  • Son útiles para trayectorias, áreas, optimización y animaciones.
  • El vértice permite encontrar máximos o mínimos.
  • Las raíces permiten detectar cuándo una salida llega a cero.
  • El término cuadrático representa un cambio que no es constante.
  • No todo crecimiento es cuadrático; conviene interpretar el problema antes de elegir el modelo.

24.18 Conclusión

Las funciones cuadráticas son una herramienta práctica para modelar fenómenos con curvatura. En programación aparecen en movimientos, gráficos, juegos, cálculos geométricos y problemas de optimización.

En el próximo tema comenzaremos con funciones polinómicas, que generalizan esta idea a expresiones con distintos grados.