log1p和expm1
原文
https://blog.csdn.net/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