Inicio · Parte 01 — Aritmética computacional y representación numérica
κ(f, x) = |x·f′(x) / f(x)|
error relativo de salida ≈ κ · error relativo de entrada
El condicionamiento es una propiedad del problema, no de cómo se resuelva. Formaliza la pregunta: si perturbo la entrada un 0.001 %, ¿cuánto cambia la salida? El número de condición es el factor de amplificación. Si vale 1, el problema conserva la precisión; si vale 10⁸, un error de entrada en el dígito 16 se convierte en un error en el dígito 8 de la salida.
Para una función de una variable, κ = |x·f′(x)/f(x)|. La fórmula dice algo intuitivo: el problema está mal condicionado donde la función es muy sensible en relación a su propio valor, típicamente cerca de sus ceros. f(x) = 1 − x cerca de x = 1 tiene condición enorme: es la versión analítica de la cancelación catastrófica.
La consecuencia práctica es dura y conviene aceptarla pronto: ningún algoritmo puede resolver con precisión un problema mal condicionado. Si la entrada tiene 16 dígitos y la condición es 10⁸, la salida tiene como mucho 8 dígitos correctos, use uno el método que use. Buscar un algoritmo mejor es buscar en el sitio equivocado; hay que reformular el problema.
En álgebra lineal el mismo concepto aparece como el número de condición de una matriz —cociente entre el mayor y el menor valor singular (clase 132)—, y en machine learning como la razón entre el mayor y el menor autovalor del Hessiano, que determina lo lento que converge el descenso de gradiente (clase 244).
Condición de f(x) = 1 − x en tres puntos.
κ(x) = |x · f′(x) / f(x)| = |x / (1 − x)|
x = 0.5 f(x) = 0.5 κ = 1.0 bien condicionado
x = 0.99 f(x) = 0.01 κ = 99 empieza a amplificar
x = 1e−8 f(x) ≈ 1.0 κ = 1e−8 muy bien condicionado
x = 0.9999 f(x) = 1e−4 κ = 9999
un error de entrada de 1e−16 → error de salida de 1e−12
La condición no depende de cómo se calcule 1 − x: depende del problema.
Número de condición de una función: sensibilidad del problema.
python classes/part-01-aritmetica-computacional-y-representacion-numerica/035-condicionamiento-de-problemas/lab.py
compmath run 035
x=0.5x=0.99x=1e-08lectura{
"x=0.5": {
"f(x)=1-x": 0.5,
"condicion": 1.0
},
"x=0.99": {
"f(x)=1-x": 0.010000000000000009,
"condicion": 98.99999999999991
},
"x=1e-08": {
"f(x)=1-x": 0.99999999,
"condicion": 1.0000000100000002e-08
},
"lectura": "condición alta = el problema amplifica cualquier error de entrada"
}
Diagnóstico de sistemas lineales (parte 05), regularización (ridge mejora el condicionamiento, clase 283) y análisis de convergencia de optimizadores. Es la pregunta previa a elegir método.
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.
9780898718027, pendiente de resolver.9780898719574 verificado en International ISBN Agency (2026-08-19).