MATLAB 帮助中心
针对较小的 X 精确计算 1+X 的自然对数
X
1+X
Y = log1p(X)
Y = log1p(X) 计算数组 X 中每个元素的自然对数 log(1+X),但不显式计算 1+X。如果 X < -1,则 Y 为复数。此函数对于 X 中的小实数值更精确,因为它会补偿 1+X 中的舍入误差。
Y
log(1+X)
X < -1
示例
全部折叠
比较 log(1+X) 与 log1p(X) 的精确度。
log1p(X)
创建一个由小实数值组成的向量。
X = [-1e-16 1e-15 2e-14]
X = 1×3 10-13 × -0.0010 0.0100 0.2000
使用 log 函数计算 1+X 的自然对数。
log
Y = log(1+X)
Y = 1×3 10-13 × -0.0011 0.0111 0.1998
结果可能为零或具有较大的相对误差。例如,Y(2) 不接近 X(2),即 1e-15。
Y(2)
X(2)
1e-15
ans = 1.1102e-15
使用 log1p 函数计算 1+X 的自然对数。
log1p
Y = 1×3 10-13 × -0.0010 0.0100 0.2000
在本例中,log1p(X) 约为 X,结果更精确。例如,Y(2) 现在接近 X(2),即 1e-15。
ans = 1.0000e-15
输入数组,指定为标量、向量、矩阵、多维数组、表或时间表。
数据类型: single | double | table | timetable 复数支持: 是
single
double
table
timetable
全部展开
log1p 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
log1p 函数支持 GPU 数组输入,但有以下用法说明和限制:
如果在 GPU 上运行的函数的输出可能为复数,则必须将其输入参量显式指定为复数。有关详细信息,请参阅在 GPU 上处理复数 (Parallel Computing Toolbox)。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
log1p 函数可以对表或时间表中的所有变量执行计算,而无需通过索引访问这些变量。所有变量都必须具有支持计算的数据类型。有关详细信息,请参阅Direct Calculations on Tables and Timetables。
log | expm1
expm1
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处