# log1p

Compute natural logarithm of `1+X` accurately for small `X`

## Syntax

``Y = log1p(X)``

## Description

example

````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`.```

## 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

## Version History

Introduced before R2006a

expand all