Un límite describe a qué valor se acerca una función cuando la entrada se aproxima a un punto.
El concepto de límite permite estudiar el comportamiento de una función cerca de un punto, incluso cuando la función no está definida exactamente en ese punto.
En programación, esta idea aparece al aproximar valores, analizar estabilidad numérica, simular procesos continuos y entender qué ocurre cuando una variable se acerca a una condición crítica.
Decimos que una función tiene límite L cuando x se acerca a a si los valores de la función se acercan a L.
Lo importante no es necesariamente el valor exacto de la función en a, sino lo que ocurre cerca de ese punto.
La notación usual para un límite es:
Se lee: “el límite de f(x), cuando x tiende a a, es L”.
Para explorar un límite con valores numéricos, podemos evaluar la función en puntos cada vez más cercanos.
function f(x) {
return 2 * x + 1;
}
console.log(f(1.9));
console.log(f(1.99));
console.log(f(1.999));
console.log(f(2));
Cuando x se acerca a 2, la función se acerca a 5.
Acercarse desde la izquierda significa usar valores menores que el punto.
function f(x) {
return x * x;
}
const valores = [1.9, 1.99, 1.999, 1.9999];
for (const x of valores) {
console.log({ x, y: f(x) });
}
Acercarse desde la derecha significa usar valores mayores que el punto.
function f(x) {
return x * x;
}
const valores = [2.1, 2.01, 2.001, 2.0001];
for (const x of valores) {
console.log({ x, y: f(x) });
}
Los límites laterales analizan qué ocurre al acercarse desde cada lado.
| Tipo | Notación | Descripción |
|---|---|---|
| Por izquierda | x → a⁻ | x se acerca usando valores menores que a |
| Por derecha | x → a⁺ | x se acerca usando valores mayores que a |
Para que el límite exista, ambos límites laterales deben coincidir.
Podemos generar valores a ambos lados de un punto y comparar las salidas.
function f(x) {
return x * x;
}
function aproximar(funcion, punto, distancia) {
return {
izquierda: funcion(punto - distancia),
derecha: funcion(punto + distancia)
};
}
console.log(aproximar(f, 2, 0.1));
console.log(aproximar(f, 2, 0.01));
console.log(aproximar(f, 2, 0.001));
Una función puede tener límite en un punto aunque su valor en ese punto sea distinto o no esté definido.
Esto es importante para entender discontinuidades removibles y aproximaciones.
La expresión (x² - 1) / (x - 1) no está definida en x = 1, pero cerca de 1 se comporta como x + 1.
function f(x) {
return (x * x - 1) / (x - 1);
}
console.log(f(0.9));
console.log(f(0.99));
console.log(f(1.01));
console.log(f(1.1));
Los valores se acercan a 2, aunque la expresión original falla exactamente en x = 1.
Cuando una función tiene una división por cero en cierto punto, se puede estudiar el límite evaluando puntos cercanos.
function f(x) {
if (x === 1) {
return "No definida";
}
return (x * x - 1) / (x - 1);
}
console.log(f(1));
console.log(f(0.999));
console.log(f(1.001));
Si los valores por izquierda y por derecha se acercan a resultados distintos, el límite no existe.
Una función definida por tramos puede tener comportamientos distintos a cada lado del mismo punto.
function f(x) {
if (x < 0) {
return -1;
}
return 1;
}
console.log(f(-0.1));
console.log(f(-0.001));
console.log(f(0.001));
console.log(f(0.1));
Al acercarse a 0 desde la izquierda, la función se acerca a -1. Desde la derecha, se acerca a 1.
A veces una función no se acerca a un número finito, sino que crece sin límite.
function f(x) {
return 1 / (x * x);
}
console.log(f(0.1));
console.log(f(0.01));
console.log(f(0.001));
Podemos escribir una función que evalúe valores cercanos a un punto usando distancias cada vez menores.
function aproximarLimite(funcion, punto) {
const distancias = [0.1, 0.01, 0.001, 0.0001];
return distancias.map(function(d) {
return {
distancia: d,
izquierda: funcion(punto - d),
derecha: funcion(punto + d)
};
});
}
function f(x) {
return (x * x - 1) / (x - 1);
}
console.log(aproximarLimite(f, 1));
Las aproximaciones con números decimales dependen de la precisión de la computadora. Acercarse demasiado puede producir errores de redondeo o resultados inestables.
function f(x) {
return (x * x - 1) / (x - 1);
}
const distancias = [0.1, 0.0001, 0.00000001];
for (const d of distancias) {
console.log({ distancia: d, valor: f(1 + d) });
}
En simulaciones, muchas variables cambian paso a paso. Reducir el tamaño del paso puede acercar el resultado a un comportamiento continuo.
Esta idea está relacionada con límites porque estudia qué ocurre cuando el paso se hace cada vez más pequeño.
El límite también prepara el camino para entender tasas de cambio instantáneas. Podemos empezar comparando cambios promedio.
function f(x) {
return x * x;
}
function cambioPromedio(x, h) {
return (f(x + h) - f(x)) / h;
}
console.log(cambioPromedio(2, 1));
console.log(cambioPromedio(2, 0.1));
console.log(cambioPromedio(2, 0.01));
Al hacer h más pequeño, el cambio promedio se acerca a una tasa instantánea.
El límite permite estudiar el comportamiento cercano de una función. Esta idea es fundamental para entender continuidad, cambios instantáneos y aproximaciones numéricas, temas que aparecen tanto en matemática como en programación.