El desbordamiento de restricción, en coma flotante, x + x + x
es exactamente el número de coma flotante correctamente redondeado (es decir, el más cercano) al 3 * real x
, x + x + x + x
es exactamente 4 * x
y x + x + x + x + x
nuevamente es la aproximación de coma flotante correctamente redondeada para 5 * x
.
El primer resultado, para x + x + x
, deriva del hecho de que x + x
es exacto. x + x + x
es, por lo tanto, el resultado de un solo redondeo.
El segundo resultado es más difícil, una demostración de esto se discute aquí (y Stephen Canon alude a otra prueba por análisis de caso en los últimos 3 dígitos de x
). Para resumir, 3 * x
está en la misma binada que 2 * x
o está en la misma binada que 4 * x
, y en cada caso es posible deducir que el error en la tercera adición cancela el error en la segunda adición (el La primera adición es exacta, como ya dijimos).
El tercer resultado, " x + x + x + x + x
está correctamente redondeado", deriva del segundo de la misma manera que el primero deriva de la exactitud de x + x
.
El segundo resultado explica por qué 0.1 + 0.1 + 0.1 + 0.1
es exactamente el número de coma flotante 0.4
: los números racionales 1/10 y 4/10 se aproximan de la misma manera, con el mismo error relativo, cuando se convierten en coma flotante. Estos números de punto flotante tienen una relación de exactamente 4 entre ellos. El primero y tercer resultado muestran que 0.1 + 0.1 + 0.1
y 0.1 + 0.1 + 0.1 + 0.1 + 0.1
se puede esperar que tengan menor error que podría inferirse por análisis de error ingenuo, pero, en sí mismos, que sólo se refieren los resultados, respectivamente, 3 * 0.1
y 5 * 0.1
, lo que se puede esperar para estar cerca pero no necesariamente idéntica a 0.3
y 0.5
.
Si sigue sumando 0.1
después de la cuarta adición, finalmente observará errores de redondeo que hacen que " 0.1
agregado a sí mismo n veces" difiera en binario durante un tiempo. Después de eso, la absorción comenzaría a tener lugar y la curva se volvería plana.n * 0.1
, y diverja aún más de n / 10. Si tuviera que trazar los valores de "0.1 agregado a sí mismo n veces" en función de n, observaría líneas de pendiente constante por binadas (tan pronto como el resultado de la enésima suma esté destinado a caer en una binada particular, Se puede esperar que las propiedades de la adición sean similares a las adiciones anteriores que produjeron un resultado en la misma binada). Dentro de una misma binada, el error crecerá o disminuirá. Si observara la secuencia de las pendientes de binade a binade, reconocería los dígitos repetidos de0.1