scipy.interpolate.

PchipInterpolator#

class scipy.interpolate.PchipInterpolator(x, y, axis=0, extrapolate=None)[Quelle]#

PCHIP formerhaltender Interpolator (C1-glatt).

x und y sind Arrays von Werten, die zur Approximation einer Funktion f verwendet werden, wobei y = f(x) gilt. Der Interpolator verwendet monotone kubische Splines, um den Wert neuer Punkte zu ermitteln. (PCHIP steht für Piecewise Cubic Hermite Interpolating Polynomial).

Parameter:
xndarray, Form (npoints, )

Ein 1D-Array von monoton steigenden reellen Werten. x darf keine doppelten Werte enthalten (andernfalls ist f überbestimmt).

yndarray, Form (…, npoints, …)

Ein N-dimensionales Array von reellen Werten. Die Länge von y entlang der Interpolationsachse muss gleich der Länge von x sein. Verwenden Sie den Parameter axis, um die Interpolationsachse auszuwählen.

axisint, optional

Achse im y-Array, die den x-Koordinatenwerten entspricht. Standard ist axis=0.

extrapolatebool, optional

Ob für Punkte außerhalb des Bereichs basierend auf dem ersten und letzten Intervall extrapoliert werden soll oder ob NaN zurückgegeben werden soll.

Attribute:
axis
c
extrapolate
x

Methoden

__call__(x[, nu, extrapolate])

Evaluiere das stückweise definierte Polynom oder seine Ableitung.

derivative([nu])

Erstelle ein neues stückweise definiertes Polynom, das die Ableitung darstellt.

antiderivative([nu])

Erstelle ein neues stückweise definiertes Polynom, das die Stammfunktion darstellt.

integrate(a, b[, extrapolate])

Berechne ein bestimmtes Integral über ein stückweise definiertes Polynom.

solve([y, discontinuity, extrapolate])

Findet reelle Lösungen der Gleichung pp(x) == y.

roots([discontinuity, extrapolate])

Reelle Wurzeln des stückweisen Polynoms finden.

Siehe auch

CubicHermiteSpline

Stückweise kubischer Interpolator.

Akima1DInterpolator

Akima 1D-Interpolator.

CubicSpline

Kubischer Spline-Dateninterpolator.

PPoly

Stückweise Polynom in Bezug auf Koeffizienten und Bruchpunkte.

Hinweise

Der Interpolator erhält die Monotonie der Interpolationsdaten und überschießt nicht, wenn die Daten nicht glatt sind.

Die ersten Ableitungen sind garantiert stetig, aber die zweiten Ableitungen können bei \(x_k\) springen.

Bestimmt die Ableitungen an den Punkten \(x_k\), \(f'_k\), unter Verwendung des PCHIP-Algorithmus [1].

Seien \(h_k = x_{k+1} - x_k\) und \(d_k = (y_{k+1} - y_k) / h_k\) die Steigungen an den internen Punkten \(x_k\). Wenn die Vorzeichen von \(d_k\) und \(d_{k-1}\) unterschiedlich sind oder eines davon null ist, dann ist \(f'_k = 0\). Andernfalls ist sie durch das gewichtete harmonische Mittel gegeben

\[\frac{w_1 + w_2}{f'_k} = \frac{w_1}{d_{k-1}} + \frac{w_2}{d_k}\]

wobei \(w_1 = 2 h_k + h_{k-1}\) und \(w_2 = h_k + 2 h_{k-1}\).

Die Endsteigungen werden mit einem einseitigen Schema festgelegt [2].

Referenzen

[1]

F. N. Fritsch und J. Butland, A method for constructing local monotone piecewise cubic interpolants, SIAM J. Sci. Comput., 5(2), 300-304 (1984). DOI:10.1137/0905021.

[2]

siehe z. B. C. Moler, Numerical Computing with Matlab, 2004. DOI:10.1137/1.9780898717952