Main Content


Compute exp(X)-1 accurately for small X



Y = expm1(X) computes exp(X)-1 for each element in array X. This function is more accurate for small real values in X because it compensates for the round-off error in exp(X).


collapse all

Compare the accuracy of exp(X)-1 and expm1(X).

Create a vector of small real values.

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

   -0.0001    0.0100    0.2000

Calculate exp(X)-1 using the exp function.

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

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

ans = 1.1102e-15

Calculate exp(X)-1 using the expm1 function.

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

   -0.0001    0.0100    0.2000

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

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

Version History

Introduced before R2006a

expand all

See Also