Fundamentos · Tema 07

Intervalos en la recta real

Cómo describir conjuntos continuos de números, decidir si sus extremos están incluidos y traducir con precisión entre recta, desigualdad, notación de intervalos y condiciones de un programa.

01 · Punto de partida

A veces necesitamos un conjunto completo de valores

Una temperatura aceptable puede estar entre 18 °C y 25 °C. Una animación puede ejecutarse desde el segundo 0 hasta antes del segundo 5. Una función puede estar definida solamente para entradas positivas. En estos casos no hablamos de un único número, sino de todos los números que cumplen ciertas condiciones.

Un intervalo permite expresar de forma compacta una región continua de la recta real. Para interpretarlo correctamente debemos responder:

  • ¿Cuál es el extremo menor y cuál es el mayor?
  • ¿Cada extremo pertenece al conjunto o queda excluido?
  • ¿El intervalo se extiende indefinidamente?
  • ¿Cómo se escribe la misma condición como desigualdad?
  • ¿Cómo se implementa sin cambiar accidentalmente los bordes?

02 · Orden y posición

La recta real como mapa de los números

Los números reales pueden representarse sobre una recta. Cada punto corresponde a un número y el orden se interpreta espacialmente: un número menor se ubica a la izquierda de uno mayor.

… < −2 < −1 < 0 < 1/2 < √2 < 2 < …

Entre dos reales distintos siempre existen infinitos números reales. Entre 1 y 2 están 1.5, 1.25, 1.01 y muchos más. De hecho, elegido cualquier par a < b, su promedio (a+b)/2 queda estrictamente entre ambos.

Esta propiedad hace que los intervalos sean continuos: no son listas cuyos elementos puedan recorrerse uno por uno. Un programa puede comprobar si un valor pertenece a un intervalo, pero no puede enumerar todos los reales contenidos en él.

03 · La decisión de borde

Extremos incluidos y excluidos

Los corchetes y los paréntesis informan qué ocurre exactamente en cada extremo:

[ ]

Extremo cerrado

El valor pertenece al intervalo. En la recta se dibuja con un punto lleno y en la desigualdad aparece o .

( )

Extremo abierto

El valor no pertenece al intervalo. En la recta se dibuja con un punto vacío y en la desigualdad aparece < o >.

x

Punto interior

Todo número situado estrictamente entre los extremos pertenece al intervalo, sin excepciones ni saltos.

Por ejemplo, [2, 5) incluye 2 y todos los números posteriores hasta acercarse a 5, pero no incluye 5. Por eso 2 ∈ [2,5) y 5 ∉ [2,5).

La elección no es decorativa. Si una promoción es válida hasta antes de las 24:00, el instante final está excluido. Si una calificación aprobatoria va de 6 a 10 inclusive, ambos bordes están incluidos.

04 · Cuatro combinaciones

Intervalos con dos extremos finitos

Sean a y b números reales con a < b. Existen cuatro combinaciones según se incluya o no cada extremo:

Notación y desigualdad de los intervalos acotados.
NombreIntervaloDesigualdadExtremos incluidos
Cerrado[a, b]a ≤ x ≤ bAmbos.
Abierto(a, b)a < x < bNinguno.
Semiabierto por derecha[a, b)a ≤ x < bSolo a.
Semiabierto por izquierda(a, b]a < x ≤ bSolo b.

La primera marca se refiere siempre al extremo izquierdo y la segunda al derecho. Leer (−3, 4] de izquierda a derecha ayuda: mayor que −3 y menor o igual que 4.

Longitud del intervalo

Todos los intervalos anteriores tienen longitud b−a. Incluir o excluir puntos aislados no cambia esa longitud. Sin embargo, sí cambia la pertenencia y puede cambiar si una función alcanza un máximo o un mínimo en el conjunto.

05 · Extenderse sin límite

Intervalos no acotados

Algunas condiciones solo fijan un borde. Los números mayores o iguales que 3 forman [3, +∞); los menores que 5 forman (−∞, 5).

Intervalos que se prolongan indefinidamente.
CondiciónNotaciónLectura
x ≥ a[a, +∞)Desde a, incluido, hacia la derecha.
x > a(a, +∞)Después de a, sin incluirlo.
x ≤ b(−∞, b]Desde la izquierda hasta b, incluido.
x < b(−∞, b)Desde la izquierda hasta antes de b.
Cualquier real(−∞, +∞) = ℝToda la recta real.

06 · Probar un valor

Pertenencia y desigualdades

El símbolo se lee “pertenece a” y , “no pertenece a”. Para decidir si un número pertenece, reemplazamos x en todas las condiciones del intervalo.

En I = (−2, 3] la condición es −2 < x ≤ 3:

  • 0 ∈ I, porque −2 < 0 y 0 ≤ 3;
  • 3 ∈ I, porque el extremo derecho es cerrado;
  • −2 ∉ I, porque el extremo izquierdo es abierto;
  • 4 ∉ I, porque supera el extremo derecho.

