Python 3.2+Числа и математикафункция
math.expm1
корни/степени
exp(x) − 1, точно при малых x (без потери значимости).
Синтаксис
math.expm1(...)
Проблема, которую он снимает: при крошечном x значение exp(x) почти равно единице, при вычитании старшие разряды взаимно уничтожаются и от ответа остаётся горстка значащих цифр — expm1 считает разность напрямую и сохраняет точность. Парная ему math.log1p(x) вычисляет log(1+x) и служит обратной функцией; на больших x выигрыша нет, и переполнение произойдёт ровно так же, как у exp.
Примеры
import math
print(math.expm1(0)) # → 0.0
print(round(math.expm1(1), 6)) # → 1.718282
print(round(math.expm1(0.005), 6)) # → 0.005013
print(math.exp(1e-16) - 1) # → 0.0
print(math.expm1(1e-16)) # → 1e-16
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности