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.
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.
La forma general de una función cuadrática es:
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.
| 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 |
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.
El coeficiente cuadrático es negativo, por eso la parábola abre hacia abajo.
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.
La altura máxima se encuentra en el vértice de la parábola.
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));
Para saber cuándo el proyectil toca el suelo buscamos cuándo la altura vale cero.
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));
El área de un cuadrado depende cuadráticamente de la medida de su 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));
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.
La parábola abre hacia abajo, por lo que tiene un área máxima.
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));
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.
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));
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.
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));
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.
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.
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.
| 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 |
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.