numpy log1p()和exmp1()

本文深入探讨了log1p和expm1函数在数值计算中的重要性,特别是在处理极小数值时如何提高计算精度。log1p函数通过泰勒公式展开,确保了对极小数的有效计算;而expm1则提供了比直接计算exp(x)-1更高的精度。这两个函数互为逆运算,共同解决了数值稳定性问题。

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

### numpy log1p 函数的用法与输入 1 的计算值 `numpy.log1p` 是 NumPy 库中的一个函数,用于计算输入数组中每个元素的自然对数(以 e 为底)加 1 的值。对于小数值,`log1p` 比直接使用 `log` 更加精确,因为其内部实现减少了数值误差[^2]。 以下是 `numpy.log1p` 的基本语法参数说明: - **函数签名**: `numpy.log1p(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])` - **参数**: - `x`: 输入数组或标量。 - 其他参数如 `out`, `where` 等是可选参数,用于指定输出存储位置或应用条件掩码。 - **返回值**: 返回与输入相同形状的数组,其中每个元素为 `log(1 + x)` 的值。 对于输入值为 1 的情况,`numpy.log1p(1)` 的计算结果如下: ```python import numpy as np result = np.log1p(1) print(result) # 输出约为 0.6931471805599453 ``` 上述代码中,`np.log1p(1)` 的计算结果为约 0.6931471805599453,这是自然对数 \( \ln(2) \) 的近似值[^3]。 ### 示例代码 以下是一个完整的代码示例,展示如何使用 `numpy.log1p` 计算不同输入值的结果: ```python import numpy as np # 单个标量输入 scalar_result = np.log1p(1) print(f"Log1p of 1: {scalar_result}") # 数组输入 array_input = np.array([0, 1, 2, 3]) array_result = np.log1p(array_input) print(f"Log1p of array [0, 1, 2, 3]: {array_result}") ``` 运行结果: ``` Log1p of 1: 0.6931471805599453 Log1p of array [0, 1, 2, 3]: [0. 0.69314718 1.09861229 1.38629436] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值