Métodos Numéricos · Matemáticas

Error y estabilidad numérica

Clasificar las fuentes de error en el cálculo numérico (representación, truncamiento y propagación), y reconocer algoritmos inestables que amplifican el error.

Error y estabilidad numérica

Diagrama de metodos numericos: metodo de Newton, interpolacion y regla del trapecio.
Metodos numericos: raices, interpolacion, integracion y sistemas lineales.

Mapa conceptual

Nada calculado es exacto Un ordenador no representa los reales: los aproxima con unos pocos bits. Sumar mil millones de números pequeños en el orden equivocado puede darte un resultado distinto, y a veces absolutamente falso. El error numérico es la sombra de todo cálculo finito.

Las tres familias del error

Números en punto flotante

Un real se guarda como signo, mantisa y exponente, con un número fijo de dígitos. Entre 0,1 y 0,2 hay infinitos valores, pero la máquina solo distingue una cuadrícula finita: todo lo demás se redondea a la representación más cercana. Ese redondeo es la semilla del error.

El ejemplo de 0,1

El número 0,1, exacto en decimal, no tiene representación exacta en binario: es un periódico infinito que se trunca. Por eso, en casi cualquier lenguaje, la suma repetida de 0,1 no da exactamente 0,3. No es un fallo del lenguaje: es la naturaleza del punto flotante.

Error absoluto y relativo

El error absoluto mide la distancia entre el valor aproximado y el verdadero. El relativo la expresa en proporción al tamaño de la cantidad. Un error de una unidad es enorme para medir hormigas y despreciable para medir galaxias: el error relativo suele ser el que importa.

Cifras significativas

Decir que un resultado tiene tres cifras significativas fiables es una forma honesta de acotar el error. No todos los dígitos que imprime una calculadora son ciertos; los últimos suelen ser ruido. Aprender a cuántas cifras podemos confiar es parte del oficio.

Redondeo y cancelación

Al restar dos números casi iguales, las cifras significativas coincidentes se cancelan y quedan al desnudo los dígitos menos fiables: es la cancelación catastrófica. Un algoritmo ingenuo que resta cantidades cercanas puede destruir la precisión con la que se alimentó.

El costo de sumar en mal orden

Sumar muchos números de magnitudes muy distintas depende del orden. Si acumulas primero los grandes, los pequeños se pierden al redondear contra el total. Sumar de menor a mayor, o con compensación, redujo históricamente errores que parecían misteriosos.

Error de truncamiento

Aproximar una suma infinita por una finita, o una derivada por un cociente con h finita, introduce un sesgo sistemático. Este error no es ruido: es una desviación que se puede acotar y que suele caer al refinar el paso, aunque a costa de más operaciones.

El dilema del tamaño de paso

En muchos métodos, reducir el paso disminuye el truncamiento pero aumenta el número de operaciones y, con ellas, el error de redondeo acumulado. Existe un paso óptimo donde la suma de ambos errores es mínima; hacerlo más pequeño puede empeorar el resultado.

Condicionamiento del problema

Algunos problemas son intrínsecamente sensibles: un cambio diminuto en los datos provoca un cambio enorme en la solución. A eso se le llama mal condicionamiento, y no es culpa del algoritmo: ningún método puede dar precisión que el propio problema no admite.

Número de condición

El número de condición cuantifica cuánto se amplifica un error relativo de entrada en la salida. Uno grande advierte de que el problema es frágil. Antes de culpar al software, hay que mirar si el problema está bien puesto: la fragilidad puede ser inherente.

Estabilidad del algoritmo

Un algoritmo es estable si el error que produce se comporta como si viniera de datos ligeramente perturbados, sin amplificarlo descontroladamente. El mismo problema correcto puede atacarse con un método estable o con uno que convierta el ruido en un caos creciente.

Estable frente a correcto

Un método puede ser matemáticamente correcto y numéricamente desastroso. La fórmula resolvente escrita de forma ingenua pierde precisión para ciertas raíces; reordenada, es robusta. La corrección formal no basta: hay que pensar en aritmética finita.

Crecimiento del error

En procesos iterativos el error puede propagarse de tres maneras: mantenerse acotado, crecer de forma controlada o explotar. Un método numéricamente inestable hace que el redondeo se multiplique en cada iteración hasta dominar el resultado.

Compensar el error

Existen técnicas para recuperar precisión perdida: aritmética de doble extensión, suma compensada de Kahan, o reformular expresiones para evitar cancelaciones. Reescribir una resta peligrosa como su equivalente algebraico es un recurso barato y poderoso.

Ejemplos de reescritura

Errores frecuentes

Un problema mal condicionado admite soluciones numéricas arbitrariamente precisas si el algoritmo es suficientemente bueno.

Tolerancias en lugar de igualdad

Comparar dos flotantes con igual que es un error clásico: casi nunca son idénticos bit a bit. Se compara contra una tolerancia, absoluta o relativa. Elegir esa tolerancia con criterio —ni demasiado holgada ni absurda— es parte de programar de forma numéricamente sana.

Por qué importa en datos

En aprendizaje automático y ciencia de datos, la inestabilidad numérica se manifiesta como NaN, gradientes que explotan o resultados irreproducibles entre plataformas. Entender el error evita depurar durante horas un modelo que en realidad estaba bien formulado y mal calculado.

Restar dos números muy parecidos escritos en punto flotante suele provocar principalmente:

Preservar la confianza

La regla de oro es nunca reportar más precisión de la que se tiene y sospechar de restas, divisiones por números pequeños y acumulaciones largas. Un científico numérico honesto reporta el error junto con el valor, no solo el valor.

Vocabulario del error numérico

Distancia al valor verdadero
error absoluto
Error en proporción a la magnitud
error relativo
Amplificación inherente de perturbaciones
mal condicionamiento
Pérdida de cifras al restar valores cercanos
cancelación catastrófica
Que el error no se descontrole
estabilidad del algoritmo

Ordena de la fuente más básica a la más sistémica del error:

Representa
Trunca
Propaga
Amplifica

Tu algoritmo devuelve NaN tras miles de iteraciones al actualizar unos pesos. ¿A qué familia de error apunta el síntoma y qué reformulación podrías intentar antes de tocar el modelo?

Math.NET Numerics
Biblioteca de métodos numéricos.