Main Content

log1p

Compute natural logarithm of 1+X accurately for small X

Description

Y = log1p(X) computes the natural logarithm log(1+X) for each element in array X without explicitly computing 1+X. If X < -1, then Y is complex. This function is more accurate for small real values in X because it compensates for the round-off error in 1+X.

example

Examples

collapse all

Compare the accuracy of log(1+X) and log1p(X).

Create a vector of small real values.

X = [-1e-16 1e-15 2e-14]
X = 1×3
10-13 ×

   -0.0010    0.0100    0.2000

Calculate the natural logarithm of 1+X using the log function.

Y = log(1+X)
Y = 1×3
10-13 ×

   -0.0011    0.0111    0.1998

The results can be zeros or have large relative errors. For example, Y(2) is not close to X(2), which is 1e-15.

Y(2)
ans = 
1.1102e-15

Calculate the natural logarithm of 1+X using the log1p function.

Y = log1p(X)
Y = 1×3
10-13 ×

   -0.0010    0.0100    0.2000

In this case, where log1p(X) is approximately X, the results are more accurate. For example, Y(2) is now close to X(2), which is 1e-15.

Y(2)
ans = 
1.0000e-15

Input Arguments

collapse all

Input array, specified as a scalar, vector, matrix, multidimensional array, table, or timetable.

Data Types: single | double | table | timetable
Complex Number Support: Yes

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced before R2006a

expand all

See Also

|