Escribir un número en una máquina se parece a anotarlo con un número limitado de cifras: algunos valores caben exactamente y otros se sustituyen por uno cercano. Primero veremos qué se guarda; después mediremos el error y seguiremos su recorrido por las operaciones. Separaremos siempre el dato ideal, el dato almacenado y el resultado calculado.
Si necesitas repasar:
1. La precisión limita las cifras disponibles; el exponente cambia la escala
Un formato de punto flotante escribe un signo, una parte significativa y un exponente. En base dos, un número normalizado tiene forma ±(1+b₁/2+b₂/4+…)·2ᵉ, donde cada bᵢ es cero o uno. Si la precisión es p=3, solo guardamos el uno inicial y dos bits después del punto.
El exponente permite mover la escala, pero no añade cifras significativas.
Redondear al más cercano significa elegir el representable con menor distancia al valor exacto. En los empates usaremos significando entero par. No todos los decimales finitos caben en binario: 1/10 tiene un factor cinco en su denominador reducido; una fracción tiene expansión binaria finita exactamente cuando su denominador es una potencia de dos.
Fabricar la lista antes de redondear
Usamos base dos y tres bits significativos, alrededor de uno.
Cuatro significandos
1.00₂; 1.01₂; 1.10₂; 1.11₂ equivalen a 1; 1,25; 1,5; 1,75.
Cambiar exponente
Multiplicar por dos produce 2; 2,5; 3; 3,5. La separación pasa de 0,25 a 0,5.
Elegir vecino
1,4 está a 0,15 de 1,25 y a 0,1 de 1,5: se guarda 1,5.
El salto absoluto aumenta al cambiar de escala.
No confundimos tres bits con tres cifras decimales.
Resolver un empate con una regla declarada
Redondeamos 1,375 y 1,125 en el mismo modelo binario.
Primer punto medio
1,375 queda exactamente entre 1,25=5·2⁻² y 1,5=6·2⁻².Desempatar
El entero seis es par: elegimos 1,5.
Segundo punto medio
1,125 queda entre 1=4·2⁻² y 1,25=5·2⁻².Ahora el entero par es cuatro: elegimos 1.
1,375→1,5 y 1,125→1.
Desempatar a par no significa redondear siempre hacia arriba ni hacia abajo.
2. El error absoluto conserva unidades; el relativo compara con el valor verdadero
Si x es el valor de referencia y a la aproximación, el error absoluto es |a−x|.
Para expresarlo en porcentaje multiplicamos por cien. El denominador es el valor de referencia, no la aproximación: cambiarlo define otra medida.
Un error absoluto pequeño puede ser grande respecto de un valor muy pequeño. En cero no existe el error relativo usual. Para aceptar aproximaciones cerca y lejos de cero se puede fijar |a−x|≤atol+rtol·|x|, con tolerancia absoluta y relativa no negativas y unidades coherentes. Es un criterio elegido para la aplicación, no una garantía automática de exactitud.
El tamaño del dato cambia la lectura del error
Comparamos 99 con 100 y 0,009 con 0,01.
Primer caso
|99−100|=1; al dividir por 100 obtenemos 0,01=1 %.Segundo caso
|0,009−0,01|=0,001; al dividir por 0,01 obtenemos 0,1=10 %.Interpretar
La segunda diferencia absoluta es menor, pero representa una parte mayor de su referencia.
Error absoluto y relativo responden a preguntas distintas.
Las unidades desaparecen en el cociente relativo.
Aceptar una aproximación a cero sin dividir por cero
La referencia es x=0; a=0,0003; atol=0,001 y rtol=0,01.
Diferencia
El error absoluto vale 0,0003.
Umbral mixto
atol+rtol·|x|=0,001+0=0,001.Decisión
0,0003≤0,001, así pasa este criterio.No calculamos un porcentaje respecto de cero.
La tolerancia absoluta resuelve la comparación en cero.
Pasar la tolerancia no convierte el error relativo indefinido en cero.
3. El modelo relativo describe una operación bajo hipótesis concretas
Para una operación básica correctamente redondeada al más cercano escribimos fl(a∘b)=(a∘b)(1+δ), |δ|≤u, si el resultado está en el rango normal y no hay desbordamiento. u es el redondeo unitario del formato: en base β y precisión p, u=(1/2)β^(1−p). No es el error total de un programa ni presupone errores independientes.
En el formato binary64 de Number, la precisión normal es de 53 bits: u=2⁻⁵³. La distancia del uno al siguiente representable mayor es 2⁻⁵², distinta de u. Los subnormales permiten valores más próximos a cero, pero allí una cota absoluta puede sustituir a la relativa. Un resultado fuera del rango finito tampoco satisface este modelo.
Comprobar una cota sin confundir cifras con decimales
Modelo decimal con tres cifras significativas; redondeamos 1,234.
Guardar
El vecino más cercano es 1,23: se conservan tres cifras significativas.
Medir
El error relativo es 0,004/1,234≈0,0032415.Comparar
u=(1/2)·10⁻²=0,005.El error relativo observado es menor que u.
La cota sirve para esta operación de redondeo y sus hipótesis.
A otra escala, 1234 se redondearía a 1230, no a un número con tres decimales.
Ver por qué muy cerca de cero la cota relativa puede fallar
En binary64 sea η=2⁻¹⁰⁷⁴, el menor subnormal positivo; redondeamos el valor exacto η/2 al más cercano con empate a par.
Vecinos
Los dos valores más cercanos son 0 y η, a distancia η/2.
Empate
Se selecciona cero con la regla a par.
Errores
El error absoluto es η/2; el relativo respecto de η/2 vale uno, mucho mayor que 2⁻⁵³.
No extendemos la cota relativa normal a todo el rango subnormal.
La descripción de esta operación no requiere que η/2 sea almacenable como entrada.
4. Una contribución puede desaparecer y el orden de las sumas puede importar
Absorción significa que una contribución es demasiado pequeña para cambiar el número representable grande al que se añade. No se ha demostrado que valga cero matemáticamente: simplemente el resultado redondeado coincide con el sumando grande.
En aritmética real podemos reagrupar sumas; en punto flotante cada operación intermedia se redondea. Agrupar magnitudes parecidas o usar sumas compensadas puede reducir errores en ciertos casos, pero no hace exacta cualquier suma ni elimina los límites de rango. Siempre declararemos el formato del ejemplo.
Una décima que no cambia un cien almacenado
Modelo decimal con tres cifras significativas: calculamos 100+0,1.
Cuenta exacta
100+0,1=100,1.Vecinos del formato
Por encima de cien, los valores próximos son 100 y 101; la distancia al primero es solo 0,1.
Redondear
fl(100+0,1)=100.El error absoluto de esta suma es 0,1.
La aportación se pierde en el resultado almacenado.
No concluimos que 0,1 sea cero ni que las décimas nunca se puedan representar.
Las mismas tres entradas producen dos resultados
En ese modelo evaluamos 1000+1−1000 con dos agrupaciones.
Agrupar a la izquierda
1000+1=1001 se redondea a 1000.Después 1000−1000=0.Agrupar a la derecha
1−1000=−999 cabe exactamente con tres cifras.Después 1000−999=1.Referencia real
La cuenta exacta vale uno; la primera agrupación ha perdido la unidad.
fl(fl(1000+1)−1000)=0, mientras la otra agrupación da 1.
El redondeo ocurre después de cada operación; no solo al escribir el resultado final.
5. Cancelar cifras comunes puede dejar al descubierto errores anteriores
Al restar números cercanos desaparecen muchas cifras comunes. Si los datos de entrada ya estaban redondeados, el resultado pequeño puede quedar dominado por esos errores. La última resta incluso puede ser exacta entre los números almacenados: el error se mide respecto de los datos ideales.
Sean datos ideales x, y y perturbaciones Δx, Δy. La diferencia calculada sin nuevo redondeo es (x−y)+(Δx−Δy). Su error absoluto es a lo sumo |Δx|+|Δy|. Si |x−y| es diminuto, el cociente relativo puede ser grande. Esta sensibilidad no se arregla diciendo que se han impreso muchas cifras.
La información se pierde antes de restar
Datos ideales 1,234 y 1,233; cada uno se redondea a tres cifras significativas.
Diferencia ideal
1,234−1,233=0,001.Datos guardados
Ambos quedan en 1,23.
Última operación
1,23−1,23=0 es una resta exacta de los datos guardados, pero su error respecto del resultado ideal es 0,001: un 100 %.
El cero obtenido no prueba que los datos ideales fueran iguales.
La causa aquí son las entradas redondeadas, aunque la cancelación hace visible su efecto.
Dos errores pequeños se combinan en una diferencia pequeña
x=10; y=9,99; usamos x̃=10,001 e ỹ=9,989.
Referencia
x−y=0,01.Perturbaciones
Δx=0,001 y Δy=−0,001; la diferencia cambia en Δx−Δy=0,002.Resultado
x̃−ỹ=0,012.El error relativo de la diferencia es 0,002/0,01=20 %.
Errores de una milésima producen un 20 % de error en esta diferencia.
La cota |Δx|+|Δy|=0,002 se alcanza porque los errores llevan signos opuestos.
6. La derivada aproxima la propagación; el resto indica qué hemos omitido
La expresión lineal ayuda a estimar cambios pequeños, pero no es una igualdad exacta salvo casos particulares. En varias entradas sumamos las contribuciones de las derivadas parciales. Las unidades de cada término deben ser las de la salida.
Hay otra herramienta para cadenas de factores de redondeo: si cada |δᵢ|≤u y nu<1, entonces ∏ᵢ₌₁ⁿ(1+δᵢ)=1+θₙ con |θₙ|≤γₙ=nu/(1−nu). Una prueba acota por (1±u)ⁿ: abajo, Bernoulli da (1−u)ⁿ≥1−nu; arriba, el binomio y la serie geométrica dan (1+u)ⁿ≤1/(1−nu). No se supone independencia. Antes de aplicar γₙ hay que justificar que el algoritmo produce esa estructura de factores; n no es sin más el número de líneas del programa.
Separar el cambio lineal del término cuadrático
f(x)=x²; partimos de x=3 y añadimos Δx=0,01.
Referencia y nueva salida
3²=9; 3,01²=9,0601.Predicción lineal
f′(3)Δx=6·0,01=0,06.Resto exacto
(3+Δx)²−9=6Δx+(Δx)²=0,06+0,0001.
El cambio exacto es 0,0601; la aproximación de primer orden es 0,06.
La diferencia entre ambas es precisamente 0,0001.
Dos entradas cambian un producto
x=2; y=5; Δx=0,01; Δy=−0,02.
Expandir completo
(x+Δx)(y+Δy)−xy=yΔx+xΔy+ΔxΔy.Parte lineal
5·0,01+2·(−0,02)=0,01.Cruce y resultado
ΔxΔy=−0,0002.El cambio exacto es 0,0098 y el producto nuevo 10,0098.
La aproximación lineal omite el producto de las perturbaciones.
Volver a multiplicar 2,01·4,98 verifica 10,0098.
Calcular una cota para cuatro factores
En un modelo con u=0,005 justificamos una cadena de cuatro factores (1+δᵢ).
Condición
nu=4·0,005=0,02<1.Cota
γ₄=0,02/0,98=1/49≈0,0204082.Caso extremo positivo
Si todos δᵢ=u, el cambio es 1,005⁴−1=0,020150500625, menor que γ₄.
El producto difiere de uno en valor absoluto como máximo 1/49.
No estamos afirmando que todos los algoritmos de cuatro operaciones tengan ese error relativo.
7. Una identidad algebraica puede evitar restar dos números casi iguales
El denominador es al menos uno, así no se anula. Cerca de h=0 la forma original resta cantidades próximas; la segunda conserva h en el numerador. Las expresiones coinciden en aritmética real, pero pueden producir errores diferentes al redondear.
Reformular no recupera un dato que ya se perdió. Si nos entregan solo x=fl(1+h)=1, sin conservar h, no podemos deducir qué incremento pequeño había. Tampoco se afirma que todas las bibliotecas evalúen cada raíz cuadrada con el mismo redondeo: el modelo usado debe quedar explícito.
Verificar la identidad con un incremento que se puede calcular a mano
Tomamos h=8.
Forma original
√9−1=3−1=2.Forma racionalizada
8/(√9+1)=8/4=2.Comprobar dominio
8≥−1 y el denominador cuatro es positivo.
Ambas formas dan dos; la ventaja numérica aparece especialmente para incrementos pequeños.
La identidad se obtuvo de (a−b)(a+b)=a²−b².
Conservar un incremento que la suma absorbe
Modelo binary64 con operaciones y raíz redondeadas al más cercano; conservamos h=2⁻⁵⁴ como entrada.
Suma redondeada
1+h está más cerca de uno que del siguiente representable; fl(1+h)=1.
Restar después
La raíz de ese uno es uno; la forma original calculada da cero.
Mantener h
La forma racionalizada usa el h conservado y el denominador calculado dos: obtiene 2⁻⁵⁵, distinto de cero y próximo al valor exacto.
La reformulación evita perder el incremento en la resta final.
La comparación se hace en el modelo declarado; no promete el mismo comportamiento para toda implementación de raíces.
Reconocer el mismo mecanismo con otra constante
Reformulamos √(9+h)−3 para h≥−9 y evaluamos h=7.
Conjugado
Multiplicamos por √(9+h)+3: el numerador queda h.
Nueva forma
√(9+h)−3=h/(√(9+h)+3); el denominador es al menos tres.Evaluar
7/(4+3)=1, igual a √16−3.
La técnica se reconoce por la diferencia de dos cuadrados.
No se cambia la constante tres por uno sin rehacer el álgebra.
8. Comprobar exige una referencia independiente y una afirmación de error
Distinguimos cuatro objetos: dato ideal, representación de entrada, operaciones ejecutadas y número mostrado. Redondear la impresión no cambia lo que se calculó internamente. Más cifras visibles tampoco certifican más cifras correctas. Podemos usar fracciones exactas, cotas analíticas, intervalos o una reformulación independiente para contrastar el resultado.
Repetir con más precisión o con otra fórmula es útil para detectar problemas; la coincidencia por sí sola no demuestra exactitud, pues los dos caminos pueden compartir el mismo error de entrada o la misma suposición equivocada. Siempre indicaremos qué referencia se usa y bajo qué condiciones da una cota.
Una fracción permite medir el error sin una calculadora decimal
Aproximamos 1/7 por 0,143.
Pasar a fracción
0,143=143/1000.Diferencia exacta
143/1000−1/7=(1001−1000)/7000=1/7000.Error relativo
(1/7000)/(1/7)=1/1000=0,1 %.
El error absoluto es 1/7000 y el relativo 0,001.
No hemos usado una expansión decimal truncada de la propia referencia.
Encerrar una raíz usando cuadrados exactos
Queremos controlar la aproximación 1,414 a √2.
Extremo inferior
1,414²=1,999396<2.Extremo superior
1,415²=2,002225>2.Monotonía
El cuadrado crece en los positivos: 1,414<√2<1,415.Por tanto el error absoluto de 1,414 es menor que 0,001.
La aproximación tiene una cota comprobada, además de cifras impresas.
La conclusión usa positividad y monotonía; no basta comparar cuadrados sin atender al signo.
Ahora lo resolvemos de principio a fin.
EJEMPLO RESUELTO 1
Medir un error
Aproximamos 1/3 por 0,33. Calcula sus errores absoluto y relativo.
Identificar la referencia
El valor exacto es x=1/3; el aproximado a=0,33=33/100.Mismo denominador
1/3−33/100=(100−99)/300=1/300.Tomar valor absoluto
Como la aproximación está por debajo, |a−x|=1/300.Comparar con el exacto
Dividimos por |x|=1/3: (1/300)·3=1/100=0,01.Pasar a porcentaje
0,01·100 %=1 %.El cociente entre aproximación y exacto es 0,99.
Cerrar
Errores absoluto 1/300 y relativo 1 %; no dividimos por 0,33.
Error absoluto 1/300; relativo 0,01, es decir, 1 %.
0,33 es el 99 % de 1/3.
EJEMPLO RESUELTO 2
Una resta que podemos evitar
Reformula √(1+h)−1 y calcula el valor para h=3.
Revisar el dominio
Para h=3 se cumple h≥−1; la raíz es real.Introducir el conjugado
Multiplicamos √(1+h)−1 por (√(1+h)+1)/(√(1+h)+1).
Simplificar el numerador
(√(1+h))²−1²=(1+h)−1=h.Conservar el denominador
Queda h/(√(1+h)+1), siempre positivo en el dominio.
Sustituir
Con h=3 obtenemos 3/(√4+1)=3/3=1.Comprobar por la forma inicial
√4−1=2−1=1; ambas rutas coinciden exactamente.
El valor es 1.
La expresión original es √4−1=1; la reformulación exige h≥−1 y denominador no nulo, que aquí siempre es positivo.
Los símbolos que hemos usado
- fl(x)
- Representación o resultado redondeado en la aritmética elegida.
- Base β
- Base de representación; es dos en la aritmética binaria habitual.
- Precisión p
- Número de cifras significativas de la mantisa en esa base.
- u
- Unidad de redondeo; para redondeo al más cercano de precisión p, normalmente β^(1−p)/2.
- Error absoluto
- |a−x|, si a aproxima al valor verdadero x.
- Error relativo
- |a−x|/|x|, definido con ese denominador cuando x≠0.
- Cancelación
- Pérdida relativa de información al obtener una diferencia pequeña de cantidades cercanas.
Ahora te toca a ti.
Tienes cinco ejercicios. Inténtalos; las pistas te ayudan si te atascas.
Practicar este tema →