01 · Punto de partida
Resolver una ecuación es encontrar una raíz
Una raíz o cero de una función f es un valor r que satisface:
Muchas ecuaciones pueden escribirse en esta forma. Por ejemplo, resolver cos(x) = x equivale a encontrar una raíz de:
En ecuaciones lineales o cuadráticas existen fórmulas conocidas. Para ecuaciones trascendentes, polinomios de grado alto o modelos complejos, una solución simbólica puede no existir o resultar poco práctica. Entonces buscamos aproximaciones numéricas.
- ¿Existe al menos una raíz?
- ¿En qué región debemos buscarla?
- ¿Puede haber varias soluciones?
- ¿La función es continua y está definida en el intervalo?
- ¿Cómo verificaremos la aproximación obtenida?
02 · De la ecuación a una función
Construir f(x)=0
Si una ecuación tiene la forma g(x) = h(x), trasladamos todos los términos a un lado:
Las soluciones son los puntos donde ambas expresiones coinciden.
| Ecuación original | Función f(x) | Dominio relevante |
|---|---|---|
x³ = 2x + 5 | x³ − 2x − 5 | Todos los reales |
e−x = x | e−x − x | Todos los reales |
ln(x) = 2 − x | ln(x) + x − 2 | x > 0 |
1/(x−1) = 3 | 1/(x−1) − 3 | x ≠ 1 |
La forma elegida puede influir en la estabilidad y en el comportamiento de algunos métodos. Dos funciones con las mismas raíces no necesariamente producen los mismos residuos ni la misma convergencia.
03 · Aplicaciones
Raíces en problemas de programación
Punto de equilibrio
Encontrar cuándo ingresos y costos coinciden: ingreso(x) − costo(x) = 0.
Eventos en simulación
Calcular el instante en que una trayectoria alcanza el suelo o cruza un límite.
Geometría
Determinar un ángulo que produce una distancia, área o intersección requerida.
Modelos físicos
Resolver estados de equilibrio donde fuerzas, flujos o energías se compensan.
Probabilidad
Invertir una función de distribución para obtener cuantiles.
Calibración
Ajustar un parámetro hasta que la predicción coincida con una observación.
Ejemplo: altura de un objeto
Si h(t) = 20 + 15t − 4.9t² describe la altura en metros, el impacto con el suelo ocurre cuando h(t)=0. Además debemos imponer t ≥ 0, porque una raíz negativa no representa un tiempo posterior al lanzamiento.
04 · Interpretación geométrica
Raíces como cruces e intersecciones
En el gráfico de y=f(x), una raíz es un punto donde la curva alcanza el eje horizontal.
f(x) = 0
Cruce con el eje x
Buscamos las abscisas de los puntos (r, 0).
g(x) = h(x)
Intersección de dos curvas
Las soluciones son los valores donde ambos gráficos tienen la misma altura.
El gráfico permite estimar cantidad y ubicación de raíces, elegir intervalos y detectar comportamientos problemáticos. Sin embargo, una pantalla utiliza una cantidad finita de píxeles y muestras: una raíz estrecha, una oscilación rápida o una discontinuidad pueden pasar inadvertidas.
05 · Existencia garantizada
Continuidad y cambio de signo
Si f es continua en el intervalo cerrado [a,b] y los valores de los extremos tienen signos opuestos:
entonces existe al menos una raíz en (a,b). Es una consecuencia del Teorema del Valor Intermedio.
Ejemplo
Para f(x)=x³−x−2:
Como el polinomio es continuo y cambia de signo, sabemos que existe al menos una raíz entre 1 y 2.
const f = x => x ** 3 - x - 2;
const a = 1;
const b = 2;
console.log(f(a), f(b));
console.log(f(a) * f(b) < 0); // true
El cambio de signo garantiza al menos una raíz, pero no afirma que sea única. Para garantizar unicidad necesitamos información adicional, como monotonía estricta en el intervalo.
06 · Lo que el cambio de signo no detecta
Raíces pares y discontinuidades
Una raíz sin cambio de signo
La función f(x)=(x−1)² toca el eje en x=1 y vuelve a subir. Es positiva a ambos lados:
Un detector basado únicamente en signos puede omitir esta raíz de multiplicidad par.
Un cambio de signo sin raíz
La función f(x)=1/(x−1) cambia de signo alrededor de 1, pero no tiene una raíz allí: posee una discontinuidad vertical.
| Observación | Conclusión posible |
|---|---|
| Continuidad y signos opuestos | Existe al menos una raíz. |
| Signos iguales | No podemos descartar raíces pares o varias raíces. |
| Signos opuestos sin continuidad | Puede existir una discontinuidad en lugar de una raíz. |
| Valor muestreado cercano a cero | Es un candidato que debe verificarse. |
07 · Antes de evaluar
Dominio y restricciones del modelo
Un buscador de raíces debe respetar tanto el dominio matemático como las restricciones del problema.
log(x)requierex > 0.√xrequierex ≥ 0si trabajamos con reales.- Un denominador no puede ser cero.
- Tiempo, masa o cantidad pueden requerir valores no negativos.
- Un ángulo o una probabilidad puede estar limitado a un intervalo específico.
function modeloLogaritmico(x) {
if (!(x > 0)) return NaN;
return Math.log(x) + x - 2;
}
for (const x of [-1, 0, 0.5, 1, 2]) {
console.log(x, modeloLogaritmico(x));
}
Devolver NaN permite que un explorador genérico descarte muestras fuera del dominio, pero una API también puede lanzar una excepción o describir explícitamente los intervalos válidos.
08 · Exploración numérica
Construir una tabla de valores
Una tabla permite localizar cambios de signo sin depender únicamente del gráfico. Elegimos un intervalo y un paso, evaluamos la función y observamos pares consecutivos.
function tablaDeValores(funcion, inicio, fin, paso) {
if (!(paso > 0) || !(fin >= inicio)) {
throw new Error("Intervalo o paso inválido");
}
const filas = [];
const cantidad = Math.ceil((fin - inicio) / paso);
for (let i = 0; i <= cantidad; i++) {
const x = Math.min(inicio + i * paso, fin);
filas.push({ x, y: funcion(x) });
}
return filas;
}
console.table(tablaDeValores(x => x ** 3 - x - 2, 0, 2, 0.25));
Calcular cada x desde el índice evita acumular repetidamente el error de sumar el paso. Aun así, los valores siguen siendo aproximaciones de punto flotante.
09 · Preparar el método
Aislar intervalos candidatos
Un intervalo de aislamiento contiene una raíz candidata y, idealmente, ninguna otra. Para detectar cambios de signo:
- 1Elegir rango y paso.
Usar información del modelo para limitar la exploración.
- 2Evaluar muestras finitas.
Descartar
NaNe infinitos y registrar posibles discontinuidades. - 3Comparar signos consecutivos.
Guardar
[xᵢ,xᵢ₊₁]si el producto es negativo. - 4Detectar valores cercanos a cero.
Considerar raíces tangentes que no cambian de signo.
- 5Verificar continuidad y dominio.
Un candidato no es todavía una garantía.
function intervalosConCambioDeSigno(funcion, inicio, fin, paso) {
const intervalos = [];
let xAnterior = inicio;
let yAnterior = funcion(xAnterior);
for (let x = inicio + paso; x <= fin + paso / 2; x += paso) {
const actual = Math.min(x, fin);
const yActual = funcion(actual);
if (Number.isFinite(yAnterior) && Number.isFinite(yActual)
&& yAnterior * yActual < 0) {
intervalos.push([xAnterior, actual]);
}
xAnterior = actual;
yAnterior = yActual;
if (actual === fin) break;
}
return intervalos;
}
console.log(intervalosConCambioDeSigno(
x => Math.sin(3 * x) - 0.2, -3, 3, 0.1
));
10 · Resolución de búsqueda
Cómo influye el tamaño del paso
Un paso grande reduce evaluaciones, pero puede saltar sobre dos raíces próximas o no muestrear cerca de una raíz tangente. Un paso pequeño mejora la resolución y aumenta el costo.
Paso demasiado grande
Pocas muestras
Puede ocultar oscilaciones, raíces múltiples y regiones estrechas.
Paso demasiado pequeño
Muchas evaluaciones
Puede resultar costoso y no reemplaza la verificación de continuidad.
Una estrategia adaptativa comienza con una exploración gruesa y refina las regiones donde:
- aparece un cambio de signo;
- el valor absoluto de la función disminuye mucho;
- la pendiente o curvatura parece elevada;
- hay valores no finitos o saltos grandes.
No existe un paso universal: debe relacionarse con la escala y frecuencia esperada del problema.
11 · Tipos de raíz
Raíces simples y múltiples
Una raíz r tiene multiplicidad m si la función contiene un factor (x−r)ᵐ.
| Tipo | Condición típica | Gráfico | Cambio de signo |
|---|---|---|---|
| Simple | f(r)=0, f′(r)≠0 | Cruza el eje con pendiente no nula | Sí |
| Par | Factor (x−r)², (x−r)⁴… | Toca el eje y regresa | No |
| Impar mayor | Factor (x−r)³, (x−r)⁵… | Cruza de forma aplanada | Sí |
Las raíces múltiples suelen ser más difíciles numéricamente: la función es plana cerca de la solución, el residuo puede ser pequeño sin gran precisión en x y algunos métodos pierden velocidad de convergencia.
12 · Evaluar un candidato
Residuo, intervalo y coherencia
Una aproximación r̃ debe verificarse desde varios ángulos:
- Residuo
- Comprobar que
|f(r̃)|sea pequeño en la escala de la función. - Intervalo
- Si existe un intervalo con garantía, verificar que la aproximación permanezca dentro.
- Dominio
- Confirmar que el valor sea matemáticamente válido y tenga sentido en el modelo.
- Unicidad
- Determinar si el intervalo puede contener otras raíces.
function verificarCandidato(funcion, candidato, toleranciaResiduo) {
const valor = funcion(candidato);
return {
candidato,
valorFuncion: valor,
residuo: Math.abs(valor),
aceptado: Number.isFinite(valor)
&& Math.abs(valor) <= toleranciaResiduo
};
}
console.log(verificarCandidato(
x => x ** 3 - x - 2,
1.5213797068,
1e-9
));
Un residuo pequeño no basta si la función está mal condicionada, pero es una comprobación imprescindible de la ecuación.
13 · Exploración interactiva
Laboratorio: localizar raíces candidatas
Elegí una función y un paso de muestreo. El laboratorio marca cambios de signo y muestras cercanas a cero. Probá especialmente la raíz doble y la discontinuidad.
Explorador de raíces
f(x) = x³ − x − 2
Se detectó un intervalo con cambio de signo.
Preguntas para explorar
- Reducí el paso de la función oscilante. ¿Aparecen más intervalos?
- ¿Por qué la raíz doble puede no producir un cambio de signo?
- En la función discontinua, ¿un cambio de signo garantiza una raíz?
- ¿Cómo cambia la mejor muestra al reducir el paso en la función cúbica?
14 · Diseño reutilizable
Separar exploración y resolución
Conviene dividir el proceso en componentes:
El explorador no debería afirmar que encontró raíces definitivas. Puede devolver objetos con evidencia y advertencias:
const candidato = {
intervalo: [1.5, 1.75],
tipo: "cambio_de_signo",
valores: [-0.125, 1.609375],
continuidadVerificada: false,
requiereRefinamiento: true
};
Luego un método como bisección, falsa posición o Newton-Raphson utiliza esa información según sus propios requisitos. Esta separación facilita cambiar estrategias y conservar diagnósticos.
15 · Comprensión
Confusiones frecuentes
«Si f(a) y f(b) tienen signos opuestos, siempre hay una raíz»
Solo si la función es continua en todo el intervalo. Una discontinuidad puede producir el mismo patrón de signos.
«Si no hay cambio de signo, no hay raíz»
Las raíces de multiplicidad par tocan el eje sin cruzarlo. También puede haber una cantidad par de cruces dentro del intervalo.
«Un gráfico muestra todas las raíces»
El resultado depende del rango, la escala, los píxeles y las muestras utilizadas. Es una herramienta exploratoria.
«Un residuo pequeño demuestra una aproximación precisa»
La relación entre residuo y error depende de la pendiente y del condicionamiento cerca de la raíz.
«Cuanto menor sea el paso, mejor será siempre la búsqueda»
Un paso menor aumenta el costo y todavía puede fallar ante oscilaciones más rápidas o discontinuidades. Debe combinarse con análisis del modelo.
16 · Práctica guiada
Ejercicios
Ejercicio 1: formular una raíz
Transformá eˣ = 3x en un problema f(x)=0 de dos maneras.
Ver solución
Una forma es f(x)=eˣ−3x. Otra es g(x)=eˣ/(3x)−1, pero esta segunda excluye x=0 y tiene un comportamiento numérico diferente. La primera suele ser más directa.
Ejercicio 2: cambio de signo
Para f(x)=x³−4x+1, evaluá f(0), f(1), f(2) y f(3). Identificá intervalos con raíces garantizadas por continuidad.
Ver solución
f(0)=1, f(1)=−2, f(2)=1 y f(3)=16. Hay cambios de signo en (0,1) y (1,2). Como es un polinomio continuo, cada intervalo contiene al menos una raíz.
Ejercicio 3: raíz sin cambio de signo
Explicá por qué f(x)=(x+2)²(x−1) puede presentar una raíz que un escaneo de signos no detecte.
Ver solución razonada
x=−2 es una raíz de multiplicidad 2. El factor cuadrado conserva su signo a ambos lados, de modo que la función no cruza el eje allí. x=1 es una raíz simple y sí produce un cambio de signo.
Ejercicio 4: discontinuidad
La función f(x)=tan(x) tiene signos opuestos cerca de π/2. ¿Por qué no podemos aplicar directamente el Teorema del Valor Intermedio?
Ver solución
tan(x) no está definida en π/2 y no es continua en un intervalo que atraviese ese punto. El cambio de signo corresponde a una asíntota, no a una raíz.
Ejercicio 5: programar un explorador
Modificá el buscador de intervalos para registrar también muestras con |f(x)| ≤ toleranciaMuestra.
Ver una posible solución
function explorarRaices(funcion, inicio, fin, paso, toleranciaMuestra) {
const cambios = [];
const cercanas = [];
let anterior = { x: inicio, y: funcion(inicio) };
for (let x = inicio; x <= fin + paso / 2; x += paso) {
const actualX = Math.min(x, fin);
const actual = { x: actualX, y: funcion(actualX) };
if (Number.isFinite(actual.y)
&& Math.abs(actual.y) <= toleranciaMuestra) {
cercanas.push(actual);
}
if (Number.isFinite(anterior.y) && Number.isFinite(actual.y)
&& anterior.y * actual.y < 0) {
cambios.push([anterior.x, actual.x]);
}
anterior = actual;
if (actualX === fin) break;
}
return { cambios, cercanas };
}
17 · Síntesis
Ideas para recordar
- Resolver una ecuación numéricamente comienza por escribirla como
f(x)=0. - El dominio matemático y las restricciones del modelo limitan la búsqueda.
- Un gráfico y una tabla ayudan a localizar raíces, pero no constituyen una prueba completa.
- Continuidad más cambio de signo garantiza al menos una raíz.
- Las raíces pares pueden no cambiar de signo y las discontinuidades pueden simular un cambio.
- El tamaño del paso controla el equilibrio entre resolución y costo.
- Aislar candidatos es una etapa distinta de refinarlos con un método numérico.
- Toda aproximación debe verificarse mediante residuo, dominio y coherencia con el modelo.
En el próximo tema aplicaremos el método de bisección, que utiliza un intervalo continuo con cambio de signo para reducir sistemáticamente la región que contiene una raíz.