stringtranslate.com

Error de redondeo

En informática , 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 números reales y las operaciones aritméticas realizadas con ellos. Esta es una forma de error de cuantificació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 un número infinito de dígitos), uno de los objetivos del análisis numérico es estimar errores de cálculo. [5] Los errores de cálculo, también llamados errores numéricos , incluyen errores de truncamiento y errores de redondeo.

Cuando se realiza una secuencia de cálculos con una entrada que implica algún error de redondeo, los errores pueden acumularse, a veces dominando el cálculo. En problemas mal condicionados , pueden acumularse errores significativos. [6]

En resumen, hay dos facetas principales de los errores de redondeo implicados en los cálculos numéricos: [7]

  1. La capacidad de las computadoras para representar tanto la magnitud como la precisión de los números es inherentemente limitada.
  2. 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 operaciones aritméticas.

Error de representación

El error introducido al intentar representar un número utilizando una cadena finita de dígitos es una forma de error de redondeo llamado error de representación . [8] A continuación se muestran algunos ejemplos de error 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 un número 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]

Redondear varias veces puede provocar que se acumulen 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 operaciones aritméticas en coma flotante de 80 bits x86 y luego redondea el resultado a coma flotante IEEE 754 binary64 .

Sistema de numeración de punto flotante

En comparación con el sistema de numeración de punto fijo , el sistema de numeración 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 reales son infinitos y continuos, un sistema de numeración de punto flotante es finito y discreto. Por lo tanto, el error de representación, que conduce al error de redondeo, ocurre bajo el sistema de numeración de punto flotante.

Notación del sistema de numeración de punto flotante

Un sistema de numeración de punto flotante se caracteriza por números enteros:

Cualquiera tiene la siguiente forma: donde es un entero tal que para , y es un entero tal que .

Sistema de números flotantes normalizado

Norma IEEE

En el estándar IEEE , la base es binaria, es decir , y 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 de los cuales tiene un ancho fijo (número de bits). Los dos niveles de precisión más utilizados para los números de punto flotante son la precisión simple y la precisión doble.

Máquina épsilon

La máquina épsilon se puede utilizar para medir el nivel de error de redondeo en el sistema de numeración de punto flotante. A continuación se presentan dos definiciones diferentes. [3]

Error de redondeo según diferentes reglas de redondeo

Existen dos reglas de redondeo comunes: redondeo por corte y redondeo al más cercano. El estándar IEEE utiliza el redondeo al más cercano.

Cálculo del error de redondeo según el estándar IEEE

Supongamos el uso de redondeo al más cercano y doble precisión IEEE.

Como el bit 53 a la derecha del punto binario es un 1 y va seguido de 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 en punto flotante normalizada en el estándar IEEE 9.4 es

Esta representación se obtiene descartando la cola infinita de la cola derecha y luego se agrega en el paso de redondeo.

Entonces .
Por lo tanto, el error de redondeo es .

Medición del error de redondeo mediante el uso de la máquina épsilon

La épsilon de máquina se puede utilizar para medir el nivel de error de redondeo cuando se utilizan las dos reglas de redondeo anteriores. A continuación se muestran las fórmulas y la prueba correspondiente. [3] Aquí se utiliza la primera definición de épsilon de máquina.

Teorema

  1. Ronda por ronda:
  2. Redondear al más cercano:

Prueba

Sea donde , y sea la representación en punto flotante de . Dado que se utiliza el método de redondeo por corte, es Para determinar el máximo de esta cantidad, es necesario encontrar el máximo del numerador y el mínimo del denominador. Dado que (sistema normalizado), el valor mínimo del denominador es . El numerador está acotado por encima por . Por lo tanto, . Por lo tanto, para el método de redondeo por corte. La prueba para el método de redondeo al más cercano es similar.

Error de redondeo causado por aritmética de punto flotante

Incluso si algunos números pueden representarse exactamente mediante números de punto flotante y dichos números se denominan números de máquina , realizar operaciones aritméticas de punto flotante puede provocar un error 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 nuevamente el resultado como un número de punto flotante. La suma en sí se puede realizar con mayor precisión, pero el resultado debe redondearse a la precisión especificada, lo que puede generar un error de redondeo. [3]

