30. Funciones irracionales

Las funciones irracionales contienen la variable dentro de una raíz. Su dominio depende de que el radicando tenga valores permitidos.

30.1 Introducción

Una función irracional es una función donde la variable aparece dentro de una raíz. El caso más común en programación es la raíz cuadrada.

Estas funciones aparecen al calcular distancias, magnitudes, velocidades, escalas y relaciones geométricas. Su principal cuidado es el dominio: no siempre podemos evaluar la raíz para cualquier valor real.

30.2 Definición

Una función irracional contiene una expresión con raíz donde aparece la variable.

f(x) = √x g(x) = √(x - 3) h(x) = √(2x + 5)

La expresión que está dentro de la raíz se llama radicando.

30.3 Radicando

El radicando es la expresión ubicada dentro del símbolo de raíz.

Función Radicando Condición para raíz cuadrada
f(x) = √x x x ≥ 0
f(x) = √(x - 4) x - 4 x - 4 ≥ 0
f(x) = √(2x + 6) 2x + 6 2x + 6 ≥ 0

30.4 Dominio con raíz cuadrada

En los números reales, una raíz cuadrada solo está definida cuando el radicando es mayor o igual que cero.

f(x) = √(x - 2) x - 2 ≥ 0 x ≥ 2

El dominio de esta función es x ≥ 2.

30.5 Raíz cuadrada en JavaScript

JavaScript calcula raíces cuadradas con Math.sqrt. Si intentamos calcular la raíz cuadrada de un número negativo, el resultado es NaN.

console.log(Math.sqrt(25));
console.log(Math.sqrt(0));
console.log(Math.sqrt(-4));

NaN significa que el resultado no es un número válido en el sistema numérico usado por JavaScript.

30.6 Evaluación segura

Para implementar una función irracional, conviene validar el radicando antes de llamar a Math.sqrt.

function raizDesplazada(x) {
  const radicando = x - 2;

  if (radicando < 0) {
    return null;
  }

  return Math.sqrt(radicando);
}

console.log(raizDesplazada(1));
console.log(raizDesplazada(2));
console.log(raizDesplazada(11));

30.7 Dominio con radicando lineal

Si el radicando es lineal, podemos resolver una desigualdad simple.

f(x) = √(3x - 6) 3x - 6 ≥ 0 x ≥ 2

Solo podemos evaluar la función para valores de x mayores o iguales que 2.

30.8 Calcular el inicio del dominio

Para una raíz cuadrada de la forma √(ax + b), el límite del dominio se obtiene resolviendo ax + b = 0.

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

  return -b / a;
}

console.log(limiteDominioRaizLineal(3, -6));
console.log(limiteDominioRaizLineal(2, 8));

Si a es positivo, el dominio queda hacia la derecha del límite. Si a es negativo, queda hacia la izquierda.

30.9 Raíces pares e impares

Las raíces pares y las raíces impares tienen restricciones distintas en los números reales.

Tipo de raíz Ejemplo Restricción real
Par √x, ⁴√x El radicando debe ser ≥ 0
Impar ³√x, ⁵√x Puede aceptar radicandos negativos

30.10 Raíz cúbica en JavaScript

JavaScript incluye Math.cbrt para calcular raíces cúbicas. A diferencia de Math.sqrt, acepta números negativos.

console.log(Math.cbrt(27));
console.log(Math.cbrt(0));
console.log(Math.cbrt(-8));

30.11 Generar puntos válidos

Al graficar una función irracional, conviene generar solo puntos que pertenecen al dominio.

function f(x) {
  const radicando = x - 1;

  if (radicando < 0) {
    return null;
  }

  return Math.sqrt(radicando);
}

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

  for (let x = desde; x <= hasta; x += paso) {
    const valorX = Number(x.toFixed(6));
    const y = f(valorX);

    if (y !== null) {
      puntos.push({ x: valorX, y });
    }
  }

  return puntos;
}

console.log(generarPuntos(-2, 5, 1));

30.12 Aplicación: distancia entre dos puntos

La fórmula de distancia usa una raíz cuadrada. El radicando es una suma de cuadrados, por eso nunca es negativo.

distancia = √((x₂ - x₁)² + (y₂ - y₁)²)
function distancia(p1, p2) {
  const dx = p2.x - p1.x;
  const dy = p2.y - p1.y;

  return Math.sqrt(dx ** 2 + dy ** 2);
}

console.log(distancia({ x: 0, y: 0 }, { x: 3, y: 4 }));

30.13 Aplicación: normalizar un vector

En gráficos, simulaciones y videojuegos, se suele calcular la longitud de un vector usando raíz cuadrada.

function longitud(vector) {
  return Math.sqrt(vector.x ** 2 + vector.y ** 2);
}

function normalizar(vector) {
  const l = longitud(vector);

  if (l === 0) {
    return { x: 0, y: 0 };
  }

  return {
    x: vector.x / l,
    y: vector.y / l
  };
}

console.log(normalizar({ x: 3, y: 4 }));
console.log(normalizar({ x: 0, y: 0 }));

La validación evita dividir por cero cuando el vector no tiene longitud.

30.14 Comparación con funciones racionales

Las funciones racionales y las irracionales pueden tener restricciones de dominio, pero por motivos distintos.

Tipo Restricción común Ejemplo
Racional Denominador distinto de cero 1 / (x - 2)
Irracional con raíz par Radicando mayor o igual que cero √(x - 2)

30.15 Aplicaciones en programación

  • Calcular distancias entre puntos.
  • Obtener longitudes de vectores.
  • Modelar relaciones que crecen rápido al comienzo y luego se suavizan.
  • Calcular magnitudes físicas a partir de componentes.
  • Validar entradas antes de graficar funciones con raíces.

30.16 Errores comunes

  • Calcular raíz cuadrada de un radicando negativo sin validar.
  • Confundir NaN con un valor numérico válido.
  • Olvidar que las raíces pares restringen el dominio.
  • Aplicar las mismas restricciones a raíces impares.
  • Graficar puntos fuera del dominio de la función.

30.17 Qué debes recordar de este tema

  • Una función irracional contiene la variable dentro de una raíz.
  • El radicando es la expresión que está dentro de la raíz.
  • En raíces pares reales, el radicando debe ser mayor o igual que cero.
  • Math.sqrt devuelve NaN si recibe un número negativo.
  • Math.cbrt permite calcular raíces cúbicas de números negativos.
  • En programación conviene validar el dominio antes de evaluar o graficar.

30.18 Conclusión

Las funciones irracionales introducen restricciones de dominio relacionadas con raíces. Estas restricciones son especialmente importantes al programar, porque una entrada inválida puede producir NaN y afectar cálculos posteriores.

En el próximo tema estudiaremos funciones de valor absoluto, que presentan otro tipo de comportamiento especial: cambian su expresión según el signo de la entrada.