🧮 Computational Mathematics

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

233 — Métodos iterativos y tolerancias

cientifico clase 13 de 20 4 horas demostración iterative_tolerances

Todo bucle iterativo necesita tres frenos: tolerancia relativa, residuo y tope de pasos.

Fórmulas

criterio absoluto: ‖xₖ₊₁ − xₖ‖ < tol
criterio relativo: ‖xₖ₊₁ − xₖ‖ / ‖xₖ₊₁‖ < tol
criterio de residuo: ‖Axₖ − b‖ / ‖b‖ < tol

Desarrollo

El criterio de parada no es un detalle de implementación: determina qué significa el resultado. Un método iterativo sin criterio declarado devuelve un número cuyo error nadie conoce, y eso lo invalida como resultado científico.

El criterio absoluto falla al cambiar de escala. Una tolerancia de 10⁻⁶ es exigente si la solución vale 1 y absurda si vale 10¹², donde ni siquiera es representable en doble precisión. El criterio relativo escala con la magnitud de la solución y es el que hay que usar por defecto, con la precaución de manejar el caso de solución próxima a cero.

El criterio de residuo mide algo distinto: cuánto incumple la ecuación la solución actual. Es complementario, no equivalente. En un sistema mal condicionado el cambio entre iterados puede ser minúsculo mientras el residuo sigue siendo grande, y al revés. Por eso lo prudente es combinar ambos.

Y siempre, sin excepción, un tope de iteraciones. No es una tolerancia sino una salvaguarda: si el método no converge —porque el problema es singular, porque la condición falla o porque hay un error de programación— el bucle debe terminar e informar de que no convergió, en vez de girar indefinidamente. Un solver que devuelve «no convergí» es infinitamente más útil que uno que se cuelga.

Ejemplo trabajado

Evolución de los tres criterios en una iteración convergente.

iter   cambio abs.   cambio rel.   norma residuo
  1     0,990000      1,000000       1,40e+00
  3     0,090000      0,090909       1,27e-01
  5     0,009000      0,009009       1,27e-02
  7     0,000900      0,000900       1,27e-03
  9     1,00e-14      1,00e-14       1,41e-14

solución = [1, 1]      9 iteraciones hasta 1e-14

Criterio recomendado:
  parar si (cambio relativo < tol) Y (residuo relativo < tol)
  o si iter alcanza max_iter, informando de no convergencia.

Peligro del criterio solo absoluto: si la solución fuera
del orden de 1e12, tol = 1e-6 nunca se alcanzaría.

Qué calcula el laboratorio

Criterio de parada: absoluto, relativo y residuo.

python classes/part-11-metodos-numericos-y-computacion-cientifica/233-metodos-iterativos-y-tolerancias/lab.py
compmath run 233

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "informe": [
    {
      "iter": 1,
      "cambio_absoluto": 0.99,
      "cambio_relativo": 1.0,
      "norma_del_residuo": 0.9900000000000002
    },
    {
      "iter": 3,
      "cambio_absoluto": 0.0009900000000000464,
      "cambio_relativo": 0.0009900009900010362,
      "norma_del_residuo": 9.900000000051534e-05
    },
    {
      "iter": 6,
      "cambio_absoluto": 9.900000819129673e-10,
      "cambio_relativo": 9.900000819139574e-10,
      "norma_del_residuo": 9.899991937345476e-11
    }
  ],
  "iteraciones_hasta_1e-14": 9,
  "solucion": [
    1.0,
    1.0
  ],
  "criterio_recomendado": "combinar cambio relativo y residuo, con tope de iteraciones",
  "peligro_de_solo_absoluto": "falla si la escala del problema es muy grande o muy pequeña",
  "siempre_declarar_max_iter": true
}

Errores comunes

Dónde se usa

Cualquier solver iterativo, criterios de parada en entrenamiento de modelos, bucles de punto fijo y control de convergencia en simulación.

Idea rectora de la parte

Interpolar de grado alto oscila (fenómeno de Runge): por eso existen los splines.

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