Error y estabilidad numérica

Mapa conceptual
- Métodos Numéricos
- Raíces
- Bisección
- Newton
- Interpolación
- Lagrange
- Splines
- Integración
- Trapecios
- Simpson
- Sistemas
- Gauss
- Iteración
- Errores
- Redondeo
- Truncamiento
- Estabilidad
- Raíces
Las tres familias del error
- Error de representación: no todos los reales caben en memoria; punto flotante redondea.
- Error de truncamiento: cortar un proceso infinito (una serie, un límite) tras unos pasos.
- Error de propagación: las operaciones aritméticas amplifican y mezclan los errores previos.
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
- Evaluar raices de polinomios con fórmulas algebraicamente equivalentes pero que evitan restar números cercanos.
- Calcular 1 menos coseno de x, para x pequeño, con la identidad seno al cuadrado para no cancelar.
- Sumar series alternadas agrupando o acumulando de menor a mayor magnitud.
Errores frecuentes
- Confiar en todos los decimales que imprime la máquina.
- Atribuir al algoritmo una pérdida de precisión que en realidad es mal condicionamiento del problema.
- Usar igual que exacto para comparar flotantes en lugar de una tolerancia.
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
Toca una tarjeta para ver la respuesta.
Ordena de la fuente más básica a la más sistémica del error:
Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.
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?
Tu texto se guarda sólo en este dispositivo.
Math.NET NumericsBiblioteca de métodos numéricos.
Comentarios
Inicia sesión para comentar.
Todavía no hay comentarios. Sé la primera persona en opinar.