scipy.interpolate.

insert#

scipy.interpolate.insert(x, tck, m=1, per=0)[Quelle]#

Fügt Knoten in eine B-Spline ein.

Veraltet

Diese Funktion gilt als veraltet und wird keine weiteren Updates mehr erhalten. Obwohl wir derzeit keine Pläne haben, sie zu entfernen, empfehlen wir, in neuem Code modernere Alternativen zu verwenden. Insbesondere empfehlen wir, ein BSpline-Objekt zu erstellen und dessen Methode insert_knot zu verwenden.

Erstellt aus den gegebenen Knoten und Koeffizienten einer B-Spline-Darstellung eine neue B-Spline mit einem Knoten, der m Mal an der Stelle x eingefügt wird. Dies ist ein Wrapper für die FORTRAN-Routine insert von FITPACK.

Parameter:
x (u)float

Ein Knotwert, an dem ein neuer Knoten eingefügt werden soll. Wenn tck von splprep zurückgegeben wurde, dann sollten die Parameterwerte, u angegeben werden.

tckeine BSpline-Instanz oder ein Tupel

Wenn ein Tupel, dann wird erwartet, dass es ein Tupel (t,c,k) ist, das den Vektor der Knoten, die B-Spline-Koeffizienten und den Grad der Spline enthält.

mint, optional

Die Anzahl der Einfügungen des gegebenen Knotens (seine Vielfachheit). Standard ist 1.

perint, optional

Wenn ungleich Null, wird die Eingabe-Spline als periodisch betrachtet.

Rückgabe:
BSpline-Instanz oder ein Tupel

Eine neue B-Spline mit Knoten t, Koeffizienten c und Grad k. t(k+1) <= x <= t(n-k), wobei k der Grad der Spline ist. Im Falle einer periodischen Spline (per != 0) müssen entweder mindestens k innere Knoten t(j) existieren, die t(k+1)<t(j)<=x erfüllen, oder mindestens k innere Knoten t(j) existieren, die x<=t(j)<t(n-k) erfüllen. Ein Tupel wird zurückgegeben, wenn das Eingabeargument tck ein Tupel ist, andernfalls wird ein BSpline-Objekt konstruiert und zurückgegeben.

Siehe auch

BSpline.insert_knot

Hinweise

Basiert auf Algorithmen aus [1] und [2].

Das direkte Manipulieren von tck-Tupeln wird nicht empfohlen. Verwenden Sie in neuem Code vorzugsweise die BSpline-Objekte, insbesondere die Methode BSpline.insert_knot.

Referenzen

[1]

W. Boehm, „Inserting new knots into b-spline curves.“, Computer Aided Design, 12, S. 199-201, 1980.

[2]

P. Dierckx, „Curve and surface fitting with splines, Monographs on Numerical Analysis“, Oxford University Press, 1993.

Beispiele

Sie können Knoten in eine B-Spline einfügen.

>>> from scipy.interpolate import splrep, insert
>>> import numpy as np
>>> x = np.linspace(0, 10, 5)
>>> y = np.sin(x)
>>> tck = splrep(x, y)
>>> tck[0]
array([ 0.,  0.,  0.,  0.,  5., 10., 10., 10., 10.])

Ein Knoten wird eingefügt

>>> tck_inserted = insert(3, tck)
>>> tck_inserted[0]
array([ 0.,  0.,  0.,  0.,  3.,  5., 10., 10., 10., 10.])

Einige Knoten werden eingefügt

>>> tck_inserted2 = insert(8, tck, m=3)
>>> tck_inserted2[0]
array([ 0.,  0.,  0.,  0.,  5.,  8.,  8.,  8., 10., 10., 10., 10.])