B-Spline-Interpolation
B-Splines sind gewichtete Sätze von Basisfunktionen für Polynom-Splines.
• bspline(vx, vy, u, n) – Gibt einen Vektor
vs, der von
interp verwendet wird, aus den folgenden geschachtelten Arrays zurück: eine Kennzeichnung für
interp, ein Array, dessen Spalten die Koeffizienten eines B-Splines vom Grad
n für die Daten in
vx und
vy enthalten, sofern die Knotenwerte in
u gegeben sind, sowie ein Array, dessen Spalten die Endpunkte der durch die Knoten bestimmten Intervalle enthalten.
Die Funktion
bspline kann einen linearen, quadratischen oder kubischen Spline erstellen. Der erstellte Spline unterscheidet sich von
lspline,
pspline oder
cspline dahingehend, dass
bspline die Polynomsegmente bei Knoten zusammenfügt, die sich von den Positionen der eigentlichen Datenpunkte unterscheiden können.
Die folgenden Funktionen akzeptieren Gewichtungen zu den Datenwerten, die die Ebene des relativen Fehlers widerspiegeln. Der Softwarealgorithmus berechnet mithilfe der Durbin-Watson-Statistik eine Folge von Knoten, mit denen entschieden wird, ob Spline-Anpassungen akzeptiert oder zurückgewiesen werden. Auf diese Weise liefern B-Splines eine minimale Anzahl von Knoten, um alle Datenmerkmale widerzuspiegeln.
• Spline2(vx, vy, n, [vw], [u], [level]) – Gibt den optimalen Satz von B-Spline-Knoten der Ordnung n zurück, um die Daten vx und vy mit den optionalen Gewichtungen vw, den optionalen gewünschten Knoten u und einer optionalen Zurückweisungsebene zu interpolieren. Der zurückgegebene Vektor wird zum zweiten Argument von Binterp.
• Binterp(x, b) – Gibt einen B-Spline-interpolierten y-Wert zurück, der Folgendem entspricht: x verwendet den Ausgabevektor b der Funktion Spline2 zusammen mit der ersten, zweiten und dritten Ableitung.
• DWS(b) – Gibt das Ergebnis der Durbin-Watson-Statistik für den Ausgabevektor b der Funktion Spline2 zurück.
Durch B-Spline-Interpolation können Sie eine Kurve über eine Reihe von Punkten legen, indem die drei benachbarten Punkte für die Konstruktion eines Polynoms mit dem Grad n verwendet werden, sodass das Polynom durch die drei Punkte geht. Diese Polynome werden dann an den Knoten miteinander verbunden, sodass sie die vollständige Kurve bilden. Falls weniger Knoten als Datenpunkte zur Verfügung stehen, jedoch immer noch eine angemessene Annäherung zu y gebildet werden kann, stellen die B-Splines eine gute Methode zur Datenkomprimierung dar.
Die obigen B-Spline-Funktionen basieren auf der Software Spline2 von B. J. Thijsse und M. A. Hollanders (diese Software ist unter http://dutsm183.stm.tudelft.nl/software/software.dita dokumentiert und wird mit Genehmigung verwendet).
Argumente
• vx, vy sind reelle Vektoren gleicher Länge von Datenwerten.
• u ist ein reeller Vektor von Knoten in aufsteigender Reihenfolge mit n − 1 weniger Elementen als vx. Knoten sind diejenigen Werte, an denen die einzelnen B-Spline-Polynome zusammenpassen, im Gegensatz zu anderen Splines, bei denen die Knoten zwingend auf x-Werte festgelegt sind. Das erste Element in u muss kleiner oder gleich dem ersten Element in vx sein. Das letzte Element in u muss größer oder gleich dem letzten Element in vx sein.
• n ist eine Ganzzahl gleich 1, 2 oder 3 und gibt den Grad der einzelnen stückweise linearen (n = 1), quadratischen (n = 2) oder kubischen (n = 3) im B-Spline verwendeten Polynomanpassungen an.
• vw ist ein optionaler Vektor mit Gewichtungen für den Spline derselben Länge wie vx und vy.
• level ist die Ablehnungsgrenze, die durch einen Prozentwert zwischen 0 und 1 (einschließlich) ausgedrückt wird.
• b ist ein von Spline2 generierter Vektor.
• x ist der Wert der unabhängigen Variable, an der die Interpolationskurve ausgewertet werden soll. Für optimale Ergebnisse sollte x innerhalb des Bereichs der Werte von vx liegen.