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.powerwerden ganzzahlige Eingaben fürpowm1in Gleitkommazahlen konvertiert und komplexe Eingaben werden nicht akzeptiert.Beachten Sie die folgenden Sonderfälle
powm1(x, 0)gibt 0 für jedesxzurück, einschließlich 0,infundnan.powm1(1, y)gibt 0 für jedesyzurück, einschließlichnanundinf.
Diese Funktion umschließt die
powm1Routine 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])