scipy.interpolate.

InterpolatedUnivariateSpline#

class scipy.interpolate.InterpolatedUnivariateSpline(x, y, w=None, bbox=[None, None], k=3, ext=0, check_finite=False)[Quelle]#

1-D interpolierende Spline für einen gegebenen Satz von Datenpunkten.

Veraltet

Diese Klasse gilt als veraltet und wird keine weiteren Updates mehr erhalten. Obwohl wir derzeit keine Pläne haben, sie zu entfernen, empfehlen wir, dass neuer Code modernere Alternativen verwendet. Insbesondere empfehlen wir die Verwendung von make_interp_spline.

Passt eine Spline y = spl(x) vom Grad k an die bereitgestellten x, y-Daten an. Die Spline-Funktion verläuft durch alle bereitgestellten Punkte. Entspricht UnivariateSpline mit s = 0.

Parameter:
x(N,) array_like

Eingabedimension von Datenpunkten – muss streng monoton steigend sein

y(N,) array_like

Eingabedimension von Datenpunkten

w(N,) array_like, optional

Gewichte für die Spline-Anpassung. Müssen positiv sein. Wenn None (Standard), sind alle Gewichte 1.

bbox(2,) array_like, optional

2-Sequenz, die die Grenze des Approximationsintervalls angibt. Wenn None (Standard), bbox=[x[0], x[-1]].

kint, optional

Grad der glättenden Spline. Muss 1 <= k <= 5 sein. Standard ist k = 3, eine kubische Spline.

extint oder str, optional

Steuert den Extrapolationsmodus für Elemente, die nicht im Intervall der Knotensequenz liegen.

  • wenn ext=0 oder „extrapolate“, gib den extrapolierten Wert zurück.

  • wenn ext=1 oder „zeros“, gib 0 zurück.

  • wenn ext=2 oder „raise“, löse einen ValueError aus.

  • Wenn ext=3 oder ‘const’, wird der Grenzwert zurückgegeben.

Der Standardwert ist 0.

check_finitebool, optional

Ob geprüft werden soll, ob die Eingabearrays nur endliche Zahlen enthalten. Deaktivierung kann die Leistung verbessern, kann aber zu Problemen (Abstürze, Nicht-Terminierung oder unsinnige Ergebnisse) führen, wenn die Eingaben Unendlichkeiten oder NaNs enthalten. Standard ist False.

Methoden

__call__(x[, nu, ext])

Bewerte den Spline (oder seine nu-te Ableitung) an den Positionen x.

antiderivative([n])

Konstruiere einen neuen Spline, der die Stammfunktion dieses Splines darstellt.

derivative([n])

Konstruiere einen neuen Spline, der die Ableitung dieses Splines darstellt.

derivatives(x)

Gib alle Ableitungen des Splines an der Stelle x zurück.

get_coeffs()

Gib die Spline-Koeffizienten zurück.

get_knots()

Gib die Positionen der inneren Knoten des Splines zurück.

get_residual()

Gib die gewichtete Summe der quadrierten Residuen der Spline-Approximation zurück.

integral(a, b)

Gib das bestimmte Integral des Splines zwischen zwei gegebenen Punkten zurück.

roots()

Gib die Nullstellen des Splines zurück.

set_smoothing_factor(s)

Fahre die Spline-Berechnung mit dem gegebenen Glättungsfaktor s und den bei der letzten Aufruf gefundenen Knoten fort.

validate_input

Siehe auch

UnivariateSpline

Ein geglätteter univariater Spline zur Anpassung an eine gegebene Menge von Datenpunkten.

LSQUnivariateSpline

eine Spline, für die die Knoten vom Benutzer ausgewählt werden

SmoothBivariateSpline

Ein glättender bivariate Spline durch die gegebenen Punkte

LSQBivariateSpline

Ein bivariate Spline unter Verwendung von gewichteter Kleinster-Quadrate-Anpassung

splrep

Eine Funktion zum Finden der B-Spline-Darstellung einer 1-D-Kurve

splev

Eine Funktion zur Auswertung eines B-Splines oder seiner Ableitungen

sproot

Eine Funktion zum Finden der Nullstellen eines kubischen B-Splines

splint

Eine Funktion zur Auswertung des bestimmten Integrals eines B-Splines zwischen zwei gegebenen Punkten

spalde

Eine Funktion zur Auswertung aller Ableitungen eines B-Splines

Hinweise

Die Anzahl der Datenpunkte muss größer sein als der Spline-Grad k.

Beispiele

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import InterpolatedUnivariateSpline
>>> rng = np.random.default_rng()
>>> x = np.linspace(-3, 3, 50)
>>> y = np.exp(-x**2) + 0.1 * rng.standard_normal(50)
>>> spl = InterpolatedUnivariateSpline(x, y)
>>> plt.plot(x, y, 'ro', ms=5)
>>> xs = np.linspace(-3, 3, 1000)
>>> plt.plot(xs, spl(xs), 'g', lw=3, alpha=0.7)
>>> plt.show()
../../_images/scipy-interpolate-InterpolatedUnivariateSpline-1_00_00.png

Beachten Sie, dass die spl(x) y interpoliert

>>> spl.get_residual()
0.0