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 Methodeinsert_knotzu 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
splprepzurü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, diet(k+1)<t(j)<=xerfüllen, oder mindestens k innere Knoten t(j) existieren, diex<=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
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 MethodeBSpline.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.])