Obtener una función inversa consiste en despejar la entrada original a partir de la salida y verificar que el camino de vuelta funciona.
En el tema anterior vimos que una función inversa deshace el efecto de una función original. Ahora veremos cómo obtenerla paso a paso.
El procedimiento combina una idea algebraica, despejar la variable, con una idea computacional: verificar que la transformación puede recorrerse en ambos sentidos.
Para obtener una función inversa a partir de una expresión, se puede seguir este proceso.
Tomemos la función:
Primero escribimos y = 2x + 6. Luego intercambiamos las variables:
Ahora se despeja y.
Entonces la inversa es:
La función original y su inversa pueden implementarse directamente.
function f(x) {
return 2 * x + 6;
}
function inversa(y) {
return (y - 6) / 2;
}
const salida = f(10);
const entrada = inversa(salida);
console.log(salida);
console.log(entrada);
Una inversa correcta debe recuperar el valor inicial cuando se compone con la función original.
function f(x) {
return 2 * x + 6;
}
function inversa(x) {
return (x - 6) / 2;
}
console.log(inversa(f(0)));
console.log(inversa(f(5)));
console.log(f(inversa(20)));
Para la función:
El despeje queda así:
function f(x) {
return 5 * x - 4;
}
function inversa(x) {
return (x + 4) / 5;
}
for (let valor = 0; valor <= 3; valor++) {
console.log({
valor,
salida: f(valor),
recuperado: inversa(f(valor))
});
}
Cuando una función tiene varias operaciones, la inversa las deshace en orden contrario.
La función original primero resta 3 y luego divide por 4. La inversa primero multiplica por 4 y luego suma 3.
function original(x) {
return (x - 3) / 4;
}
function inversa(y) {
return y * 4 + 3;
}
const salida = original(19);
console.log(salida);
console.log(inversa(salida));
| Operación original | Operación inversa | Ejemplo |
|---|---|---|
| Sumar k | Restar k | x + 5 → x - 5 |
| Restar k | Sumar k | x - 5 → x + 5 |
| Multiplicar por k | Dividir por k | 3x → x / 3 |
| Dividir por k | Multiplicar por k | x / 3 → 3x |
| Elevar al cuadrado | Raíz cuadrada con restricción | x² → √x |
La función f(x) = x² no tiene inversa global en todos los reales. Pero si restringimos el dominio a x ≥ 0, su inversa es la raíz cuadrada.
function cuadraticaRestringida(x) {
if (x < 0) {
return "Fuera del dominio";
}
return x * x;
}
function inversaCuadratica(y) {
if (y < 0) {
return "Fuera del dominio";
}
return Math.sqrt(y);
}
console.log(cuadraticaRestringida(6));
console.log(inversaCuadratica(36));
La función cúbica f(x) = x³ sí conserva el signo y es uno a uno en todos los reales.
En JavaScript se puede usar Math.cbrt para calcular la raíz cúbica.
function cubica(x) {
return x * x * x;
}
function inversaCubica(y) {
return Math.cbrt(y);
}
console.log(cubica(3));
console.log(inversaCubica(27));
console.log(inversaCubica(-8));
La inversa de una función exponencial es una función logarítmica.
Como JavaScript tiene logaritmo natural, se puede usar cambio de base.
function exponencialBase2(x) {
return Math.pow(2, x);
}
function logBase2(y) {
return Math.log(y) / Math.log(2);
}
const salida = exponencialBase2(5);
console.log(salida);
console.log(logBase2(salida));
Al trabajar con decimales, puede haber pequeñas diferencias por precisión numérica. Conviene comparar con una tolerancia.
function casiIguales(a, b, tolerancia) {
return Math.abs(a - b) < tolerancia;
}
function f(x) {
return Math.pow(2, x);
}
function inversa(y) {
return Math.log(y) / Math.log(2);
}
const original = 7;
const recuperado = inversa(f(original));
console.log(recuperado);
console.log(casiIguales(original, recuperado, 0.000001));
En conversiones de unidades, el mismo método de deshacer operaciones permite escribir la función inversa.
function metrosAPixeles(metros) {
return metros * 40 + 100;
}
function pixelesAMetros(pixeles) {
return (pixeles - 100) / 40;
}
const pixel = metrosAPixeles(3);
console.log(pixel);
console.log(pixelesAMetros(pixel));
Obtener una función inversa es una herramienta clave para trabajar con transformaciones reversibles. En programación, el mismo razonamiento permite diseñar conversiones confiables, recuperar valores originales y comprobar que los cálculos no pierden información innecesariamente.