scipy.special.powm1#

scipy.special.powm1(x, y, выход=None) = 'powm1'>#

Вычисляет x**y - 1.

Эта функция полезна, когда y близко к 0, или когда x близко к 1.

Функция реализована только для вещественных типов (в отличие от numpy.power, которая принимает комплексные входные данные).

Параметры:
xarray_like

Основание. Должно быть вещественным типом (т.е. целым или вещественным числом, не комплексным).

yarray_like

Показатель степени. Должен быть вещественным типом (т.е. целым или вещественным числом, не комплексным).

Возвращает:
array_like

Результат вычисления

Примечания

Добавлено в версии 1.10.0.

Базовый код реализован только для чисел с плавающей запятой одинарной и двойной точности. В отличие от numpy.power, целочисленные входные данные для powm1 преобразуются в числа с плавающей точкой, и комплексные входные данные не принимаются.

Обратите внимание на следующие крайние случаи:

  • powm1(x, 0) возвращает 0 для любого x, включая 0, inf и nan.

  • powm1(1, y) возвращает 0 для любого y, включая nan и inf.

Эта функция оборачивает powm1 подпрограмма из библиотеки Boost Math C++ [1].

Ссылки

[1]

Разработчики Boost. «Boost C++ Libraries». https://www.boost.org/.

Примеры

>>> import numpy as np
>>> from scipy.special import powm1
>>> x = np.array([1.2, 10.0, 0.9999999975])
>>> y = np.array([1e-9, 1e-11, 0.1875])
>>> powm1(x, y)
array([ 1.82321557e-10,  2.30258509e-11, -4.68749998e-10])

Можно проверить, что относительные ошибки в этих результатах меньше 2.5e-16.

Сравните это с результатом x**y - 1, где все относительные ошибки больше 8e-8:

>>> x**y - 1
array([ 1.82321491e-10,  2.30258035e-11, -4.68750039e-10])