🧮 Computational Mathematics

Inicio · Parte 01 — Aritmética computacional y representación numérica

040 — Capstone: auditor de precisión numérica

basico-computacional clase 20 de 20 4 horas demostración capstone_precision_auditor

Auditar una expresión es medir cuántos dígitos significativos pierde cada forma de escribirla.

Fórmulas

dígitos perdidos ≈ −log₁₀(|ingenua − estable| / |estable|)
formas estables: expm1, log1p, conjugado

Desarrollo

El capstone convierte en herramienta todo lo anterior. Un auditor de precisión toma una expresión, la evalúa por su forma directa y por una forma algebraicamente equivalente pero numéricamente estable, y reporta cuántos dígitos significativos separa a ambas. Ese número es la medida honesta de cuánta confianza merece la primera forma.

Las tres expresiones auditadas son las que más aparecen en la práctica. exp(x) − 1 para x pequeño pierde precisión porque exp(x) se acerca a 1 y la resta cancela; expm1 la calcula directamente. log(1 + x) sufre lo mismo cuando 1 + x redondea a 1; log1p lo evita. Y √(x²+1) − x es el caso de la clase 032.

Que estas funciones existan en la biblioteca estándar de todos los lenguajes serios no es casualidad: son la respuesta institucionalizada a problemas de cancelación conocidos desde los años sesenta. Reconocer cuándo usarlas es parte del oficio.

La regla que cierra la parte: toda diferencia de magnitudes cercanas necesita una forma alternativa, y toda implementación numérica publicada debería declarar cuántos dígitos garantiza. El programa aplica esa regla a sí mismo: cada demostración devuelve claves de verificación en lugar de pedir confianza.

Ejemplo trabajado

Auditoría de tres expresiones.

expresión         x        ingenua        estable       dígitos perdidos
exp(x)−1        1e−10   1.000000e−10   1.000000e−10          ~6
log(1+x)        1e−12   1.000089e−12   1.000000e−12          ~4
√(x²+1)−x       1e7     5.000000e−08   5.000000e−08          ~9

Regla operativa:
  si la expresión contiene una resta de cantidades que pueden
  acercarse, buscar la forma alternativa ANTES de implementarla.

Los números concretos dependen del valor de x: el auditor los mide, no los supone.

Qué calcula el laboratorio

Capstone: auditoría de precisión de una expresión numérica.

python classes/part-01-aritmetica-computacional-y-representacion-numerica/040-capstone-auditor-de-precision-numerica/lab.py
compmath run 040

Salidas del laboratorio (3)

Muestra de la ejecución real

{
  "informe": [
    {
      "expresion": "exp(x)-1",
      "ingenua": 1.000000082740371e-10,
      "estable": 1.00000000005e-10,
      "digitos_perdidos": 7.082545059592887
    },
    {
      "expresion": "log(1+x)",
      "ingenua": 1.000088900581841e-12,
      "estable": 9.999999999995e-13,
      "digitos_perdidos": 4.051095394185156
    },
    {
      "expresion": "sqrt(x^2+1)-x",
      "ingenua": 5.029141902923584e-08,
      "estable": 4.999999999999987e-08,
      "digitos_perdidos": 2.2344520971822566
    }
  ],
  "expresiones_auditadas": 3,
  "regla": "toda diferencia de magnitudes cercanas necesita una forma alternativa"
}

Errores comunes

Dónde se usa

Revisión de código numérico, elección de biblioteca, validación de una reimplementación y documentación de precisión en una API científica.

Idea rectora de la parte

Reproducibilidad numérica exige fijar orden de operaciones, no solo semillas.

Error a evitar

Suponer que la suma de floats es asociativa.

Conexión con IA

float32, bfloat16 y la cuantización a int8 son decisiones de representación. Los NaN en un entrenamiento casi siempre nacen aquí, no en la arquitectura.

Bibliografía de la clase

Archivos de la clase