29. Asíntotas y discontinuidades

Las funciones racionales pueden acercarse a rectas sin tocarlas y también pueden tener cortes en su dominio. Estos comportamientos son esenciales al graficar y programar modelos con divisiones.

29.1 Introducción

En el tema anterior vimos que una función racional no puede evaluarse donde su denominador vale cero. Esa restricción puede producir comportamientos particulares: valores que crecen sin límite, saltos en el gráfico o huecos.

Para programar gráficos o simulaciones con funciones racionales, es importante detectar estos casos. Si no lo hacemos, podemos unir puntos que no deberían estar unidos o mostrar resultados numéricos inválidos.

29.2 Qué es una discontinuidad

Una discontinuidad ocurre cuando una función no puede dibujarse de forma continua en algún punto. En funciones racionales, muchas discontinuidades aparecen cuando el denominador se anula.

f(x) = 1 / (x - 2) x = 2 no pertenece al dominio

El gráfico se interrumpe en x = 2.

29.3 Qué es una asíntota

Una asíntota es una recta a la que el gráfico de una función se acerca cada vez más. La función puede aproximarse a esa recta sin llegar a coincidir exactamente con ella en la zona analizada.

En funciones racionales estudiaremos principalmente asíntotas verticales, horizontales y oblicuas.

29.4 Asíntota vertical

Una asíntota vertical aparece cuando la función crece o decrece sin límite al acercarse a un valor prohibido.

f(x) = 1 / (x - 3) asíntota vertical: x = 3

Al acercarnos a x = 3, el denominador se acerca a cero y el resultado se vuelve muy grande en valor absoluto.

29.5 Observar una asíntota vertical con JavaScript

Podemos evaluar valores cada vez más cercanos al punto prohibido.

function f(x) {
  return 1 / (x - 3);
}

console.log(f(2.9));
console.log(f(2.99));
console.log(f(3.01));
console.log(f(3.1));

Los valores a la izquierda y a la derecha de la asíntota pueden tener signos opuestos.

29.6 Asíntota horizontal

Una asíntota horizontal describe el valor al que se acerca una función cuando x crece mucho en sentido positivo o negativo.

f(x) = (2x + 1) / (x - 4) para valores grandes de x, f(x) se acerca a 2 asíntota horizontal: y = 2

En este caso, los términos principales del numerador y el denominador tienen el mismo grado. El cociente de sus coeficientes principales es 2 / 1 = 2.

29.7 Estimar una asíntota horizontal

Si evaluamos la función en valores grandes, podemos observar hacia qué número se aproxima.

function f(x) {
  return (2 * x + 1) / (x - 4);
}

console.log(f(10));
console.log(f(100));
console.log(f(1000));
console.log(f(10000));

29.8 Reglas básicas para asíntotas horizontales

Para una función racional P(x) / Q(x), comparamos los grados del numerador y del denominador.

Comparación de grados Asíntota horizontal
grado(P) < grado(Q) y = 0
grado(P) = grado(Q) cociente de coeficientes principales
grado(P) > grado(Q) No hay asíntota horizontal simple

29.9 Asíntota oblicua

Una asíntota oblicua puede aparecer cuando el grado del numerador es exactamente uno más que el grado del denominador.

f(x) = (x² + 1) / x f(x) = x + 1/x para valores grandes, 1/x se acerca a 0 asíntota oblicua: y = x

Este tipo de asíntota se estudiará con más profundidad en cursos de álgebra o cálculo, pero conviene reconocer su aparición.

29.10 Discontinuidad removible

Una discontinuidad removible aparece cuando un factor se cancela entre numerador y denominador. El gráfico queda como una curva conocida, pero con un hueco en un punto.

f(x) = (x² - 1) / (x - 1) f(x) = ((x - 1)(x + 1)) / (x - 1) f(x) = x + 1, pero x ≠ 1

En x = 1 hay un hueco, no una asíntota vertical.

29.11 Distinguir hueco y asíntota vertical

