next up previous contents
Next: 1.3 Bézierkurven Up: 1. Kurven und Flächen Previous: 1.1 Approximation mit Polynomen   Inhalt

1.2 Splineräume und B-Splines

Polynome sind dagegen sehr gut zur lokalen Approximation von glatten Funktionen geeignet. Um die Probleme der polynomialen Interpolation zu vermeiden, liegt es daher nahe, die Funktion stückweise durch Polynome zu approximieren. Dazu teilen wir ein Interval U = [u_0,u_n) in n Teilintervalle [u_{i-1},u_i), i = 1:n auf, die durch die Knotenfolge u = { u_0, u_1,..., u_n } mit

u_0 < u_1 <= u_2 <= ... <= u_{n-1} < u_n (1.2)

bestimmt werden. Auf jedem dieser Teilintervalle stellen wir die approximierende Funktion p als Polynom vom maximalen Grad d dar. Dabei kann in der Knotenfolge jeder Knoten maximal d+1-mal vorkommen. Kommt ein Knoten u_i genau m-mal vor, d.h. u_{i-1} < u_i = u_{i+1} = ... = u_{i+m-1} < u_{i+m}, dann sind die ersten d-m Ableitungen von p an diesem Knoten stetig. m heißt die Vielfachheit von u_i. p ist dann eine Splinefunktion zur Knotenfolge u vom Grad d mit dem Definitionsbereich U. Den hieraus entstehenden Splineraum bezeichnen wir mit S_{u,d}(U). Um eine Basis für diesen Raum zu erhalten, erweitern wir zunächst die Knotenfolge u in beide Richtungen um jeweils d Punkte:

u_{-d} <= ... <= u_{-1} <= u_0 < u_1 <= u_2 <= ... <= u_{n-1} < u_n <= u_{n+1} <= ... <= u_{n+d}. (1.3)

Wir können auch annehmen, daß u in beide Richtungen unendlich fortgesetzt wird und wir nur die jeweils relevanten Knoten betrachten. Die Knoten außerhalb des Intervalls U haben keinen Einfluß auf die im Splineraum enthaltenen Funktionen. Eine mögliche Basis für diesen Raum bilden die abgebrochenen Potenzen. Jedes p \in S_{u,d}(U) läßt sich darstellen als

p(x) = \sum_{j=-d}^{n-1} p_j (x - u_j)_+^{d-j} (1.4)

mit den Koeffizienten p_j \in R und

(x - u_j)_+ := max{ x - u_j, 0},  j := max{k : u_{j+k} = u_j}. (1.5)

Dabei ergeben die ersten d+1 abgebrochenen Potenzen eine Basis für die Polynome vom maximalen Grad d auf dem Intervall [u_0, u_1). Die restlichen Terme bestimmen die “Sprünge” in den Ableitungen an den Knoten. Aus dieser Darstellung folgt, daß die Dimension von S_{u,d}(U) gleich n+d ist.

Die Basis der abgebrochenen Potenzen (1.4) für S_{u,d}(U) besitzt allerdings keinen kompakten Support, d.h. Änderungen der Koeffizienten p_j haben globale Auswirkungen. Dieser Nachteil wird durch die B-Splines aufgehoben.

Definition 1.1 (B-Splines)   Zu einer vorgegebenen Knotenfolge u = {u_j}_{j\in Z} für die lim_{j-> \pm\infty} u_j = \pm\infty gilt, sei der B-Spline B_{j,d,u} vom Grad d wie folgt rekursiv definiert.
Für d = 0 sei

B_{j,0,u}(x) :=  falls u_j <= x < u_{j+1},  0 sonst. (1.6)

Für d > 0 sei

B_{j,d,u}(x) := omega_{j,d}(x) B_{j,d-1,u}(x) + (1-omega_{j+1,d}(x)) B_{j+1,d-1,u}(x) (1.7)

mit

omega_{j,d}(x) := (x-u_j)/(u_{j+d} - u_j). (1.8)

Abbildung 1.3: Rekursive Definition eines B-Splines vom Grad 2
Rekursive Definition eines B-Splines

Die rekursive Konstruktion eines B-Splines vom Grad 2 für eine äquidistante Knotenfolge ist in Abbildung 1.3 veranschaulicht. Mit Hilfe der Marsden Identität erhält man folgendes Resultat.

Theorem 1.2 (B-Spline Basis)   Für das Intervall U = [u_0,u_n) bilden die B-Splines B_{j,d,u} für -d <= j < n eine Basis für S_{u,d}(U) mit der Knotenfolge u_{-d} <= ... <= u_{n+d} und es gilt supp(B_{j,d,u}) = [u_j,u_{j+d+1}]. Falls u_j < u_{j+1}, bilden die B-Splines B_{j-d,d,u}, ..., B_{j,d,u} eine Basis der Polynome vom maximalen Grad d auf [u_j,u_{j+1}).

Proof. Den Beweis hierzu findet man in [Höl94] und [Höl98].

Eine Splinekurve c vom Grad d im R^N mit den Kontrollpunkten p_j = [p_{j,1}, ..., p_{j,D}]^T \in R^N hat demnach die Form

c(t) := \sum_{j=-d}^{n-1} p_j B_{j,d,u}(t), t \in U. (1.9)

Damit sind die Koordinatenfunktionen von c Splinefunktionen aus S_{u,d}(U).


next up previous contents
Next: 1.3 Bézierkurven Up: 1. Kurven und Flächen Previous: 1.1 Approximation mit Polynomen   Inhalt
Copyright © 1999-2002 Frank C. Langbein. All rights reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation.

Contact: webmaster@langbein.org
URI: http://www.langbein.org/fileadmin/research/surfaces/diploma/HTML/node8.html