log1p和expm1
原文
https://blog.youkuaiyun.com/qq_36523839/article/details/82422865?utm_source=blogxgwz0
log1p = log(x+1) 即ln(x+1)
expm1 = exp(x)-1
log1p函数有它存在的意义,即保证了x数据的有效性,当x很小时(如 两个数值相减后得到x = 10^{-16}),由于太小超过数值有效性,用log(x+1)计算得到结果为0,换作log1p则计算得到一个很小却不为0的结果,这便是它的意义(用泰勒公式来展开运算的)。
对于x的小值,这个函数提供了比exp(x) - 1更高的精度。
>>> np.expm1(1e-10)
1.00000000005e-10
>>> np.exp(1e-10) - 1
1.000000082740371e-10
log1p 和 expm1 互为逆运算
y
=
log
(
1
+
x
)
y = \log(1+x)
y=log(1+x)
e
x
p
(
y
)
=
1
+
x
exp(y) = 1+x
exp(y)=1+x
x
=
e
x
p
(
y
)
−
1
x = exp(y) - 1
x=exp(y)−1
本文深入探讨了log1p和expm1函数在数值计算中的重要性,特别是在处理极小数值时如何提高计算精度。log1p函数通过泰勒公式展开,确保了对极小数的有效计算;而expm1则提供了比直接计算exp(x)-1更高的精度。这两个函数互为逆运算,共同解决了数值稳定性问题。
18万+

被折叠的 条评论
为什么被折叠?