Este ejemplo muestra que se puede producir un error de redondeo al sumar un número grande y uno pequeño. El desplazamiento de los puntos decimales en los significados para que coincidan los exponentes provoca la pérdida de algunos de los dígitos menos significativos. La pérdida de precisión puede describirse como absorción . [11]

Tenga en cuenta que la suma de dos números de punto flotante puede producir un error de redondeo cuando su suma es un orden de magnitud mayor que la del mayor de los dos.

Este tipo de error puede ocurrir junto con un error de absorción en una sola 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á involucrado en un error de redondeo.

División

En general, el cociente de significandos de 2p dígitos puede contener más de p dígitos, por lo que habrá un error de redondeo en el resultado.

Sustracción

La absorción también se aplica a la sustracción.

La resta de dos números casi iguales se llama cancelación sustractiva . [3] Cuando se cancelan los dígitos iniciales, el resultado puede ser demasiado pequeño para ser representado con exactitud y simplemente se representará como .

Incluso con un valor algo mayor , el resultado sigue siendo significativamente poco confiable en casos típicos. No hay mucha confianza en la precisión del valor porque la mayor incertidumbre en cualquier número de punto flotante son los dígitos del extremo derecho.

Esto está estrechamente relacionado con el fenómeno de la cancelación catastrófica , en el que se sabe que ambos números son aproximaciones.

Acumulación de error de redondeo

Los errores pueden magnificarse o acumularse cuando se aplica una secuencia de cálculos en una entrada inicial con error 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 sólo producen pequeños cambios en la salida, e inestable si se producen grandes cambios en la salida. [12] Por ejemplo, el cálculo que se realiza utilizando el método "obvio" es inestable debido al gran error introducido al restar dos cantidades similares, mientras que la expresión equivalente es estable. [12]

Problemas mal condicionados

Incluso si se utiliza un algoritmo estable, la solución de un problema puede ser inexacta debido a la acumulación de error de redondeo cuando el problema en sí está mal condicionado .

El número de condición de un problema es la relació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 dan como resultado 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 condiciones 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

  1. ^ Butt, Rizwan (2009), Introducción al análisis numérico con MATLAB, Jones & Bartlett Learning, págs. 11-18, ISBN 978-0-76377376-2
  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
  3. ^ abcdefghij Forrester, Dick (2018). Métodos numéricos de Matemáticas/Comp241 (apuntes de clase) . Dickinson College .
  4. ^ Aksoy, Pelin; DeNardis, Laura (2007), Tecnología de la información en teoría, Cengage Learning, pág. 134, ISBN 978-1-42390140-2
  5. ^ Ralston, Anthony; Rabinowitz, Philip (2012), Un primer curso de análisis numérico, Dover Books on Mathematics (2.ª ed.), Courier Dover Publications, págs. 2-4, ISBN 978-0-48614029-2
  6. ^ Chapman, Stephen (2012), Programación MATLAB con aplicaciones para ingenieros, Cengage Learning, pág. 454, ISBN 978-1-28540279-6
  7. ^ ab Chapra, Steven (2012). Métodos numéricos aplicados con MATLAB para ingenieros y científicos (3.ª ed.). McGraw-Hill . ISBN 9780073401102.
  8. ^ Laplante, Philip A. (2000). Diccionario de informática, ingeniería y tecnología. CRC Press . pág. 420. ISBN. 978-0-84932691-2.
  9. ^ Higham, Nicholas John (2002). Precisión y estabilidad de algoritmos numéricos (2.ª ed.). Sociedad de Matemáticas Industriales y Aplicadas (SIAM). pp. 43–44. ISBN 978-0-89871521-7.
  10. ^ Volkov, EA (1990). Métodos numéricos. Taylor & Francis . pág. 24. ISBN. 978-1-56032011-1.
  11. ^ 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.
  12. ^ ab Collins, Charles (2005). "Condición y estabilidad" (PDF) . Departamento de Matemáticas de la Universidad de Tennessee . Consultado el 28 de octubre de 2018 .

Lectura adicional

Enlaces externos