scipy.special.powm1#

scipy.special.powm1(x, y, out=None) = <ufunc 'powm1'>#

Berechnet x**y - 1.

Diese Funktion ist nützlich, wenn y nahe 0 ist oder wenn x nahe 1 ist.

Die Funktion ist nur für reelle Typen implementiert (im Gegensatz zu numpy.power, das komplexe Eingaben akzeptiert).

Parameter:
xarray_like

Die Basis. Muss ein reeller Typ sein (d. h. Integer oder Float, nicht komplex).

yarray_like

Der Exponent. Muss ein reeller Typ sein (d. h. Integer oder Float, nicht komplex).

Rückgabe:
array_like

Ergebnis der Berechnung

Hinweise

Hinzugefügt in Version 1.10.0.

Der zugrundeliegende Code ist nur für Single-Precision- und Double-Precision-Floats implementiert. Im Gegensatz zu numpy.power werden ganzzahlige Eingaben für powm1 in Gleitkommazahlen konvertiert und komplexe Eingaben werden nicht akzeptiert.

Beachten Sie die folgenden Sonderfälle

  • powm1(x, 0) gibt 0 für jedes x zurück, einschließlich 0, inf und nan.

  • powm1(1, y) gibt 0 für jedes y zurück, einschließlich nan und inf.

Diese Funktion umschließt die powm1 Routine aus der Boost Math C++ Bibliothek [1].

Referenzen

[1]

The Boost Developers. “Boost C++ Libraries”. https://www.boost.org/.

Beispiele

>>> 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])

Es kann verifiziert werden, dass die relativen Fehler in diesen Ergebnissen kleiner als 2,5e-16 sind.

Vergleichen Sie dies mit dem Ergebnis von x**y - 1, wo die relativen Fehler alle größer als 8e-8 sind.

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