2026a

# log1p


针对较小的 x 值正确计算 log(1+x)

# 语法

Y = log1p(x)

# 说明

Y = log1p(x) 计算 X 中每个元素的自然对数 log(1+x),并补偿 1+x 中的舍入误差。

对于较小的 x 值,log1p(x) 比 log(1+x) 更准确。对于较小的 x,log1p(x) 约为 x,而 log(1+x) 可能为零。示例

# 示例

针对较小的 X 的 1+X 的自然对数

比较 log(1+X) 与 log1p(X) 的精确度。

创建一个由小实数值组成的向量。

X = [-1e-16 1e-15 2e-14]
X = 1×3 Matrix{Float64}:
 -1.0e-16  1.0e-15  2.0e-14

使用 log 函数计算 1+X 的自然对数。

Y = log.(1 .+ X)
Y = 1×3 Matrix{Float64}:
 -1.11022e-16  1.11022e-15  1.9984e-14

结果可能为零或具有较大的相对误差。例如,Y[2] 不接近 X[2],即 1e-15。

Y[2]
ans = 1.110223024625156e-15

使用 log1p 函数计算 1+X 的自然对数。

Y = log1p.(X)
Y = 1×3 Matrix{Float64}:
 -1.0e-16  1.0e-15  2.0e-14

在本例中,log1p(X) 约为 X,结果更精确。例如,Y[2] 现在接近 X[2],即 1e-15。

Y[2]
ans = 9.999999999999995e-16

# 输入参数

x - 输入数组
标量 | 向量 | 矩阵 | 多维数组

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64

复数支持:

# 另请参阅

log | log2 | log10 | exp | reallog