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 restantes de la mantisa
- counts choice of exponents
- counts the case when the number is .
- El número total de números de punto flotante normalizados esdónde
IEEE standard
In the IEEE standard the base is binary, i.e. , and normalization is used. The IEEE standard stores the sign, exponent, and significand in separate fields of a floating point word, each of which has a fixed width (number of bits). The two most commonly used levels of precision for floating-point numbers are single precision and double precision.
Machine epsilon
Machine epsilon can be used to measure the level of roundoff error in the floating-point number system. Here are two different definitions.[3]
- The machine epsilon, denoted , is the maximum possible absolute relative error in representing a nonzero real number, in a floating-point number system.
- The machine epsilon, denoted , is the smallest number such that . Thus, , whenever
Roundoff error under different rounding rules
There are two common rounding rules, round-by-chop and round-to-nearest. The IEEE standard uses round-to-nearest.
- Round-by-chop: The base- expansion of is truncated after the -th digit.
- This rounding rule is biased because it always moves the result toward zero.
- Round-to-nearest: is set to the nearest floating-point number to . When there is a tie, the floating-point number whose last stored digit is even (also, the last digit, in binary form, is equal to 0) is used.
- For IEEE standard where the base is , this means when there is a tie it is rounded so that the last digit is equal to .
- This rounding rule is more accurate but more computationally expensive.
- Rounding so that the last stored digit is even when there is a tie ensures that it is not rounded up or down systematically. This is to try to avoid the possibility of an unwanted slow drift in long calculations due simply to a biased rounding.
The following example illustrates the level of roundoff error under the two rounding rules.[3] The rounding rule, round-to-nearest, leads to less roundoff error in general.
Calculating roundoff error in IEEE standard
Suppose the usage of round-to-nearest and IEEE double precision.
Example: the decimal number can be rearranged into Since the 53rd bit to the right of the binary point is a 1 and is followed by other nonzero bits, the round-to-nearest rule requires rounding up, that is, add 1 bit to the 52nd bit. Thus, the normalized floating-point representation in IEEE standard of 9.4 is
Now, the roundoff error can be calculated when representing conEsta representación se obtiene descartando la cola infinita. desde la cola derecha y luego se agregóen el paso de redondeo. LuegoPor lo tanto, el error de redondeo es.
Medición del error de redondeo mediante el uso de épsilon de máquina
La máquina épsilonSe puede utilizar para medir el nivel de error de redondeo al usar las dos reglas de redondeo anteriores. A continuación se muestran las fórmulas y la demostración correspondiente. [ 3 ] Aquí se utiliza la primera definición de épsilon de máquina.
Teorema
- Ronda por ronda:
- Redondear al número más cercano:
Prueba
Dejardóndey dejarser la representación de punto flotante de. Dado que se está utilizando round-by-chop, es Para determinar el máximo de esta cantidad, es necesario hallar el máximo del numerador y el mínimo del denominador. Dado que(sistema normalizado), el valor mínimo del denominador esEl numerador está limitado superiormente por. De este modo,Por lo tanto,para redondeo por corte. La demostración para redondeo al más cercano es similar.
- Tenga en cuenta que la primera definición de épsilon de máquina no es exactamente equivalente a la segunda definición cuando se utiliza la regla de redondeo al más cercano, pero sí lo es para el redondeo por corte.
Error de redondeo causado por aritmética de punto flotante.
Aunque algunos números se pueden representar con exactitud mediante números de coma flotante, y estos números se denominan números de máquina , realizar aritmética de coma flotante puede dar lugar a errores de redondeo en el resultado final.
Suma
La suma automática consiste en alinear los puntos decimales de los dos números que se van a sumar, sumarlos y luego almacenar el resultado como un número de coma flotante. La suma en sí puede realizarse con mayor precisión, pero el resultado debe redondearse a la precisión especificada, lo que puede provocar errores de redondeo. [ 3 ]
- Por ejemplo, añadiraen 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.
Este ejemplo muestra que se puede introducir un error de redondeo al sumar un número grande y uno pequeño. El desplazamiento de los puntos decimales en las mantisas para que los exponentes coincidan provoca la pérdida de algunos de los dígitos menos significativos. Esta pérdida de precisión puede describirse como absorción . [ 11 ]
Tenga en cuenta que la suma de dos números de coma flotante puede producir un error de redondeo cuando su suma es un orden de magnitud mayor que la del mayor de los dos.
- Por ejemplo, consideremos un sistema de números de punto flotante normalizado con basey precisión. Entoncesy. Tenga en cuenta quepero. Hay un error de redondeo de.
Este tipo de error puede producirse junto con un error de absorción en una misma operación.
Multiplicación
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 Ciencias de la Computación, 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