En computación , un error de redondeo , [ 1 ] también llamado error de redondeo , [ 2 ] es la diferencia entre el resultado producido por un algoritmo dado usando aritmética exacta y el resultado producido por el mismo algoritmo usando aritmética redondeada de precisión finita . [ 3 ] Los errores de redondeo se deben a la inexactitud en la representación de los números reales y las operaciones aritméticas realizadas con ellos. Esta es una forma de error de cuantización . [ 4 ] Cuando se utilizan ecuaciones o algoritmos de aproximación, especialmente cuando se utilizan un número finito de dígitos para representar números reales (que en teoría tienen infinitos dígitos), uno de los objetivos del análisis numérico es estimar los errores de cálculo. [ 5 ] Los errores de cálculo, también llamados errores numéricos , incluyen tanto errores de truncamiento como errores de redondeo.
Cuando se realiza una secuencia de cálculos con una entrada que incluye algún error de redondeo, los errores pueden acumularse, llegando a dominar el cálculo en ocasiones. En problemas mal condicionados , puede acumularse un error significativo. [ 6 ]
En resumen, existen dos facetas principales de los errores de redondeo involucrados en los cálculos numéricos: [ 7 ]
- La capacidad de los ordenadores para representar tanto la magnitud como la precisión de los números es inherentemente limitada.
- Ciertas manipulaciones numéricas son muy sensibles a los errores de redondeo. Esto puede deberse tanto a consideraciones matemáticas como a la forma en que las computadoras realizan las operaciones aritméticas.
Error de representación
El error que se produce al intentar representar un número mediante una cadena finita de dígitos es una forma de error de redondeo denominada error de representación . [ 8 ] A continuación se muestran algunos ejemplos de errores de representación en representaciones decimales:
Aumentar el número de dígitos permitidos en una representación reduce la magnitud de los posibles errores de redondeo, pero cualquier representación limitada a un número finito de dígitos seguirá causando cierto grado de error de redondeo para una cantidad incontable de números reales. Los dígitos adicionales utilizados para los pasos intermedios de un cálculo se conocen como dígitos de guarda . [ 9 ]
El redondeo múltiple puede provocar la acumulación de errores. [ 10 ] Por ejemplo, si 9,945309 se redondea a dos decimales (9,95) y luego se redondea nuevamente a un decimal (10,0), el error total es 0,054691. Redondear 9,945309 a un decimal (9,9) en un solo paso introduce menos error (0,045309). Esto puede ocurrir, por ejemplo, cuando el software realiza aritmética en punto flotante de 80 bits x86 y luego redondea el resultado a punto flotante IEEE 754 binary64 .
Sistema de numeración de punto flotante
En comparación con el sistema de números de punto fijo , el sistema de números de punto flotante es más eficiente para representar números reales, por lo que se utiliza ampliamente en las computadoras modernas. Mientras que los números realesson infinitos y continuos, un sistema de números de punto flotantees finito y discreto. Por lo tanto, en el sistema de números de punto flotante se produce un error de representación que da lugar a un error de redondeo.
Notación del sistema de números de punto flotante
Un sistema de números de punto flotantese caracteriza pornúmeros enteros:
- : base o raíz
- : precisión
- : rango del exponente, dondees el límite inferior yes el límite superior
Cualquiertiene la siguiente forma: dóndees un número entero tal quepara, yes un número entero tal que.
Sistema de números flotantes normalizado
- Un sistema de números de punto flotante se normaliza si el dígito principalsiempre es distinto de cero a menos que el número sea cero. [ 3 ] Dado que la mantisa es, la mantisa de un número distinto de cero en un sistema normalizado satisfacePor lo tanto, la forma normalizada de un número de punto flotante IEEE distinto de cero esdóndeEn binario, el dígito principal siempre esPor lo tanto, no se escribe y se denomina bit implícito. Esto proporciona un bit adicional de precisión, de modo que se reduce el error de redondeo causado por el error de representación.
- Desde el sistema de números de punto flotantees finito y discreto, no puede representar todos los números reales, lo que significa que los números reales infinitos solo pueden aproximarse mediante algunos números finitos a través de reglas de redondeo . La aproximación de punto flotante de un número real dadoporpuede denotarse.
- El número total de números de punto flotante normalizados esdónde
- cuenta la elección del signo, ya sea positivo o negativo
- cuenta la elección del dígito principal
- cuenta los dígitos de la mantisa restantes
- cuenta la elección de exponentes
- cuenta el caso cuando el número es.
- El número total de números de punto flotante normalizados esdónde
estándar IEEE
En el estándar IEEE la base es binaria, es deciry se utiliza la normalización. El estándar IEEE almacena el signo, el exponente y la mantisa en campos separados de una palabra de punto flotante, cada uno con un ancho fijo (número de bits). Los dos niveles de precisión más comunes para números de punto flotante son la precisión simple y la precisión doble.
épsilon de máquina
El épsilon de máquina se puede utilizar para medir el nivel de error de redondeo en el sistema de números de punto flotante. Aquí hay dos definiciones diferentes. [ 3 ]
- El épsilon de la máquina, denotado, es el máximo error relativo absoluto posible al representar un número real distinto de cero,en un sistema de números de punto flotante.
- El épsilon de la máquina, denotadoes el número más pequeñode tal manera que. De este modo,, cuando sea
Error de redondeo bajo diferentes reglas de redondeo
Existen dos reglas de redondeo comunes: redondeo por intervalos y redondeo al más cercano. El estándar IEEE utiliza el redondeo al más cercano.
- Ronda por ronda : La base-expansión dese trunca después de la-ésimo dígito.
- Esta regla de redondeo es sesgada porque siempre desplaza el resultado hacia cero.
- Redondear al más cercano :se establece al número de punto flotante más cercano aEn caso de empate, se utiliza el número de punto flotante cuyo último dígito almacenado sea par (es decir, cuyo último dígito, en formato binario, sea igual a 0).
- Para el estándar IEEE donde la basees, esto significa que cuando hay un empate se redondea de manera que el último dígito sea igual a.
- Esta regla de redondeo es más precisa, pero requiere mayor capacidad de cálculo.
- El redondeo, de forma que el último dígito almacenado sea par en caso de empate, garantiza que no se redondee sistemáticamente hacia arriba o hacia abajo. Esto busca evitar posibles retrasos indeseados en cálculos largos debido a un redondeo sesgado.
El siguiente ejemplo ilustra el nivel de error de redondeo bajo las dos reglas de redondeo. [ 3 ] La regla de redondeo, redondear al más cercano, conduce a un menor error de redondeo en general.
Cálculo del error de redondeo en la norma IEEE
Supongamos que se utiliza el método de redondeo al más cercano y la precisión doble IEEE.
Ejemplo: el número decimalse puede reorganizar en Dado que el bit 53 a la derecha del punto binario es un 1 y está seguido por otros bits distintos de cero, la regla de redondeo al más cercano requiere redondear hacia arriba, es decir, sumar 1 bit al bit 52. Por lo tanto, la representación de punto flotante normalizada en el estándar IEEE 9.4 es
Ahora, el error de redondeo se puede calcular al representar with . This representation is derived by discarding the infinite tail from the right tail and then added in the rounding step. Then Thus, the roundoff error is .
Measuring roundoff error by using machine epsilon
The machine epsilon can be used to measure the level of roundoff error when using the two rounding rules above. Below are the formulas and corresponding proof.[3] The first definition of machine epsilon is used here.
Theorem
- Round-by-chop:
- Round-to-nearest:
Proof
Let where , and let be the floating-point representation of . Since round-by-chop is being used, it is In order to determine the maximum of this quantity, there is a need to find the maximum of the numerator and the minimum of the denominator. Since (normalized system), the minimum value of the denominator is . The numerator is bounded above by . Thus, Therefore, for round-by-chop. The proof for round-to-nearest is similar.
- Note that the first definition of machine epsilon is not quite equivalent to the second definition when using the round-to-nearest rule but it is equivalent for round-by-chop.
Roundoff error caused by floating-point arithmetic
Even if some numbers can be represented exactly by floating-point numbers and such numbers are called machine numbers, performing floating-point arithmetic may lead to roundoff error in the final result.
Addition
Machine addition consists of lining up the decimal points of the two numbers to be added, adding them, and then storing the result again as a floating-point number. The addition itself can be done in higher precision but the result must be rounded back to the specified precision, which may lead to roundoff error.[3]
- For example, adding to in IEEE double precision as follows,This is saved as since round-to-nearest is used in IEEE standard. Therefore, is equal to in IEEE double precision and the roundoff error is .
This example shows that roundoff error can be introduced when adding a large number and a small number. The shifting of the decimal points in the significands to make the exponents match causes the loss of some of the less significant digits. The loss of precision may be described as absorption.[11]
Note that the addition of two floating-point numbers can produce roundoff error when their sum is an order of magnitude greater than that of the larger of the two.
- For example, consider a normalized floating-point number system with base and precision . Then and . Note that but . There is a roundoff error of .
This kind of error can occur alongside an absorption error in a single operation.
Multiplication
En general, el producto de dos mantisas de p dígitos contiene hasta 2p dígitos, por lo que el resultado podría no caber en la mantisa. [ 3 ] Por lo tanto, el resultado estará sujeto a un error de redondeo.
- Por ejemplo, consideremos un sistema de números de punto flotante normalizado con la basey los dígitos de la mantisa son como máximo. Entoncesy. Tenga en cuenta queperoya que allí como máximodígitos de la mantisa. El error de redondeo sería.
División
En general, el cociente de mantisas de 2p dígitos puede contener más de p dígitos. Por lo tanto, el resultado incluirá un error de redondeo.
- Por ejemplo, si todavía se utiliza el sistema de números de punto flotante normalizado mencionado anteriormente, entoncespero. Entonces, la colaestá cortado.
Sustracción
La absorción también se aplica a la resta.
- Por ejemplo, restardeen precisión doble IEEE de la siguiente manera:Esto se guarda comoya que el redondeo al más cercano se utiliza en el estándar IEEE. Por lo tanto,es igual aen precisión doble IEEE y el error de redondeo es.
La resta de dos números casi iguales se llama cancelación sustractiva . [ 3 ] Cuando se cancelan los dígitos principales, el resultado puede ser demasiado pequeño para ser representado exactamente y simplemente se representará como.
- Por ejemplo, dejemosy aquí se utiliza la segunda definición de épsilon de máquina. ¿Cuál es la solución a¿ Se sabe que?yson números casi iguales, ySin embargo, en el sistema de números de punto flotante,. A pesar dees fácilmente lo suficientemente grande como para ser representado, ambos casos dehan sido redondeados dando.
Incluso con un tamaño algo mayorEl resultado sigue siendo significativamente poco fiable en casos típicos. No hay mucha confianza en la exactitud del valor porque la mayor incertidumbre en cualquier número de coma flotante se encuentra en los dígitos del extremo derecho.
- Por ejemplo,El resultadoEs claramente representable, pero no hay mucha confianza en ello.
Esto está estrechamente relacionado con el fenómeno de la cancelación catastrófica , en el que se sabe que los dos números son aproximaciones.
Acumulación de errores de redondeo
Los errores pueden magnificarse o acumularse cuando se aplica una secuencia de cálculos a una entrada inicial con errores de redondeo debido a una representación inexacta.
Algoritmos inestables
Un algoritmo o proceso numérico se denomina estable si pequeños cambios en la entrada solo producen pequeños cambios en la salida, e inestable si se producen grandes cambios en la salida. [ 12 ] Por ejemplo, el cálculo deEl uso del método "obvio" es inestable cercadebido al gran error introducido al restar dos cantidades similares, mientras que la expresión equivalentees estable. [ 12 ]
Problemas mal condicionados
Aunque se utilice un algoritmo estable, la solución a un problema puede seguir siendo imprecisa debido a la acumulación de errores de redondeo cuando el problema en sí está mal condicionado .
El número de condición de un problema es la razón entre el cambio relativo en la solución y el cambio relativo en la entrada. [ 3 ] Un problema está bien condicionado si pequeños cambios relativos en la entrada resultan en pequeños cambios relativos en la solución. De lo contrario, el problema está mal condicionado . [ 3 ] En otras palabras, un problema está mal condicionado si su número de condición es "mucho mayor" que 1.
El número de condición se introduce como una medida de los errores de redondeo que pueden resultar al resolver problemas mal condicionados. [ 7 ]
Véase también
Referencias
- ↑ Butt, Rizwan (2009), Introducción al análisis numérico con MATLAB , Jones & Bartlett Learning, pp. 11–18 , ISBN 978-0-76377376-2
- ^ Ueberhuber, Christoph W. (1997), Computación numérica 1: métodos, software y análisis , Springer, págs. 139-146 , ISBN 978-3-54062058-7
- 1 2 3 4 5 6 7 8 9 10 Forrester, Dick (2018). Métodos numéricos de matemáticas/computación 241 (apuntes de clase) . Dickinson College .
- ↑ Aksoy, Pelin; DeNardis, Laura (2007), Information Technology in Theory , Cengage Learning, p. 134, ISBN 978-1-42390140-2
- ↑ Ralston, Anthony; Rabinowitz, Philip (2012), A First Course in Numerical Analysis , Dover Books on Mathematics (2.ª ed.), Courier Dover Publications, pp. 2–4 , ISBN 978-0-48614029-2
- ↑ Chapman, Stephen (2012), MATLAB Programming with Applications for Engineers , Cengage Learning, p. 454, ISBN 978-1-28540279-6
- 1 2 Chapra, Steven (2012). Métodos numéricos aplicados con MATLAB para ingenieros y científicos (3.ª ed.). McGraw-Hill . ISBN 9780073401102.
- ↑ Laplante, Philip A. (2000). Diccionario de informática, ingeniería y tecnología . CRC Press . pág. 420. ISBN 978-0-84932691-2.
- ↑ Higham, Nicholas John (2002). Precisión y estabilidad de los algoritmos numéricos (2.ª ed.). Sociedad de Matemáticas Industriales y Aplicadas (SIAM). págs. 43–44 . ISBN 978-0-89871521-7.
- ↑ Volkov, EA (1990). Métodos numéricos . Taylor & Francis . pág. 24. ISBN 978-1-56032011-1.
- ↑ Biran, Adrian B.; Breiner, Moshe (2010). "5". Lo que todo ingeniero debería saber sobre MATLAB y Simulink . Boca Raton , Florida : CRC Press . págs. 193–194 . ISBN 978-1-4398-1023-1.
- 1 2 Collins, Charles (2005). "Condición y estabilidad" (PDF) . Departamento de Matemáticas de la Universidad de Tennessee . Recuperado el 28 de octubre de 2018 .
Lecturas adicionales
- Matt Parker (2021). Humble Pi: Cuando las matemáticas fallan en el mundo real . Riverhead Books. ISBN 978-0593084694.
Enlaces externos
- Error de redondeo en MathWorld.
- Goldberg, David (marzo de 1991). "Lo que todo científico informático debería saber sobre la aritmética de punto flotante" (PDF) . ACM Computing Surveys . 23 (1): 5– 48. doi : 10.1145/103162.103163 . S2CID 222008826. Recuperado el 20 de enero de 2016 . (,)
- 20 desastres de software famosos
- Calculadora de redondeo
- Análisis numérico