Una función cuadrática incluye una variable elevada al cuadrado. Su gráfico es una parábola y permite modelar trayectorias, áreas, máximos, mínimos y problemas donde el cambio no es constante.
Las funciones lineales tienen cambio constante y se representan con rectas. Las funciones cuadráticas tienen un término con x² y se representan con parábolas.
En programación aparecen al simular trayectorias, calcular movimientos con aceleración, optimizar áreas, generar curvas y resolver ecuaciones de segundo grado.
La forma general de una función cuadrática es f(x) = ax² + bx + c, donde a no puede ser cero.
Una función cuadrática se escribe de esta manera:
Los valores a, b y c son coeficientes. El coeficiente a determina la apertura y orientación de la parábola.
function cuadratica(x, a, b, c) {
return a * x ** 2 + b * x + c;
}
console.log(cuadratica(2, 1, 3, 1));
Si a es positivo, la parábola abre hacia arriba. Si a es negativo, abre hacia abajo.
function f1(x) {
return x ** 2;
}
function f2(x) {
return -x ** 2;
}
console.log(f1(-2), f1(0), f1(2));
console.log(f2(-2), f2(0), f2(2));
La primera función tiene un mínimo. La segunda tiene un máximo.
Una tabla de valores ayuda a observar la forma de la parábola.
function f(x) {
return x ** 2;
}
for (let x = -3; x <= 3; x++) {
console.log({ x: x, y: f(x) });
}
La salida es simétrica: f(-2) y f(2) tienen el mismo valor.
El gráfico de una función cuadrática es una parábola. Puede abrir hacia arriba o hacia abajo según el signo de a.
| Valor de a | Forma | Tipo de extremo |
|---|---|---|
| a > 0 | Abre hacia arriba | Mínimo |
| a < 0 | Abre hacia abajo | Máximo |
El vértice es el punto más bajo o más alto de la parábola. Para f(x) = ax² + bx + c, la coordenada x del vértice es:
Luego evaluamos la función en xV para obtener yV.
function cuadratica(x, a, b, c) {
return a * x ** 2 + b * x + c;
}
function vertice(a, b, c) {
const x = -b / (2 * a);
const y = cuadratica(x, a, b, c);
return { x: x, y: y };
}
console.log(vertice(1, -4, 3));
Las raíces son los valores de x para los cuales f(x) = 0. En el gráfico, son los puntos donde la parábola corta el eje x.
Para encontrarlas usamos la fórmula cuadrática.
El discriminante es la parte dentro de la raíz en la fórmula cuadrática.
El discriminante indica cuántas raíces reales tiene la función.
| Discriminante | Raíces reales |
|---|---|
| Mayor que 0 | Dos raíces reales |
| Igual a 0 | Una raíz real doble |
| Menor que 0 | No hay raíces reales |
function discriminante(a, b, c) {
return b ** 2 - 4 * a * c;
}
console.log(discriminante(1, -5, 6));
console.log(discriminante(1, 2, 1));
console.log(discriminante(1, 0, 4));
Podemos escribir una función que calcule las raíces reales y maneje los distintos casos del discriminante.
function raices(a, b, c) {
const d = b ** 2 - 4 * a * c;
if (d < 0) {
return "No hay raíces reales";
}
if (d === 0) {
return [ -b / (2 * a) ];
}
return [
(-b + Math.sqrt(d)) / (2 * a),
(-b - Math.sqrt(d)) / (2 * a)
];
}
console.log(raices(1, -5, 6));
console.log(raices(1, 2, 1));
console.log(raices(1, 0, 4));
Para que una función sea cuadrática, el coeficiente a debe ser distinto de cero. Si a = 0, la función deja de ser cuadrática y pasa a ser lineal.
function esCuadratica(a) {
return a !== 0;
}
console.log(esCuadratica(1));
console.log(esCuadratica(0));
Una trayectoria con aceleración constante puede modelarse con una expresión cuadrática. Por ejemplo, una altura que cambia con el tiempo:
function altura(tiempo) {
const alturaInicial = 0;
const velocidadInicial = 20;
const gravedad = 9.8;
return alturaInicial + velocidadInicial * tiempo - 0.5 * gravedad * tiempo ** 2;
}
console.log(altura(0));
console.log(altura(1));
console.log(altura(2));
console.log(altura(3));
La altura sube al principio y luego baja por el efecto de la gravedad.
Algunos problemas de optimización producen funciones cuadráticas. Por ejemplo, el área de un rectángulo con perímetro fijo depende de una variable de forma cuadrática.
function areaRectanguloConPerimetro(perimetro, ancho) {
const alto = perimetro / 2 - ancho;
return ancho * alto;
}
console.log(areaRectanguloConPerimetro(20, 2));
console.log(areaRectanguloConPerimetro(20, 5));
console.log(areaRectanguloConPerimetro(20, 8));
El área crece hasta cierto punto y luego decrece.
En una función lineal el cambio es constante. En una cuadrática, el cambio entre salidas consecutivas no es constante.
function lineal(x) {
return 2 * x + 1;
}
function cuadratica(x) {
return x ** 2;
}
for (let x = 0; x <= 4; x++) {
console.log({
x: x,
lineal: lineal(x),
cuadratica: cuadratica(x)
});
}
const x = 5;
console.log(x * 2);
console.log(x ** 2);
Las funciones cuadráticas permiten modelar relaciones donde el cambio no es constante. Son importantes para entender curvas, trayectorias, máximos, mínimos y problemas de optimización.
En el próximo tema compararemos crecimiento lineal y crecimiento exponencial, dos formas distintas de evolución de valores.