Situación Qué ocurre Ejemplo
Factor se cancela Discontinuidad removible o hueco (x² - 1) / (x - 1)
Factor no se cancela Puede aparecer una asíntota vertical 1 / (x - 1)

29.12 Generar puntos sin unir discontinuidades

Al graficar una función racional, no conviene unir puntos si la función no está definida entre ellos o si los valores cambian demasiado rápido.

function f(x) {
  const denominador = x - 2;

  if (denominador === 0) {
    return null;
  }

  return 1 / denominador;
}

function generarPuntos(desde, hasta, paso) {
  const puntos = [];

  for (let x = desde; x <= hasta; x += paso) {
    const y = f(Number(x.toFixed(6)));
    puntos.push({ x: Number(x.toFixed(2)), y });
  }

  return puntos;
}

console.log(generarPuntos(1.5, 2.5, 0.25));

29.13 Separar tramos para graficar

Una estrategia práctica es separar los puntos en tramos. Cuando aparece un valor inválido o un salto muy grande, comenzamos un tramo nuevo.

function separarTramos(puntos, saltoMaximo) {
  const tramos = [];
  let tramoActual = [];

  for (const punto of puntos) {
    const anterior = tramoActual[tramoActual.length - 1];
    const invalido = punto.y === null || !Number.isFinite(punto.y);
    const saltoGrande = anterior && Math.abs(punto.y - anterior.y) > saltoMaximo;

    if (invalido || saltoGrande) {
      if (tramoActual.length) tramos.push(tramoActual);
      tramoActual = [];
    } else {
      tramoActual.push(punto);
    }
  }

  if (tramoActual.length) tramos.push(tramoActual);
  return tramos;
}

const puntos = [
  { x: 1.5, y: -2 },
  { x: 1.9, y: -10 },
  { x: 2, y: null },
  { x: 2.1, y: 10 },
  { x: 2.5, y: 2 }
];

console.log(separarTramos(puntos, 20));

29.14 Detectar asíntota vertical lineal

Si el denominador es lineal, podemos encontrar el valor donde se anula.

function asintotaVerticalLineal(a, b) {
  if (a === 0) {
    return null;
  }

  return -b / a;
}

console.log(asintotaVerticalLineal(1, -2));
console.log(asintotaVerticalLineal(3, 6));

Estos valores son candidatos a asíntotas verticales, aunque también hay que revisar si la expresión se simplifica y aparece un hueco.

29.15 Aplicaciones en programación

Área Problema Cuidado
Graficadores Curvas partidas por discontinuidades Separar tramos
Simulaciones Valores que crecen demasiado Limitar rangos o validar entradas
Modelos inversos División por distancias pequeñas Usar distancia mínima
Análisis de datos Promedios o tasas con denominador cero Detectar casos inválidos

29.16 Errores comunes

  • Unir con una línea dos puntos separados por una asíntota vertical.
  • Tratar Infinity como si fuera un valor válido del gráfico.
  • Olvidar que una simplificación puede dejar un hueco en el dominio.
  • Confundir una discontinuidad removible con una asíntota vertical.
  • Analizar solo la fórmula simplificada y no la restricción original.

29.17 Qué debes recordar de este tema

  • Una discontinuidad es una interrupción en el dominio o en el comportamiento continuo de la función.
  • Una asíntota es una recta a la que la función se acerca.
  • Las asíntotas verticales suelen aparecer cerca de valores que anulan el denominador.
  • Las asíntotas horizontales dependen de los grados del numerador y el denominador.
  • Una discontinuidad removible aparece cuando se cancela un factor, pero queda una restricción en el dominio.
  • Al graficar en programas, conviene separar tramos y validar valores inválidos.

29.18 Conclusión

Las asíntotas y discontinuidades muestran que no todas las funciones pueden graficarse como una línea continua. En funciones racionales, estos fenómenos aparecen naturalmente por la presencia del denominador.

En el próximo tema estudiaremos funciones irracionales, donde aparecerán nuevas restricciones de dominio relacionadas con raíces.