4 votos

Mal cálculo por calculadora

Hoy en día yo estaba trabajando en algunas química de problemas . Muchos de ustedes saben que implica que algunos de los grandes exponentes. Así que hoy he entrado en uno de mis calculadoras (que podría no ser fuerte), ya que fue incorporado en mi móvil $ 13\cdot 10^{11}$(antes de entrar en mi próximo cálculos parte me dio $1299999999999.999..$ . Es esta misma como la consideración de $0.99.....=1$

6voto

Benjamin Bannier Puntos 11953

La calculadora es una máquina con capacidad finita. De hecho, es imperfecto. Esto no está relacionado con la razón por la $0.999... =1$. Eso es otro cuento.

La discrepancia que se experimenta es probablemente debido a la de punto flotante de error. Las computadoras almacenan números en un número finito de bits, y además, no almacenar los números en base 10, sino en la base 2. Lo que sucede, especialmente con números muy grandes o muy pequeños en magnitud, es que la calculadora no puede abordar la imprecisión en su almacenamiento y la insuficiencia en su conversión de base de 10 a binario de regreso a la base 10. El resultado final para el usuario es, así, un cálculo inexacto!

Para ver otros ejemplos, considere la posibilidad de $10^{1000}$. La calculadora se puede corteza en la que, citando a un desbordamiento de error. El número es demasiado grande. O tal vez intente $10^{-1000}$. La calculadora se puede decir que esto es igual a $0$! Ese es un ejemplo de subdesbordamiento. El número es demasiado pequeño para manejar, por lo que se establece en cero, esperemos que no afecte a su deseado cálculo demasiado. Más complicado, algorítmica pueden producirse errores así: mi TI-83 piensa que $\sin(99\pi)=2\times10^{-13}$ aún no tiene ningún problema con $\sin(100\pi)$.

3voto

marty cohen Puntos 33863

Para mí, esto parece error de redondeo en la conversión de formato interno a la cadena o la otra manera alrededor.

He visto esto en muchos fortran programas en el pasado.

En otro caso Me encontré, un programa Ada producido resultados ligeramente diferentes dependiendo de si fue una cadena convertido a numérico en tiempo de compilación o tiempo de ejecución.

Tal vez no debería ser una opción de hardware tener el exponente en la representación de coma flotante indicar las potencias de 10 en lugar de potencias de 2.

1voto

KKZiomek Puntos 15

No, no es el mismo. Considerando 0.99...=1 implica infinitamente repetida 9s después del punto decimal, que se hace igual a 1. Pero en el cálculo de aquí, hay finito 9s, y es apagado por un todo, una unidad (con más precisión de 1/1000 de una unidad), que no es un gran error, pero considerable. Se puede omitir, pero definitivamente no es la misma cosa como 0.99...=1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X