La desigualdad encadenada exige que se cumplan ambas comparaciones. En código se expresa con el operador lógico “y”:

function pertenece(x) {
  return -2 < x && x <= 3;
}

console.log(pertenece(0));  // true
console.log(pertenece(3));  // true
console.log(pertenece(-2)); // false
console.log(pertenece(4));  // false

JavaScript no interpreta correctamente la expresión matemática encadenada -2 < x <= 3. Primero evaluaría una comparación y luego compararía un booleano con 3. Cada relación debe escribirse por separado.

07 · Bordes que coinciden

Intervalos degenerados y conjunto vacío

Cuando ambos extremos coinciden, la inclusión de los bordes se vuelve decisiva:

  • [a, a] = {a}: contiene exactamente un punto;
  • (a, a), [a, a) y (a, a] no contienen ningún punto;
  • el conjunto sin elementos se representa con .

Por ejemplo, [4,4] equivale al conjunto {4}. En cambio, no existe ningún real que sea a la vez mayor que 4 y menor que 4, por lo que (4,4)=∅.

Si el supuesto extremo izquierdo es mayor que el derecho, como en [7,2], la notación no describe un intervalo ordenado usual. Una biblioteca puede rechazar esos datos o normalizarlos intercambiando extremos, pero la política debe ser explícita.

08 · Combinar condiciones

Intersección y unión de intervalos

La intersección, representada por , contiene los valores que pertenecen simultáneamente a ambos conjuntos. Corresponde a combinar condiciones con “y”.

[1, 5] ∩ (3, 8) = (3, 5]

Los valores comunes son mayores que 3 y menores o iguales que 5. El 3 queda excluido por el segundo intervalo; el 5 está incluido en ambos.

La unión, representada por , contiene los valores que pertenecen al menos a uno de los conjuntos. Corresponde a “o”:

[1, 5] ∪ (3, 8) = [1, 8)

Como los intervalos se superponen, su unión no deja huecos y puede escribirse como un solo intervalo. Pero esto no siempre ocurre:

[1, 2] ∪ [4, 5]

La unión anterior no es un intervalo único, porque no contiene valores entre 2 y 4. Es un conjunto formado por dos tramos separados.

El contacto en un extremo

[1,2] ∪ (2,4] = [1,4] porque el primer intervalo aporta el punto 2 y no queda hueco. En cambio, [1,2) ∪ (2,4] excluye 2 y no puede simplificarse a un solo intervalo.

09 · Rangos en programas

Del intervalo a una condición reutilizable

Los rangos aparecen en validaciones, filtros, límites de interfaces y dominios de funciones. Podemos representar un intervalo finito mediante sus extremos y dos booleanos:

function contiene(intervalo, valor) {
  const {
    minimo,
    maximo,
    incluyeMinimo = true,
    incluyeMaximo = true
  } = intervalo;

  if (![minimo, maximo, valor].every(Number.isFinite)) return false;
  if (minimo > maximo) return false;

  const cumpleMinimo = incluyeMinimo
    ? valor >= minimo
    : valor > minimo;
  const cumpleMaximo = incluyeMaximo
    ? valor <= maximo
    : valor < maximo;

  return cumpleMinimo && cumpleMaximo;
}

const permitido = {
  minimo: 18,
  maximo: 25,
  incluyeMinimo: true,
  incluyeMaximo: false
};

console.log(contiene(permitido, 18)); // true
console.log(contiene(permitido, 25)); // false

Nombrar explícitamente la inclusión de cada extremo evita condiciones ambiguas. También permite probar los casos de borde de manera sistemática: justo debajo, exactamente en el borde y justo por encima.

Convención frecuente: intervalos semiabiertos

En programación es habitual usar [inicio, fin). Los índices válidos de un arreglo de longitud n forman [0,n) dentro de los enteros: comienzan en 0 y terminan en n−1. Así, la cantidad de índices coincide con fin−inicio y los tramos consecutivos no se superponen.

10 · Exploración

Laboratorio: construir y probar intervalos

Elegí los extremos, decidí si cada uno está incluido y mové el punto de prueba. La recta, la desigualdad y la evaluación de pertenencia se actualizarán juntas.

EXPERIMENTO 07

Notación, recta y pertenencia

[−3, 4)

Los resultados aparecen debajo del gráfico.
Intervalo[−3, 4)
Desigualdad−3 ≤ x < 4
Pertenencia2 ∈ [−3, 4)
ClasificaciónSemiabierto

El punto 2 pertenece porque cumple ambas condiciones.

El segmento violeta representa el intervalo. Un círculo lleno indica inclusión, uno vacío indica exclusión y el rombo coral marca el punto que se está probando.

