🧮 Computational Mathematics

Inicio · Parte 11 — Métodos numéricos y computación científica

221 — Errores numéricos y convergencia

cientifico clase 1 de 20 4 horas demostración numerical_errors

Reducir el paso mejora hasta que el redondeo toma el control y empeora.

Fórmulas

error total ≈ C₁·hᵖ + C₂·ε/h
diferencia adelantada: O(h);  central: O(h²)
h óptimo de la central ≈ ε^(1/3) ≈ 6·10⁻⁶

Desarrollo

Todo método numérico arrastra dos errores de naturaleza opuesta. El error de truncamiento proviene de la aproximación matemática —cortar una serie de Taylor, sustituir una curva por una recta— y se reduce al hacer el paso más pequeño. El error de redondeo proviene de la aritmética de precisión finita y crece al reducir el paso, porque restar dos números casi iguales y dividir por algo diminuto amplifica el ruido.

La suma de ambos tiene un mínimo. Existe un h óptimo, y por debajo de él afinar más empeora el resultado. Esto contradice la intuición de que «más pequeño es más preciso», y es la razón de que una derivada numérica con h = 10⁻¹⁵ sea basura mientras que con h = 10⁻⁶ sea buena.

El orden de un método es la potencia de h en el término de truncamiento, y es la cifra que permite predecir el comportamiento sin ejecutar nada. Un método de orden 1 divide el error por 2 al duplicar el trabajo; uno de orden 2 lo divide por 4; uno de orden 4, por 16. Esa diferencia es lo que decide entre segundos y horas de cómputo.

La consecuencia metodológica es que hay que medir el orden empíricamente. Ejecutar con h y con h/2, calcular el cociente de errores y comprobar que sale lo que la teoría predice, es la prueba más eficaz de que una implementación es correcta: un método de orden 4 cuyo error solo se divide por 2 tiene un error de programación.

Ejemplo trabajado

Derivada numérica de sen en x = 1, con distintos pasos.

valor exacto: cos(1) = 0,5403023058681398

      h        error adelantada    error central
  1e-01          4,294e-02          9,00e-04
  1e-03          4,207e-04          9,00e-08
  1e-05          4,207e-06          9,04e-12
  1e-07          4,361e-08          6,07e-10   ← empeora
  1e-09          2,721e-08          2,72e-08   ← ruido
  1e-11          6,004e-06          6,00e-06   ← basura

La central es O(h²): h × 0,01 → error × 0,0001            ✓
hasta que el redondeo domina cerca de h ≈ 1e-6.

h óptimo aproximado para la central: ε^(1/3) ≈ 6e-6

Qué calcula el laboratorio

Error de truncamiento frente a error de redondeo.

python classes/part-11-metodos-numericos-y-computacion-cientifica/221-errores-numericos-y-convergencia/lab.py
compmath run 221

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "derivada_exacta": 0.5403023058681398,
  "informe": [
    {
      "h": 0.1,
      "error_adelante": 0.04293855333275065,
      "error_central": 0.0009000536983797547
    },
    {
      "h": 0.001,
      "error_adelante": 0.0004208255078128609,
      "error_central": 9.005045020771263e-08
    },
    {
      "h": 1e-05,
      "error_adelante": 4.207362275021609e-06,
      "error_central": 1.1140866007508521e-11
    },
    {
      "h": 1e-08,
      "error_adelante": 2.9698852266335507e-09,
      "error_central": 2.581229896492232e-09
    },
    {
      "h": 1e-12,
      "error_adelante": 4.3240216923923214e-05,
      "error_central": 1.2270934307334613e-05
    }
  ],
  "h_optimo_aprox": 1.4832396974191326e-08,
  "por_que_hay_un_optimo": "truncamiento baja con h, redondeo sube con 1/h",
  "orden_adelante": "O(h)",
  "orden_central": "O(h²)"
}

Errores comunes

Dónde se usa

Comprobación de gradientes numéricos frente a autodiferenciación, validación de integradores y elección de pasos en simulación.

Idea rectora de la parte

Todo método iterativo necesita criterio de parada y tolerancia declarada.

Error a evitar

Usar tolerancia absoluta cuando la escala del problema es grande.

Conexión con IA

Los Neural ODE, los samplers de difusión y los optimizadores de segundo orden son métodos numéricos con parámetros aprendidos.

Bibliografía de la clase

Archivos de la clase