5 votos

Cómo calcular$(e^x -1)/x$ cuando$-10^{-8}<x<10^{-8}$

Estoy tratando de graficar la función$y=(e^x -1)/x$ para valores de$x$ cerca de cero.

El resultado debe ser$y$ cerca de$1$. Sin embargo, tanto en Excel como en WolframAlpha los valores calculados se vuelven muy impredecibles para las magnitudes de$x$ de la orden$-10^{-8}<x<10^{-8}$.

(1) ¿Por qué es esto? (2) ¿Existe una forma más precisa de calcular esta función cuando$x$ está cerca de cero?

8voto

Shabaz Puntos 403

Cuando$|x| \ll 1, e^x \approx 1+x+x^2/2$ de la serie Taylor. Cuando se resta$e^x-1$ en un equipo, se pierde precisión. Digamos que su computadora almacena los números en decimal con$10$ lugares (funciona igual en binario, pero estamos acostumbrados a decimal). En el equipo,$e^{10^{-8}} = 1.000000010,$, así que$e^{10^{-8}}-1 = 0.000000010$ y sólo tiene dos lugares de precisión. Para$|x| \ll 1$, es mucho más exacto decir analíticamente$e^x-1 \approx x+x^2/2,$ so$(e^x-1)/x \approx 1+x/2$

Este tema se discute ampliamente en las clases de análisis numérico.

4voto

Tutul Puntos 652

Por esa misma razón, muchas bibliotecas matemáticas (por ejemplo, la libc POSIX estándar) tienen una función expm1 que da un valor numéricamente preciso para$e^x - 1$ cuando$x$ es pequeño.

Véase por ejemplo esto .

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