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
复数支持: 是