Preguntas para explorar

  1. Ubicá el punto exactamente en cada extremo y alterná entre abierto y cerrado.
  2. Hacé coincidir ambos extremos. ¿Cuándo obtenés un conjunto con un punto y cuándo el conjunto vacío?
  3. Colocá el extremo izquierdo a la derecha del extremo derecho. ¿Por qué no existe el intervalo?
  4. Construí (−2,3] y verificá los valores −2, 0, 3 y 3.5.

11 · Discreto dentro de lo continuo

Generar muestras no equivale a generar el intervalo

Un intervalo real contiene infinitos valores y no puede convertirse completo en un arreglo. Sí podemos construir una grilla discreta de muestras separadas por un paso:

function muestrearIntervalo(inicio, fin, paso) {
  if (![inicio, fin, paso].every(Number.isFinite)) {
    throw new TypeError("Se esperan números finitos");
  }
  if (paso <= 0 || inicio > fin) {
    throw new RangeError("Rango o paso inválido");
  }

  const cantidad = Math.floor((fin - inicio) / paso);
  return Array.from(
    { length: cantidad + 1 },
    (_, indice) => inicio + indice * paso
  );
}

console.log(muestrearIntervalo(1, 2, 0.25));
// [1, 1.25, 1.5, 1.75, 2]

El resultado es una selección finita de puntos del intervalo [1,2], no el intervalo mismo. Entre 1 y 1.25 siguen existiendo infinitos reales que el arreglo no contiene.

12 · Comprensión

Confusiones frecuentes

«Los paréntesis significan siempre que el intervalo es negativo»

No. Indican que el extremo queda excluido. El signo del valor y el tipo de borde son información independiente.

«[2,5] contiene solo 2, 3, 4 y 5»

Como intervalo real contiene todos los reales entre 2 y 5: 2.1, π, 4.999 y muchos más. Esa lista correspondería a enteros del intervalo, no al intervalo real.

«[3,+∞] incluye al infinito»

El infinito no es un número real ni un punto alcanzable. La notación correcta es [3,+∞).

«La desigualdad a < x ≤ b se programa a < x <= b»

No en JavaScript. Debe separarse como a < x && x <= b.

«La unión de dos intervalos siempre es otro intervalo»

Solo si no queda un hueco entre ellos. La unión de tramos separados sigue siendo una unión de conjuntos, no un intervalo único.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: cambiar de representación

Escribí como intervalos: −4 ≤ x < 2, x > 7, x ≤ 0 y −1 < x ≤ 5.

Ver solución razonada

Las respuestas son [−4,2), (7,+∞), (−∞,0] y (−1,5]. Una desigualdad estricta produce borde abierto; una que admite igualdad produce borde cerrado.

Ejercicio 2: decidir pertenencia

Para I=(−3,2], decidí si pertenecen −3, −2.99, 0, 2 y 2.01.

Ver solución

−3 no pertenece porque el borde izquierdo es abierto; −2.99 y 0 son interiores; 2 pertenece porque el borde derecho es cerrado; 2.01 queda fuera por ser mayor que 2.

Ejercicio 3: operar intervalos

Sean A=[−2,4) y B=(1,6]. Calculá A∩B y A∪B.

Ver solución

La intersección es (1,4): debe superar 1 y queda excluido 4 por A. Como se superponen, la unión no tiene huecos y es [−2,6].

Ejercicio 4: validar un rango

Una API acepta porcentajes en [0,100]. Escribí una función que acepte solo números finitos del intervalo y probala con −1, 0, 37.5, 100, 101 y NaN.

Ver solución y código
function esPorcentaje(valor) {
  return Number.isFinite(valor) && valor >= 0 && valor <= 100;
}

[-1, 0, 37.5, 100, 101, NaN].forEach(valor => {
  console.log(valor, esPorcentaje(valor));
});

// false, true, true, true, false, false

Number.isFinite evita aceptar NaN o infinitos como entradas numéricas válidas. Las comparaciones incluyen ambos extremos.

14 · Síntesis

Ideas para recordar

  • Un intervalo contiene todos los reales comprendidos entre sus extremos.
  • Un corchete incluye el extremo; un paréntesis lo excluye.
  • [a,b], (a,b), [a,b) y (a,b] expresan las cuatro combinaciones posibles.
  • El infinito siempre lleva paréntesis porque no es un número real alcanzable.
  • significa “pertenece” y , “no pertenece”.
  • La intersección exige cumplir ambas condiciones; la unión, al menos una.
  • Una unión con huecos no puede expresarse como un único intervalo.
  • En JavaScript las desigualdades encadenadas se separan y se unen con &&.
  • Una grilla finita puede muestrear un intervalo, pero no contiene todos sus puntos.

En el próximo tema estudiaremos el entorno de un punto: cómo describir valores cercanos mediante distancia e intervalos centrados, una idea esencial para hablar luego de aproximación y límites.