schönberg intervalle

Werbung
Splinekurven und -flächen im CAGD
Vorlesung, zuerst gehalten im Wintersemester 1998/99
Tomas Sauer
Version 1.0
Letzte Änderung: 21.1.2003
Statt einer Leerseite . . .
Maches sagt ich,
mehr noch wollt ich,
ließe zur Rede
Raum das Geschick.
Die Stimme weicht,
Wunden schwellen:
Wahres sprach ich;
will nun enden.
Die Edda, Das jüngere Sigurdlied
INHALTSVERZEICHNIS
1
Inhaltsverzeichnis
1 Eine kurze Geschichte der Splines
3
2 Warum Splines?
6
2.1 Interpolation durch Polynome . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Stückweise polynomiale Interpolation . . . . . . . . . . . . . . . . . . . . . 10
2.3 Minimalität und Namensgebung . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Bézierflächen
3.1 Baryzentrische Koordinaten . . .
3.2 Der Algorithmus von de Casteljau
3.3 Bézierflächen . . . . . . . . . . .
3.4 Ableitungen von Bézierflächen . .
4 Blossoming
4.1 Blossoming
4.2 Blossoming
4.3 Blossoming
4.4 Blossoming
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
via de Casteljau . . . . . . . .
und Subdivision . . . . . . . .
und Ableitungen . . . . . . . .
und glattes Aneinanderkleben
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
18
19
23
.
.
.
.
28
28
31
33
35
5 Univariate Splines und Interpolation an den Knoten
39
5.1 Interpolation an einfachen Knoten . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 Eine erste Basis der Splineräume . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Interpolation an Mittelwerten von Knoten . . . . . . . . . . . . . . . . . . 45
6 B–Splines
6.1 Der Algorithmus von de Boor . . . . . . . .
6.2 B–Splines . . . . . . . . . . . . . . . . . . .
6.3 Differenzierbarkeit von Splinekurven . . . .
6.4 Der Satz von Curry–Schoenberg . . . . . . .
6.5 Knoteneinfügen . . . . . . . . . . . . . . . .
6.6 Ableitungen und Integrale von Splinekurven
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Interpolation und Approximation durch Splines
7.1 Der Satz von Schoenberg und Whitney . . . . . .
7.2 Totale Positivität der Kollokationsmatrizen . . . .
7.3 Variationsvermindernde Splineapproximation . . .
7.4 Approximationsordnung . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
47
49
53
56
58
61
.
.
.
.
65
66
70
72
73
8 Simplex–Splines
76
8.1 Geometrische Interpretation der B–Splines . . . . . . . . . . . . . . . . . . 76
8.2 Definition und Eigenschaften der Simplex–Splines . . . . . . . . . . . . . . 82
8.3 Kergin–Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2
INHALTSVERZEICHNIS
9 Simplex–Splines, B–Patches und Blossoming
95
9.1 B–Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2 Multivariate “B–Splines” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3
Geschichte muß doch wohl allein auf
Treu und Glauben angenommen
werden? Nicht?
Lessing, Nathan der Weise III,7
1
Eine kurze Geschichte der Splines
Auch wenn man gerne die Arbeiten [39, 40] von Schoenberg aus dem Jahr 1946 als die
“Geburtsstunde” der Splines bezeichnet, waren die B–Splines “wahrscheinlich Hermite
und sicherlich Peano” (Schoenberg in [41]) bekannt. Will man noch weiter in der Geschichte zurückgehen, so kann man sich auf die exponential Euler Splines berufen, die
bereits von Euler (1755), aber natürlich nicht unter diesem Namen, untersucht wurden.
Eine Zusammenfassung der “Ur- und Frühgeschichte” der Splines gibt beispielsweise die
Arbeit von Butzer, Schmidt und Stark [11].
Doch kehren wir wieder zurück zu Isaac J. Schoenberg, einem der profiliertesten und
vielseitigsten angewandten und nicht nur angewandten Mathematiker dieses Jahrhunderts. Im Rahmen seiner Tätigkeit im War Department at Aberdeen Proving Ground
während des zweiten Weltkriegs begann er, ausgehend von Approximationsproblemen,
mit der Untersuchung von Splines. Es ist einer der wenigen positiven Aspekte des Kriegs,
daß zur selben Zeit auch Haskell B. Curry, ansonsten eher der Algebra und abstrakten Logik zugetan, von diesem Ansatz Kenntnis bekam und ihn gemeinsam mit Schoenberg weiterentwickelte. Eine Kopie eines Briefes, in dem Curry von diesen Entwicklungen
erzählt, findet sich im Buch von Micchelli [27] (das sich beispielsweise mit den Themen
Subdivision, Splines mit verallgemeinerten Differenzierbarkeitseigenschaften, multivariate
Splines und Blossoming befaßt und schon deswegen sehr empfehlenswert ist). Trotzdem
beschäftigte sich auch Schoenberg zuerst einmal lange Zeit mit anderen Dingen, so daß die
berühmte Arbeit von Curry und Schoenberg [15] erst mit fast 20–jähriger Verspätung im
Jahre 1966 erschien. Einer der Gründe, warum Schoenberg seine Resultate über Splines
wieder “aus der Schublade” holte, war wohl die Tatsache, daß inzwischen auch andere
Mathematiker, allen voran Carl de Boor, die Splines entdeckt hatten und so Schoenbergs
Interesse neu weckten. Natürlich bestand einer der Gründe für das aufkeimende allgemeine Interesse an Splines im Bedarf an “guten” Typen von Kurven im Zusammenhang mit
den CAD–Systemen und den numerischen Berechnungen, die durch die Entwicklung der
Computertechnik in ganz neuen Größenordnungen durchgeführt wurden. Auf der anderen
Seite waren und sind Splines auch ein wichtiges theoretisches Hilfsmittel bei der Untersuchung von n–ten Weiten, wo sie eine wichtige Rolle als Minimallösungen bestimmter
Funktionale spielen. Inzwischen ist die Literatur zum Thema “Splines” gigantisch. Die beste, umfangreichste und via Internet zugängliche Bibliographie stammt von de Boor und
kann beispielsweise über seine WWW–Homepage http://www.cs.wisc.edu/~deboor abgerufen werden.
4
1 EINE KURZE GESCHICHTE DER SPLINES
In den meisten “klassischen” Lehrbüchern über Numerische Mathematik werden Splines (oft nur kubisch, das heißt von der Ordnung m = 3) als Lösung eines Interpolationsproblems an den einfachen Knoten tm+1 , . . . , tn eingeführt und beschrieben. Nicht, daß
das irgend etwas schlechtes wäre, gerade in diesem Zusammenhang zeigen die Splines ein
den Polynomen weit überlegenes Verhalten, da sie das oftmals katastrophale Oszillationsverhalten der Interpolationspolynome nicht mitmachen. Auf alle Fälle hat man es aber
in diesem Rahmen wegen der einfachen Knoten stets mit Funktionen aus C m−1 zu tun.
Eine Basis des zugehörigen Splineraums ist dann schnell angegeben: sie besteht aus allen
Polynomen vom Grad m sowie den abgebrochenen Potenzen
(t − ti )m
t ≥ ti ,
m
i = m + 1, . . . , n − 1.
(t − ti )+ =
0
t < ti ,
Klar – diese Funktionen sind alle linear unabhängig, stückweise polynomial und m − 1
mal stetig differenzierbar. Damit haben wir also m + 1 Polynome und n − m − 1 abgebrochene Potenzen, also n Basisfunktionen, und da wir, dank der B–Splines, wissen, daß der
Splineraum Dimension n hat, sind diese Funktionen ebenfalls eine Basis. Allerdings eine
Basis mit Nachteilen: die Basisfunktionen haben unendlichen Träger! Deswegen war man
interessiert an einer Basis des Splineraums dergestalt, daß alle Basisfunktionen möglichst
kleinen Träger haben – und das führte zu den B–Splines. Daß diese Funktionen dann auch
noch über eine Rekursionsformel verknüpft sind, wie Cox [14] und de Boor [4] zeigten,
macht sie nur noch sympathischer. Zudem haben die Basisfunktionen mit kompaktem
Träger noch einen weiteren Vorteil, den bereits Schoenberg weidlich ausnutzte: da zur
Berechnung von N m (t) stets nur die m Knoten “links von t” und die m Knoten “rechts
von t”, sowie die m + 1 zugehörigen Kontrollpunkte verwendet werden, gibt es überhaupt
keine Schwierigkeiten, auch unendliche Knotenfolgen ti , i ∈ Z, mit unendlichen Kontrollpolygonen di , i ∈ Z, zu betrachten. Und das ist mit einer Basis aus Polynomen und
abgebrochenen Potenzen nun doch etwas unschön, da hier an jedem Punkt eine unendliche Anzahl von Basisfunktionen beiträgt. Aber besser noch: sind die Knoten gleichverteilt,
also z.B. ti = i, i ∈ Z, (das sind genau die Cardinal B–Splines von Schoenberg [41]), dann
sind die B–Splines lediglich verschobene Kopien voneinander, genauer
Nim (x) = N0m (x − i),
i ∈ Z,
und man hat eigentlich nur einen B–Spline.
Aus den 70er und 80er Jahren gibt es eine Vielzahl von Arbeiten über Splines, die
für einige Zeit ein richtiges “Modethema” waren. Einen gewissen Überblick aus unterschiedlichen Perspektiven und von unterschiedlichen Zugängen her bieten beispielsweise
die Bücher von de Boor [5], Schumaker [42] oder Nürnberger [30]. Auf alle Fälle fand man
eine Vielzahl von Problemen und Gebieten, wo sich die Splines als mehr oder weniger
nützlich erwiesen.
Trotzdem geschah noch einmal das Wunder, daß auf einem eigentlich “abgegrasten”
Feld, das die (univariaten) Splines in den 80er Jahren mit Sicherheit waren, noch einmal
zarte Blüten (engl. “blossoms”) sprossen. Es war überraschenderweise wieder de Casteljau,
5
der zuerst auf die Zusammenhänge mit polaren Formen aufmerksam machte [12], wenn
auch in sehr schwer lesbarer Form. Die Anwendung von Blossoming auf Splinekurven geht
wohl auf Lyle Ramshaw [32] zurück (siehe auch und vor allem [33]). Die Darstellung in
diesem Skript folgt in weiten Zügen [35], die ihrerseits auf einer Arbeit von Hans–Peter
Seidel [44] basiert, welche im wesentlichen für meine Begeisterung für dieses Gebiet verantwortlich ist. Seidels Ziel war es übrigens, die neuen Einsichten, die das Blossoming
gewährte, auch auf Flächen (generell, auf den multivariaten Fall) zu übertragen. Obwohl
da einige Dinge ganz entschieden anders sind als bei den Kurven, gelang es doch, Splineflächen von hochgradiger Flexibilität zu konstruieren. Aber das ist eine andere Geschichte,
die in Kapitel 9 erzählt werden soll . . ..
6
2 WARUM SPLINES?
Πóλµoς πατ ήρ π άντ ων
Der Krieg ist der Vater aller Dinge
Heraklit, Frag. 53
2
Warum Splines?
2.1
Interpolation durch Polynome
In vielen Anwendungen spielt das folgende Interpolationsproblem eine wichtige Rolle:
Gegeben seien Punkte x0 , . . . , xn ∈ I ⊂ R, I ein kompaktes Intervall. Zu
vorgegebenen Werten f0 , . . . , fn ∈ R finde man eine stetige Funktion f : I →
R, so daß
f (xj ) = fj ,
j = 0, . . . , n.
Derartige mathematische Aufgaben entstehen zum Beispiel bei der Erstellung ballistischer
Tabellen, bzw. bei der Approximation heuristischer (d.h. gemessener) Tabellen, und genau
diese Problematik führte I. J. Schoenberg zur “Erfindung” der Splines während seiner
Tätigkeit in den “Ballistic Research Laboratories”, Aberdeen, Maryland, während des
zweiten Weltkriegs (daher das Zitat).
Natürlich hat das obige Interpolationsproblem unendlich viele Lösungen. Die “prominenteste” und “klassischste” sind sicherlich Polynome.
Satz 2.1 Zu vorgegebenen Knoten x0 < x1 < · · · < xn und Daten f0 , . . . , fn gibt es genau
ein Polynom p vom Höchstgrad n, so daß
p (xj ) = fj ,
j = 0, . . . , n.
(2.1)
Der “Standardbeweis” für die obige Aussage verwendet die Darstellung
p(x) =
n
X
j=0
fj
n
Y
x − xk
,
xj − xk
k=0
k6=j
die aber numerisch hochgradig instabil ist. Wir wollen einen anderen, algorithmischen
Weg gehen.
Algorithmus 2.2 (Aitken–Neville)
Gegeben: paarweise verschiedene Knoten x0 , . . . , xn , Daten f0 , . . . , fn und x ∈ R.
1. Setze fj0 (x) = fj , j = 0, . . . , n.
2.1 Interpolation durch Polynome
7
2. Für k = 1, . . . , n berechne
fjk (x) =
xj+k − x k−1
x − xj k−1
fj (x) +
f (x),
xj+k − xj
xj+k − xj j+1
j = 0, . . . , n − k.
(2.2)
3. Ergebnis: f0n (x).
Der Algorithmus von Aitken–Neville ist ein sogenanntes “Pyramidenschema”:
f0
↓
0
f0 (x)
f1
↓
0
f1 (x)
&.
f01 (x)
...
...
fn−1
↓
0
fn−1 (x)
...
..
.
&.
f0n−1 (x)
..
.
&.
f1n−1 (x)
fn
↓
0
fn (x)
&.
1
fn−1
(x)
&.
f0n (x)
Proposition 2.3 (Eigenschaften von Aitken–Neville)
1. Die Abbildung x 7→ f0n (x) ist ein Polynom vom Grad ≤ n.
2. Für k = 0, . . . , n gilt:
fjk (xm ) = fm ,
m = j, . . . , j + k,
(2.3)
insbesondere interpoliert p(x) = f0n (x).
Beweis: Eigenschaft 1. folgt sofort aus (2.2), und (2.3) beweisen wir durch Induktion über
k, wobei der Fall k = 0 genau der Initialisierungschritt im Algorithmus von Aitken-Neville
ist. Sie also (2.3) für ein k ≥ 0 bewiesen. Dann ist, nach (2.2) und Induktionsannahme,
fjk+1 (xj ) =
sowie
fjk+1 (xj+k+1 ) =
xj+k+1 − xj k
f (xj ) = fj ,
xj+k+1 − xj j
xj+k+1 − xj k
f (xj+k+1 ) = fj+k+1 .
xj+k+1 − xj j+1
Für m = j + 1, . . . , j + k haben wir schließlich nach Induktionsannahme daß fjk (xm ) =
k
fj+1
(xm ) = fm und daher
xj+k+1 − xm k
xm − xj
k
fj (xm ) +
fj+1
(xm )
xj+k+1 − xj
xj+k+1 − xj
xj+k+1 − xm + xm − xj
=
fm = fm ,
xj+k+1 − xj
fjk+1 (xm ) =
8
2 WARUM SPLINES?
also gilt (2.3) auch für k + 1, womit der Beweis beendet ist.
Beweis von Satz 2.1: Die Existenz eines Interpolationspolynoms haben wir, wenn auch
etwas umständlich, bewiesen. Die Eindeutigkeit folgt sofort aus der Tatsache, daß jedes
Polynom vom Grad ≤ n mit n + 1 Nullstellen das Nullpolynom sein muß.
Übung 2.1 Zeigen Sie: jedes Polynom vom Grad ≤ n, das an n+1 Punkten verschwindet,
ist das Nullpolynom.
♦
Wenn man also mit Polynomen so gut interpolieren kann, warum verwendet man sie
dann nicht durchgehend? Schauen wir uns ein Beispiel an . . .
Beispiel 2.4 Wir betrachten I = [0, 1], xj = nj , fj = xj (1 − xj ), j = 0, . . . , n. Abbildung 2.1 zeigt diese Funktion und ein Interpolationspolynom vom Grad 30. So weit, so
gut. Stört man jedoch den Wert an der Stelle 21 um 1%, dann verändern sich die Interpolationspolynome vom Grad 10 und 20 dramatisch – dies sind die beiden anderen
Funktionen. Mit anderen Worten: ist auch nur ein Meßwert gestört, dann wirkt sich eine
höhere Anzahl von Meßwerten möglicherweise sogar negativ aus.
Abbildung 2.1: Beispiele für Interpolation einer (gestörten) Parabel. Links die Funktion selbst, dann ein Interpolant vom Grad 30 sowie Interpolanten vom Grad 10 und
20, wobei der Wert im Scheitelpunkt um 1% gestört ist.
Definition 2.5 (Der Interpolationsoperator und seine Norm)
Seien x0 , . . . , xn ∈ I ⊂ R, I kompakt gegeben.
1. Der lineare Operator Ln : C(I) → Πn , definiert durch
Ln f (xj ) = f (xj ) ,
j = 0, . . . , n,
heißt der Interpolationsoperator bezüglich x0 , . . . , xn .
2. Die Norm eines linearen Operators L : X → Y zwischen zwei Banachräumen X
und Y ist definiert als
kLk = sup kLf kY .
kf kX =1
2.1 Interpolation durch Polynome
9
3. Auf C(I) wählen wir die Norm
kf k∞ = max |f (x)| .
x∈I
4. Für einen Operator L : C(I) → C(I), insbesondere für Ln , wählen wir
kLf k∞
f ∈C(I) kf k∞
kLk∞ = sup
Der folgende Satz (ohne Beweis) zeigt, daß die Wahl der Interpolationspunkte die
Norm des Interpolationsoperators stark beeinflußt.
Satz 2.6 (Normen von polynomialen Interpolationsoperatoren)
Sei I = [−1, 1].
1. Wählt man die Knoten äquidistant, d.h. setzt man
xj =
2j − n
,
n
j = 0, . . . , n,
dann gibt es eine von n unabhängige Konstante C > 0, so daß
kLn k∞ ≥ C en/2 ,
n ∈ N0 .
(2.4)
2. Wählt man die Knoten als Tschebyscheff–Knoten, d.h. setzt man
xj = cos
(2j − 1)π
,
2n
j = 0, . . . , n,
dann ist
kLn k∞ ≤
2
log n + 4,
π
n ∈ N0 .
(2.5)
Definition 2.7 Die Zahlen λn = kLn k∞ bezeichnet man auch als Lebesguekonstanten.
Korollar 2.8 (Verhalten der Interpolation)
1. Bei der Wahl äquidistanter Knoten divergiert die Folge der Interpolationspolynome
Ln f , n ∈ N0 , auch für “brave” Funktionen (Runge–Beispiel).
2. Wählt man Tschebyscheff–Knoten, dann konvergiert die Folge Ln f , n ∈ N0 , für alle
f ∈ C 1 [−1, 1].
10
2 WARUM SPLINES?
Beweis: Die zweite Aussage beweist man, indem man die polynomiale Bestapproximation
verwendet, d.h. man definiert für f ∈ C(I) die Zahlen
En (f ) = min kf − pk∞
p∈Πn
und erhält
kf − Ln f k∞ ≤ (1 + λn ) En (f ).
(2.6)
Außerdem ergibt sich aus den Jackson–Sätzen der Approximationstheorie, daß
f ∈ C 1 [−1, 1]
⇒
lim n En (f ) = 0.
n→∞
Kombiniert man diese beiden Gleichungen, dann ist, im Falle der Tschebyscheff–Knoten
2
lim kf − Ln f k∞ ≤ lim 5 + log n En (f ) = 0.
n→∞
n→∞
π
Übung 2.2
1. Beweisen Sie die Abschätzung (2.6).
2. Programmieren Sie den Algorithmus von Aitken–Neville
√ und betrachten Sie das
Verhalten der Interpolanten von x 7→ |x| und x 7→ 1 + x auf [−1, 1] bezüglich
äquidistanter Knoten und Tschebyscheff–Knoten.
♦
Ein weiterer Nachteil der Polynome ist ihre Globalität: ändert man einen Interpolationswert ab, so verändert sich die gesamte Kurve und oftmals (siehe Beispiel 2.4) wirkt sich
das auch noch umso stärker aus, je weiter man von diesem Interpolationspunkt entfernt
ist.
2.2
Stückweise polynomiale Interpolation
Nun kann man oftmals die Interpolationspunkte nicht frei wählen, sondern sie stammen aus einem Meßprozeß und sind dann möglicherweise auch noch äquidistant. Es gibt
aber einen ganz einfachen Interpolationsoperator, der nicht nur die optimale Norm 1
hat, sondern der auch noch gleichmäßig konvergiert, solange nur die Interpolationspunkte
gleichmäßig verteilt sind.
Übung 2.3 Zeigen Sie: ist L : C(I) → C(I) ein Interpolationsoperator, dann ist kLk∞ ≥
1.
♦
2.2 Stückweise polynomiale Interpolation
11
Definition 2.9 Es sei I = [a, b] ⊂ R ein kompaktes Intervall und
a = x0 < x1 < · · · < xn−1 < xn = b
eine geordnete Knotenmenge. Der stückweise lineare Interpolant S1 f zu f ∈ C(I) bezüglich
der Knotenmenge x0 , . . . , xn ist definiert als
xj+1 − x
x − xj
S1 f (x) =
f (xj ) +
f (xj+1 ) ,
x ∈ [xj , xj + 1] , j = 0, . . . , n − 1.
xj+1 − xj
xj+1 − xj
(2.7)
Proposition 2.10 (Eigenschaften von S1 )
1. Der Interpolant S1 f ist eine stückweise affine stetige Funktion.
2. kS1 k∞ = 1.
3. Ist xnj : j = 0, . . . , n n∈N eine Folge von Knotenmengen mit xn0 = a, xnn = b,
0
n ∈ N0 und
lim max (xj+1 − xj ) = 0,
n→∞ j=0,...,n−1
dann konvergieren die zugehörigen Interpolationsoperatoren S1n f gleichmäßig gegen
f für jedes f ∈ C(I).
Beweis: Die erste Aussage ist trivial, die zweite folgt aus
|S1 f (x)| ≤ max |f (xj )| ≤ max |f (x)|
j=0,...,n
x∈I
und S1 1 ≡ 1. Für die dritte Aussage benutzt man schließlich die gleichmäßige Stetigkeit
von f .
Proposition 2.10 zeigt, daß der stückweise lineare Interpolant wesentlich “bräver” als
das Interpolationspolynom ist, nur ist die resultierende Funktion leider gerade mal stetig
und nicht besonders ästhetisch. Also zieht man sich auf stückweise polynomiale Funktionen
zurück und fordert zusätzlich noch Differenzierbarkeit.
Definition 2.11 Es sei I = [a, b] ⊂ R ein kompaktes Intervall und
a = x0 < x1 · · · < xn−1 < xn = b
eine geordnete Knotenmenge. Eine Funktion f : I → R heißt (polynomialer) Spline der
Ordnung m und der Glattheit k bezüglich der Knotenmenge x0 , . . . , xn wenn
1. f ∈ C k (I),
2. die Einschränkung von f auf die offenen Intervalle (xj , xj+1 ), j = 0, . . . , n − 1, ist
ein Polynom vom Höchstgrad m.
Beispiel 2.12 Die Interpolationsfunktion S1 f ist ein Spline der Ordnung 1 und der Glattheit 0.
Wir werden später sowohl die Existenz von Splines wie auch einige ihrer Interpolationsund Approximationseigenschaften herleiten.
12
2 WARUM SPLINES?
2.3
Minimalität und Namensgebung
Woher kommt aber nun der Name “Spline” für diese Funktionen? Ist er ein Akronym,
beispielsweise für “Stückweise polynomiale lineare Iterpolationsoperatoren mit (guten)
numerischen Eigenschaften” (immerhin war Schoenberg deutschstämmig)? Natürlich nicht!
Ein Spline ist ein Kurvenlineal, das im Schiffbau schon lange verwendet wurde. Hierbei
wird ein schmaler Metallstreifen so ausgerichtet, daß er vorgegebe Knoten passiert und
damit eine glatte (nicht knicken!) interpolierende Kurve bildet. Die Physik dahinter ist,
daß der Metallstreifen, faul wie er ist, sich so formt, daß die Biegeenergie minimiert wird.
Eine Näherung für die Biegeenergie einer Funktion f ∈ C 2 (I) ist die Halbnorm
sZ
(f 00 (x))2 dx.
|f |2,2 =
(2.8)
I
Und diese Näherung, bzw. ihre “physikalische” Interpretation ist gerade der Grund für
die Namensgebung.
Satz 2.13 Es sei I = [a, b] ⊂ R ein kompaktes Intervall und
a = x0 < x1 < · · · < xn−1 < xn = b
eine geordnete Knotenmenge. Zu beliebigem f ∈ C 2 (I) sei S3,2 f ein Spline der Ordnung
3 mit Glattheit 2, der
f (xj ) = S3,2 f (xj ) ,
j = 0, . . . , n
(2.9)
und
(S3,2 f )00 (x0 ) = (S3,2 f )00 (xn ) = 0
(2.10)
|f |2,2 ≥ |S3,2 f |2,2 .
(2.11)
erfüllt. Dann gilt
Bemerkung 2.14 (Kubische Splines und Minimalität)
1. Ein Spline der Ordnung 3 heißt kubischer Spline.
2. Der kubische Spline der Ordnung 3 und Glattheit 2, der (2.10) erfüllt, heißt natürlicher Spline.
3. Natürlich sind Splines der Ordnung m nur bis zur Glattheit m − 1 interessant –
ansonsten wären sie ja Polynome.
4. Satz 2.13 sagt also, daß der interpolierende natürliche Spline (sofern es ihn gibt)
unter allen C 2 –Lösungen eines Interpolationsproblems die geringste “Biegeenergie”
im Sinne von (2.8) besitzt.
5. In [7] findet man die folgende Aussage:
2.3 Minimalität und Namensgebung
13
Die Extremaleigenschaft des interpolierenden Splines wird häufig für die
große praktische Nützlichkeit der Splines verantwortlich gemacht. Dies ist
jedoch glatter “Volksbetrug” . . ..
Beweis von Satz 2.13: Wir beginnen mit
Z
2
2
|f − S3,2 f |2,2 =
f 00 (x) − (S3,2 f )00 (x) dx
ZI
2
2
=
(f 00 (x)) − 2f 00 (x)(S3,2 f )00 (x) + (S3,2 f )00 (x) dx
I
Z
2
= |f |2,2 − 2
f 00 (x) − (S3,2 f )00 (x) (S3,2 f )00 (x) dx − |S3,2 f |22,2 . (2.12)
I
Nun zerlegen wir den mittleren Term von (2.12) in
x
n−1 Zj+1
X
j=0 x
j
f 00 (x) − (S3,2 f )00 (x) (S3,2 f )00 (x) dx.
Da auf jedem der Intervalle (xj , xj+1 ) der Spline ein Polynom vom Grad 3 ist, ist er dort
unendlich oft differenzierbar und erhalten mit partieller Integration für j = 0, . . . , n − 1
x
Zj+1
f 00 (x) − (S3,2 f )00 (x) (S3,2 f )00 (x) dx
xj
x
Zj+1
xj+1
0
00
0
f 0 (x) − (S3,2 f )0 (x) (S3,2 f )(3) (x) dx
−
f (x) − (S3,2 f ) (x) (S3,2 f ) (x)
=
xj
xj
xj+1
xj+1
− (f (x) − (S3,2 f (x))) (S3,2 f )(3) (x)
f 0 (x) − (S3,2 f )0 (x) (S3,2 f )00 (x)
=
xj
xj
+
x
Zj+1
(f (x) − S3,2 f (x)) (S3,2 f )(4) (x) dx.
(2.13)
xj
Nun verschwindet der zweite Term in (2.13) wegen (2.9) und der dritte Term da (S3,2 f )(4) =
0. Also ist
Z
f 00 (x) − (S3,2 f )00 (x) (S3,2 f )00 (x) dx
I
=
x
n−1 Zj+1
X
j=0 x
j
=
n−1
X
j=0
f 00 (x) − (S3,2 f )00 (x) (S3,2 f )00 (x) dx
xj+1
f 0 (x) − (S3,2 f )0 (x) (S3,2 f )00 (x)
xj
= − f 0 (x0 ) − (S3,2 f )0 (x0 ) (S3,2 f )00 (x0 ) + f 0 (xn ) − (S3,2 f )0 (xn ) (S3,2 f )00 (xn ),
14
2 WARUM SPLINES?
was wegen (2.10) verschwindet. Also wird (2.12) zu
0 ≤ |f − S3,2 f |22,2 = |f |22,2 − |S3,2 f |22,2 ,
oder eben (2.11).
Übung 2.4 Zeigen Sie, daß für n ≥ 2 der natürliche Spline die eindeutige Minimallösung
im Sinne von Satz 2.13 ist, d.h. gilt |f |2,2 = |S3,2 f |2,2 , dann ist f = S3,2 f .
♦
15
Grundlagenforschung betreibe ich,
wenn ich nicht weiß, was ich tue
Wernher von Braun
3
Bézierflächen
Bézierflächen bilden eine wichtige Grundlage für das Verständnis und die Untersuchung
von Splines.
3.1
Baryzentrische Koordinaten
Wir beginnen mit einem wichtigen geometrischen Konzept, nämlich mit dem Begriff der
baryzentrischen Koordinaten im Rd . Dazu ein bißchen Notation. Für eine endliche Menge
V := {vj : j = 0, . . . , n} ⊂ Rd bezeichnen wir mit
( n
)
n
X
X
[V] = [vj : j = 0, . . . , n] =
uj vj : uj ≥ 0,
uj = 1 ⊂ Rd
(3.1)
j=0
j=0
die konvexe Hülle von V und mit
hVi = hvj : j = 0, . . . , ni =
( n
X
uj vj :
j=0
n
X
)
uj = 1
⊂ Rd
(3.2)
j=0
die affine Hülle von V.
Die Punkte vj , j = 0, . . . , n, befinden sich in allgemeiner Position wenn die Vektoren
yj = vj − v0 ,
j = 1, . . . , n,
linear unabhängig sind (das bedeutet insbesondere daß n ≤ d). Ist außerdem n = d, dann
heißt das Simplex [V] nichtdegeneriert.
Lemma 3.1 Für V = {vj : j = 0, . . . , d} sind die folgenden Bedingungen äquivalent.
1. [V] ist nichtdegeneriert.
2. hVi = Rd .
3. die Determinante
1
τ (V) = v0
. . . 1 =
. . . vd 1 . . . 1 v0,1 . . . vd,1 .. . .
. . .. .
v0,d . . . vd,d 16
3 BÉZIERFLÄCHEN
der Matrix
1 ... 1
v 0 . . . vd
∈ Rd+1×d+1
ist nicht Null.
Beweis: 1 ⇒ 2: nach der Annahme kann jedes x ∈ Rd (eindeutig) geschrieben werden
als
d
X
x = v0 +
aj (vj − v0 ) = (1 − a1 − · · · − ad ) v0 + a1 v1 + · · · + ad vd
j=1
und mit
u0 = 1 −
d
X
aj ,
uj = aj , j = 1, . . . , d,
j=1
erhält man die gewünschte Darstellung.
2 ⇒ 3: sei
d
X
x=
uj vj ∈ hVi ,
j=0
dann sind die Koeffizienten u0 , . . . , ud Lösungen des linearen Gleichungssystems


u0
1 . . . 1  .. 
1
.
 . =
v 0 . . . vd
x
ud
Damit dieses Gleichungssystem für alle x ∈ Rd lösbar ist, muß die Matrix von Null
verschiedene Determinante haben.
3 ⇒ 1: da, nach Spaltenumformungen,
1
0
...
0
= v1 − v0 . . . vd − v0 ,
0 6= τ (V) = v0 v1 − v0 . . . vd − v0 müssen die Vektoren linear unabhängig sein.
Ist n < d und sind Punkte v0 , . . . , vn gegeben, so können diese natürlich kein d–
dimensionales Simplex mehr aufspannen. Man spricht in diesem Fall dann von allgemeiner Lage, wenn [vj : j = 0, . . . , n] wenigstens noch ein n–dimensionales Simplex ist oder,
äquivalent, wenn es eine Matrix A ∈ Rd×n mit Rang n gibt, so daß
hvj : j = 0, . . . , ni = v0 + A Rn .
Diese Situation wird später bei den multivariaten Splines gelegentlich auftreten.
Nehmen wir also an, daß d + 1 Punkte vj , j = 0, . . . , d, in allgemeiner Lage gegeben
seien und beginnen wir mit dem Fall d = 1. Dann haben wir also zwei Punkte v0 < v1 ∈ R
3.1 Baryzentrische Koordinaten
17
und wir betrachten einen Punkt t ∈ [v0 , v1 ]. Der Punkt t teilt das Intervall [v0 , v1 ] im
Verhältnis t − v0 : v1 − t und es gilt die Identität
t=
v1 − t
t − v0
v0 +
v1 ,
v1 − v0
v1 − v0
denn
v1 − t
t − v0
v1 v0 − tv0 + tv1 − v1 v0
v1 − v0
v0 +
v1 =
=t
= t.
v1 − v0
v1 − v0
v1 − v0
v1 − v0
Außerdem ist
v1 − t
t − v0
+
=1
v1 − v0 v1 − v0
und die beiden Werte sind genau dann nichtnegativ, wenn t ∈ [v0 , v1 ].
Definition 3.2 Sei V = {vj : j = 0, . . . , d} ⊂ Rd die Eckenmenge des nichtentarteten
Simplex ∆ = [V]. Die baryzentrischen Koordinaten eines Punktes x ∈ Rd bezüglich ∆
sind der Vektor
u (x|∆) = (uj (x|∆) : j = 0, . . . , d) ∈ Rd+1 ,
so daß
x=
d
X
uj (x|∆) vj ,
j=0
d
X
uj (x|∆) = 1.
(3.3)
j=0
Wieder sind die baryzentrischen Koordinaten Lösungen des Gleichungssystems
1 ... 1
1
u (x|∆) =
(3.4)
v 0 . . . vd
x
und die Kramer’sche Regel liefert
uj (x|∆) =
wobei
τj (x|V) = τj (x|V)
,
τ (V)
j = 0, . . . , d,
1 ...
1
1
1
v0,1 . . . vj−1,1 x1 vj+1,1
.. . .
..
..
..
.
.
.
.
.
v0,d . . . vj−1,d xd vj+1,d
Bemerkung 3.3 Die baryzentrischen Koordinaten sind
... 1
. . . vd,1
.
..
. ..
. . . vd,d
(3.5)
1. affine Polynome in x.
2. Fundamentallösungen des Interpolationsproblems p(vj ) = yj , j = 0, . . . , d, d.h., es
gilt
uj (vk |∆) = δjk ,
j, k = 0, . . . , d.
(3.6)
18
3 BÉZIERFLÄCHEN
Aus Gleichung (3.5) folgt aber auch die geometrische Interpretation der baryzentrischen Koordinaten: da nämlich τ (V) das (vorzeichenbehaftete) Volumen des Simplex ∆
ist und τj (x|V) demzufolge das Volumen des Teilsimplex [v0 , . . . , vj−1 , x, vj+1 , . . . , vd ], sind
also die baryzentrischen Koordinaten nichts anderes als die Volumenanteile des jeweiligen
Subsimplex. Daher auch der Name als “Schwerpunktskoordinaten”.
Wir werden in Zukunft immer von nichtentarteten Simplizes ∆ ⊂ Rd und der zugehörigen Eckenmenge V ⊂ Rd sprechen, wobei wir immer annehmen, daß die Elemente
der Eckenmenge in allgemeiner Lage sind.
3.2
Der Algorithmus von de Casteljau
Wir wollen nun Flächen modellieren, die über Simplizes parametrisiert sind, also Abbildungen p : ∆ → RN , wobei ∆ ⊂ Rd ein nichtentartetes Simplex mit Eckenmenge V und
N ≥ 1 egal ist. “Modellieren” heißt hierbei, daß die Fläche durch eine endliche Anzahl
von Koeffizienten beschrieben wird, die ein Anwender festlegen und modifizieren kann.
Beispiel 3.4 Seien c0 , . . . , cn irgendwelche Punkte im RN . Dann ist
p(x) =
n
X
cj xj ,
x ∈ [v0 , v1 ]
j=0
eine (polynomiale) Kurve, die durch die “Kontrollpunkte” c0 , . . . , cn festgelegt ist.
Der Raum RN , in dem die Kontrollpunkte liegen, ist eigentlich irrelevant: durch separate
Behandlung der einzelnen Koordinaten der Kurve


p1 (x)


..
p(x) = 

.
pN (x)
könnte man sich stets auch auf den Fall N = 1 beschränken.
Wir werden gleich ein einfaches Verfahren angeben, polynomiale Flächen zu konstruieren, deren Kontrollpunkte auch noch geometrische Information bieten. Doch zuerst etwas
Terminologie.
Definition 3.5 Ein Vektor α = (α0 , . . . , αd ) ∈ Nd+1
von nichtnegativen ganzen Zahlen
0
heißt ein Multiindex. Unter der Länge von α verstehen wir die Zahl
|α| =
d
X
αj .
j=0
Alle (homogenen) Multiindizes der Länge n ∈ N0 werden zusammengefaßt in
Γn = α ∈ Nd+1
:
|α|
=
n
.
0
(3.7)
Mit ej ∈ Γ1 , j = 0, . . . , d, bezeichnen wir die Einheitsvektoren ej,k = δjk , j, k = 0, . . . , d.
3.3 Bézierflächen
19
Algorithmus 3.6 (de Casteljau)
Gegeben: Kontrollpunkte cα , α ∈ Γn , und x ∈ ∆.
1. Bestimme u (x|∆).
2. Setze c0α (x) = cα , α ∈ Γn .
3. Für k = 1, . . . , n setze
ckα (x)
=
d
X
uj (x|∆) ck−1
α+ej (x),
α ∈ Γn−k .
(3.8)
j=0
4. Ergebnis: p(x) = cn0 (x).
Bemerkung 3.7
1. Jeder Schritt
h im Algorithmus von
i de Casteljau unterteilt jeden der d–dimensionalen
k−1
Simplizes cα+ej : j = 0, . . . , d , α ∈ Γn−k in genau derselben Weise, wie der Punkt
x ∈ ∆ das Simplex ∆ unterteilt.
h
i
2. Manche der Simplizes ck−1
:
j
=
0,
.
.
.
,
d
können sehr wohl degeneriert sein – für
α+ej
die Bestimmung des “Schwerpunkts” mittels u (x|∆) ist das vollkommen irrelevant.
3. Man kann jeden Schritt des Algorithmus auch als eine lineare Interpolation ansehen,
siehe auch Bemerkung 3.3.
4. Der Algorithmus von des Casteljau ist eine Verallgemeinerung von Kegelschnittkonstruktionen, die auf Steiner zurückgehen.
3.3
Bézierflächen
Als nächstes zeigen wir, daß der Algorithmus von de Casteljau polynomiale Flächen vom
Grad n erzeugt, die man sogar explizit angeben kann.
Definition 3.8
1. Für einen Multiindex α ∈ Nd+1
definiert man den Multinomialkoeffizienten
0
|α|
|α|!
=
,
α
α0 ! · · · αd !
und setzt diese auf Zd+1 fort, indem man den Multinomialkoeffizient auf Null setzt,
wenn α eine negative Komponente enthält.
20
3 BÉZIERFLÄCHEN
Abbildung 3.1: Der Algorithmus von de Casteljau für d = 1 und die dabei enstehende
Kurve
2. Die Bernstein–Bézier–Basispolynome sind definiert als
|α| α
|α|!
u (x|∆) =
Bα (x) =
uα0 (x|∆) · · · uαd d (x|∆) ,
α
α0 ! · · · αd ! 0
α ∈ Nd+1
0 . (3.9)
3. Konvention: Bα ist definiert für α ∈ Zd+1 wobei Bα ≡ 0 falls α 6∈ Nd+1
0 .
Übung 3.1 Zeigen Sie: das Polynom Bα nimmt sein Maximum an der Stelle mit den
baryzentrischen Koordinaten α/|α| an.
♦
Übung 3.2 Zeigen Sie: die Basispolynome bilden eine nichtnegative Teilung der Eins,
d.h.,
X
Bα ≡ 1.
α∈Γn
♦
Lemma 3.9 (Rekursionsformel für die Basispolynome)
Für α ∈ Nd+1
0 , α 6= 0, gilt
Bα (x) =
d
X
j=0
uj (x|∆) Bα−ej (x).
(3.10)
3.3 Bézierflächen
21
Beweis: Folgt sofort aus
X
d
d
X
αj |α|
|α|
(|α| − 1)!
=
=
α
|α| α
α0 ! · · · αj−1 ! (αj − 1)!αj+1 · · · αd !
j=0
j=0
αj >0
αj >0
d X
=
j=0
|α| − 1
α − ej
Satz 3.10 (Darstellung für Bézier–Flächen)
Für k = 0, . . . , n und α ∈ Γn−k gilt
X
ckα (x) =
cα+β Bβ (x),
(3.11)
β∈Γk
also insbesondere für k = n
p(x) = cn0 (x) =
X
cα Bα (x)
(3.12)
α∈Γn
Definition 3.11 Wir bezeichnen mit RN (Γn ) die Menge
RN (Γn ) = (cα : α ∈ Γn ) : cα ∈ RN , α ∈ Γn
und schreiben, für c ∈ RN (Γn ),
Bn c :=
X
cα Bα (x)
α∈Γn
für die zugehörige Bézierfläche.
Beweis von Satz 3.10: Induktion über k. Da B0 ≡ 1 ist der Fall k = 0 klar. Sei also
(3.11) für ein k ≥ 0 bewiesen. Dann gilt für α ∈ Γn−k−1 nach (3.8), unter Verwendung
der Induktionshypothese und mit (3.10)
ck+1
α (x) =
d
X
uj (x|∆) ckα+ej (x) =
j=0
=
d
X
=
uj (x|∆)
j=0
X
uj (x|∆) cα+β Bβ−ej (x) =
j=0 β∈Γk+1
X
d
X
X
cα+ej +β Bβ (x)
β∈Γk
X
β∈Γk+1
cα+β
d
X
uj (x|∆) Bβ−ej (x)
j=0
cα+β Bβ (x).
β∈Γk+1
Als nächstes stellen wir ein paar wichtige Eigenschaften der Bézierfläche Bn c zusammen, die mehr oder weniger direkt aus dem Algorithmus von de Casteljau folgen:
22
3 BÉZIERFLÄCHEN
Convex hull property: die Fläche liegt innerhalb der konvexen Hülle des Kontrollnetzes,
Bn c (∆) ⊂ [cα : α ∈ Γn ] .
(3.13)
Endpoint interpolation: die Fläche interpoliert in der Eckenmenge V,
Bn c (vj ) = cnej .
(3.14)
Beweis: (3.13) ergibt sich, da nach (3.8) für alle x ∈ ∆, k = 1, . . . , n und α ∈ Γn−k
ckα (x) ∈ ck−1
β (x) : β ∈ Γn−k+1 ,
also
Bn c(x) ∈ cn−1
α (x) : α ∈ Γ1 ⊆ · · · ⊆ [cα : α ∈ Γn ] .
(3.14) folgt sofort aus der Tatsache, daß uj (vk |∆) = δjk , j, k = 0, . . . , d, und daher
Bn c (vj ) = cn0 (vj ) = cn−1
ej (vj ) = · · · = cnej .
Lemma 3.12 Die Bernstein–Bézier–Basispolynome bilden eine Basis des Vektorraums
Πn aller Polynome vom Totalgrad höchstens n.
Beweis: Da die baryzentrischen Koordinaten Polynome
vom Totalgrad 1 sind, ist natürn+d
lich Bα ∈ Πn , α ∈ Γn . Nachdem außerdem #Γn = d = dim Πn , genügt es, die lineare
Unabhängigkeit der Basispolynome nachzuweisen, was wir per Induktion über n ∈ N0 tun
werden. Der Fall n = 0 ist klar, da B0 = 1 nicht die Nullfunktion und damit trivialerweise
linear unabhängig ist. Nehmen wir also an, wir hätten Lemma 3.12 für ein n ≥ 0 bewiesen
und wählen wir c ∈ R (Γn+1 ) so, daß für alle x ∈ ∆
0 = Bn+1 c(x) = cn+1
(x) .
0
Wir zeigen jetzt, daß c dann der Nullvektor sein muß. Dazu nehmen wir uns die niederdimensionalen Seiten
∆k = [vj : j = 0, . . . , k] = {x ∈ ∆ : uk+1 (x|∆) = · · · = ud (x|∆) = 0} ,
k = 0, . . . , d,
vor und beweisen induktiv über k = 0, . . . , d, daß
cα = 0,
α ∈ {β ∈ Γn+1 : βk+1 = · · · = βd = 0} .
(3.15)
Der Fall k = 0 ist nichts anderes als die Endpunkt–Interpolation (3.14). Um von k − 1
nach k zu kommen wählen wir x ∈ ∆k und erhalten
X
Bn+1 c(x) =
cα Bα .
(3.16)
αk+1 =···=αd =0
3.4 Ableitungen von Bézierflächen
23
Da ∆k−1 ⊂ ∆k ergibt sich nach Induktionsannahme außerdem, daß cα = 0, αk = · · · =
αd = 0, also wird (3.16) zu
X
Bn+1 c =
cα Bα
α∈Γm , αk >0
αk+1 =···=αd =0
X
= (n + 1)uk (x|∆)
α∈Γm , αk >0
αk+1 =···=αd =0
=
X
α∈Γn
αk+1 =···=αd =0
cα
Bα−ek
αk
cα+ek
Bα .
αk + 1
Auf diesen Ausdruck können wir schließlich die Induktion über n anwenden was uns (3.15)
liefert und damit den Beweis vervollständigt.
Übung 3.3 Beweisen Sie die Graderhöhungsformel: definiert man, für c ∈ RN (Γn ), ein
Kontrollpolyeder b
c ∈ RN (Γn+1 ) durch
d
X
βj
b
cβ =
cβ−ej ,
n+1
j=0
β ∈ Γn+1 ,
♦
dann ist Bn c = Bn+1b
c.
3.4
Ableitungen von Bézierflächen
Nun wenden wir uns den Richtungsableitungen von Bézierflächen zu, die uns, wie wir
sehen werden, geometrische Information liefern werden.
Definition 3.13 Ein Vektor y ∈ Rd+1 heißt (baryzentrische) Richtung, wenn y0 + · · · +
yd = 0. Die Richtungsableitung Dy entlang der baryzentrischen Richtung y ist für f ∈
C 1 (∆) definiert als
d
X
∂f
.
(3.17)
Dy f =
yj
∂uj (·|∆)
j=0
Für y ∈ Rd gilt entsprechend
Dy f =
d
X
j=1
yj
∂f
.
∂xj
(3.18)
Bemerkung 3.14 Da
xj =
d
X
k=0
uk (·|∆) vk,j ,
d.h.
∂xj
= vk,j
∂uk (·|∆)
24
3 BÉZIERFLÄCHEN
ist
d
d
X ∂f
X
∂f
∂xk
∂f
=
=
vj,k
= vjT ∇f = Dvj f
∂uj (·|∆) k=1 ∂xk ∂uj (·|∆) k=1
∂xk
(3.19)
und
Dy f =
d X
d
X
∂f
= y T V ∇f = DyT V f,
∂xk
yj vj,k
j=0 k=1
V = [v0 . . . vd ] ∈ R(d+1)×d .
(3.20)
P
Die Nebenbedingung
yj = 0 kommt daher, daß man y als Differenz zweier baryzentrischer Koordinaten auffaßt, d.h.,
y = u (x|∆) − u (x0 |∆) ,
x, x0 ∈ ∆.
Besondere Richtungsableitungen sind die achsenparallelen Richtungsableitungen Dej −ek ,
j, k = 0, . . . , d. Ihnen entsprechen nach (3.20) im Rd die Richtungen vj − vk . Außerdem
bilden sie eine Basis aller Richtungsableitungen, denn jede baryzentrische Richtung y ∈
Rd+1 kann, für jedes k ∈ {0, . . . , d}, geschrieben werden als
!
d
X
X
X
y=
yj ej =
yj (ej − ek ) + yk +
yj ek .
j=0
j6=k
j6=k
|
{z
=0
}
Auch die Richtungsableitungen von Bernstein–Bézier–Basispolynomen sind sehr einfach.
Lemma 3.15 Für eine baryzentrische Richtung y ∈ Rd+1 und α ∈ Nd0
Dy Bα = |α|
d
X
yj Bα−ej .
(3.21)
j=0
Insbesondere, für j, k = 0, . . . , d,
Dej −ek Bα = |α| Bα−ej − Bα−ek .
Beweis: Da Bα =
|α|
α
(3.22)
uα ist, falls αj > 0
|α|!
|α − ej | α−ej
∂
α−ej
Bα =
αj u
= |α|
u
= |α|Bα−ej ,
∂uj
α0 ! · · · αd !
α − ej
und falls αj = 0 ergibt sich
∂
B
∂uj α
= 0. Damit folgt (3.21) sofort.
Definition 3.16 Für j = 0, . . . , d sind die Shiftoperatoren Ej : RN (Γn ) → RN (Γn−1 )
definiert als
(Ej c)α = cα+ej ,
α ∈ Γn−1 .
3.4 Ableitungen von Bézierflächen
25
Mit diesem Lemma beweisen wir dann die folgende Formel für die Richtungsableitungen von Bézierflächen.
Satz 3.17 Seien y1 , . . . , ym achsenparallele Richtungen, d.h.
yi = eji − eki ,
i = 1, . . . , m.
Dann ist
Dy1 · · · Dym Bn c =
X
n!
(Ej1 − Ek1 ) · · · (Ejm − Ekm ) cα Bα
(n − m)! α∈Γ
(3.23)
n−m
Beweis: Es genügt, den Fall m = 1 zu betrachten, der Rest folgt induktiv. Nun ist nach
Lemma 3.15
X
X
Dej −ek Bn c =
cα Dej −ek Bα =
cα |α| Bα−ej − Bα−ek
α∈Γn
α∈Γn
X
= n
α∈Γn−1
X
cα+ej − cα+ek Bα = n
(Ej − Ek ) cα Bα .
α∈Γn−1
Satz 3.18 Sei y ∈ Rd+1 eine baryzentrische Richtung. Dann ist, für k ≥ 1,
X X
n!
cα+β Bα (·) Bβ (y)
Dyk Bn c =
(n − k)! α∈Γ β∈Γ
n−k
(3.24)
k
Bemerkung 3.19 Die Notation Bβ (y) ist ein leichter Mißbrauch und steht lediglich für
|β| β
Bβ (y) =
y .
β
Beweis von Satz 3.18: Induktion über k. Im Fall k = 1 ergibt sich mit (3.21)
Dy Bn c = n
X
α∈Γn
cα
d
X
yj Bα−ej = n
j=0
d
X X
yj cα+ej Bα = n
α∈Γn−1 j=0
X X
cα+β Bα (·)Bβ (y),
α∈Γn−1 β∈Γ1
für k > 1 ergeben die Induktionshypothese und (3.10)
X
X
Dyk Bn c = Dy Dyk−1 Bn c = Dy
cα+β Bα (·)Bβ (y)
α∈Γn−k+1 β∈Γk−1
=
X
X
cα+β Bβ (y)
=
X
X
yj Bα−ej (·)
j=0
α∈Γn−k+1 β∈Γk−1
n
X
n
X
yj cα+β+ej Bβ (y)Bα (·)
α∈Γn−k β∈Γk−1 j=0
=
X X
α∈Γn−k β∈Γk
cα+β Bα (·)
n
X
j=0
yj Bβ−ej (y) =
X X
α∈Γn−k β∈Γk
cα+β Bα (·)Bβ (y).
26
3 BÉZIERFLÄCHEN
Kombinieren wir (3.24) mit (3.11), dann ergibt sich die folgende Beziehung.
Korollar 3.20 Sei y ∈ Rd+1 eine baryzentrische Richtung. Dann ist, für k ≥ 1,
Dyk Bn c(x) =
X
n!
cn−k
(x) Bβ (y),
(n − k)! β∈Γ β
x ∈ ∆.
(3.25)
k
Insbesondere gilt:
1. Die Zwischenergebnisse des Algorithmus von de Casteljau liefern die entsprechenden
Ableitungen “frei Haus” mit:
Dy Bn c(x) = n
d
X
yj cn−1
ej (x),
x ∈ ∆.
(3.26)
j=0
2. Die Ableitungen an den Ecken von V werden durch die entsprechenden Kontrollpunkte an den Ecken bestimmt:
Dyk Bn c (vj ) =
X
n!
c(n−k)ej +β Bβ (y),
(n − k)! β∈Γ
j = 0, . . . , d.
(3.27)
k
3. Die Tangentialebenen an den Ecken vj werden erzeugt von
(Ek − Ej ) c(n−1)ej = c(n−1)ej +ek − cnej ,
k = 0, . . . , d, k 6= j,
j = 0, . . . , d.
Bemerkung 3.21 (Kontrollpunkte und Ableitungen)
1. Die Richtungsableitungen in Satz 3.17 übernehmen die Rolle der partiellen Ableitungen und sind durch entsprechende Differenzen der Kontrollpunkte definiert.
2. In seinem Buch führt Bézier die Bézierkurven sogar genau auf diese Art ein: Werte
und Ableitungen an den Enden des Intervalls sollen durch Differenzen der Kontrollpunkte definiert sein.
Übung 3.4 Zeigen Sie: es gibt genau ein quadratisches Polynom, das an den Ecken vj ,
j = 0, . . . , d, vorgegebene Werte und Tangentialebenen besitzt.
♦
3.4 Ableitungen von Bézierflächen
Abbildung 3.2: Bestimmung einer Richtungsableitung aus den Zwischenpunkten des
Algorithmus von de Casteljau.
Abbildung 3.3: Ableitungen und Kontrollpunkte in einer und in zwei Variablen. Die
Tangentialebene im Eckpunkt wird durch die Differenz der Kontrollpunkte festgelegt.
27
28
4 BLOSSOMING
Nur selten treffen mathematisches
Können und leicht faßliche
Darstellung zusammen
Egmont Colerus
4
Blossoming
Das sogenannte “Blossoming Principle”, oder auch der Übergang zu “polaren Formen”,
wird später eine wesentliches Hilfsmittel zum Verständnis der univariaten B–Splines und
zur Konstruktion multivariater B–Splines sein.
4.1
Blossoming via de Casteljau
Im Algorithmus von de Casteljau, Algorithmus 3.6, haben wir, um eine vernünftige polynomiale Kurve zu bekommen, in jedem Iterationsschritt die baryzentrischen Koordinaten
desselben Punktes x verwendet. Erlauben wir uns jetzt den Spaß, in jedem Schritt einen
anderen Punkt zu verwenden, so kommen wir zu allgemeineren Abbildungen, die sich aber
als extrem hilfreich erweisen werden.
Algorithmus 4.1 (Modifizierter de Castejau)
Gegeben: c ∈ RN (Γn ) und x1 , . . . , xn ∈ Rd .
1. Setze c0α () = cα , α ∈ Γn .
2. Für k = 1, . . . , n setze
ckα
(x1 , . . . , xk ) =
d
X
uj (xk |∆) ck−1
α+ej (x1 , . . . , xk−1 ) ,
α ∈ Γn−k .
(4.1)
j=0
3. Setze P c (x1 , . . . , xn ) = cn0 (x1 , . . . , xn ).
Als erstes ein paar Eigenschaften der Funktion P c : Rd
n
→ RN .
Proposition 4.2 Die Funktion P c ist eine symmetrische multiaffine Form mit Diagonale
Bn c, d.h.,
1. (Symmetrie) ist σ eine Permutation von {1, . . . , n}, dann gilt
P c xσ(1) , . . . , xσ(n) = P c (x1 , . . . , xn )
(4.2)
4.1 Blossoming via de Casteljau
29
2. (Affinität in jeder Koordinate) sind y0 , . . . , yk in allgemeiner Position und ist xj ∈
∆0 := [y0 , . . . , yk ] für ein j ∈ {1, . . . , n}, dann gilt
P c (x1 , . . . , xn ) =
d
X
uk (xj |∆0 ) P c (x1 , . . . , xj−1 , yk , xj+1 . . . , xn ) .
(4.3)
k=0
3. (Diagonale) für x ∈ ∆
P c (x, . . . , x) = Bn c(x)
(4.4)
Beweis: Da die Menge aller Permutationen von {1, . . . , d} durch die Permutationen
erzeugt wird, die zwei aufeinanderfolgende Elemente vertauschen, genügt es, für j =
1, . . . , n − 1 zu zeigen, daß
P c (x1 , . . . , xn ) = P c (x1 , . . . , xj−1 , xj+1 , xj , xj+2 , . . . , xn )
(4.5)
Nach (4.1) ist (4.5) bewiesen, wenn wir zeigen können, daß
j+1
cj+1
α (x1 , . . . , xj−1 , xj , xj+1 ) = cα (x1 , . . . , xj−1 , xj+1 , xj ) ,
α ∈ Γn−j−1 .
(4.6)
Zu diesem Zweck wenden wir (4.1) zweimal an und erhalten
cj+1
α (x1 , . . . , xj−1 , xj , xj+1 )
d
X
uk (xj+1 |∆) cjα+ek (x1 , . . . , xj−1 , xj )
=
=
k=0
d
X
uk (xj+1 |∆)
k=0
=
=
=
d
X
l=0
d
X
d
X
ul (xj |∆) cj−1
α+ek +el (x1 , . . . , xj−1 )
l=0
ul (xj |∆)
d
X
uk (xj+1 |∆) cj−1
α+ek +el (x1 , . . . , xj−1 )
k=0
ul (xj |∆) cjα+el (x1 , . . . , xj−1 , xj+1 )
l=0
cj+1
α
(x1 , . . . , xj−1 , xj+1 , xj ) ,
und damit (4.6) und (4.5).
Die beiden anderen Eigenschaften folgen unmittelbar: (4.3) ist eine Konsequenz aus der
Tatsache, daß baryzentrische Koordinaten affine Polynome sind (Bemerkung 3.3) und
(4.4) ist wahr, da für x1 = · · · = xn = x Algorithmus 4.1 zum Algorithmus von de
Casteljau mutiert – und der berechnet ja bekanntlich Bn c(x).
Bemerkung 4.3 Multiaffine Formen sind nicht unbedingt ein neues oder gar abwegiges Konzept: wir kennen ja auch eine (eigentlich “die”) alternierende Multilinearform,
nämlich die Determinante einer Matrix.
30
4 BLOSSOMING
Satz 4.4 (Blossoming Principle)
Zu jedem vektorwertigen
Polynom p ∈ ΠN
n gibt es genau eine symmetrische n–affine Form
n
d
N
(Blossom) P : R
→ R und umgekehrt, so daß
x ∈ Rd .
p(x) = P (x, . . . , x) ,
(4.7)
Beweis: Mit Proposition 4.2 ist der Beweis denkbar einfach. Sei also p ∈ ΠN
n , dann
schreiben wir p in seiner Bézierdarstellung als
X
p = Bn c(p) =
cα (p) Bα ,
cα (p) ∈ RN , α ∈ Γn ,
α∈Γn
und Proposition 4.2 zeigt, daß das so definierte P c(p) eine symmetrische n–affine Form
ist.
Umgekehrt sei V Kantenmenge eines nichtentarteten Simplex ∆ ⊂ Rd und P eine
beliebige n–affine Form. Dann ist
X
P (x, . . . , x) =
P (v0 , . . . , v0 , . . . , vd , . . . , vd ) Bα ,
(4.8)
| {z }
| {z }
α∈Γn
α0
αd
was wir durch Induktion über n beweisen werden. Klar ist aber, daß (4.8) zeigt, daß
P (x, . . . , x) ein Polynom vom Grad n ist. Machen wir uns also an (4.8). Im Falle n = 0
ist P () konstant, genauso wie die Polynome vom Grad 0. Sei also (4.8) für ein n ≥ 0
bewiesen und sei P eine (n + 1)–affine Form. Dann ist
P (x, . . . , x) =
| {z }
d
X
n+1
j=0
uj (x|∆) P (vj , x, . . . , x)
| {z }
(4.9)
n
und die Funktionen P j := (vj , ·) sind n–affine Formen, j = 0, . . . , d. Nach der Induktionsannahme gilt also
X
P j (x, . . . , x) =
P j (v0 , . . . , v0 , . . . , vd , . . . , vd ) Bα ,
j = 0, . . . , d,
| {z }
| {z }
α∈Γn
α0
αd
und setzt man das in (4.9) ein, so erhält man mit Hilfe der Rekursionsformel aus Lemma 3.9
P (x, . . . , x) =
| {z }
n+1
=
d
X
uj (x|∆)
j=0
d
X
α∈Γn
uj (x|∆)
j=0
=
d
X
j=0
X
X
α∈Γn
uj (x|∆)
X
α∈Γn
P j (v0 , . . . , v0 , . . . , vd , . . . , vd ) Bα
| {z }
| {z }
α0
αd
P (vj , v0 , . . . , v0 , . . . , vd , . . . , vd ) Bα
| {z }
| {z }
α0
αd
P (v0 , . . . , v0 , . . . , vj , . . . , vj , . . . , vd , . . . , vd ) Bα
| {z }
| {z }
| {z }
α0
αj +1
αd
4.2 Blossoming und Subdivision
=
d
X
uj (x|∆)
j=0
=
X
α∈Γn+1
=
X
α∈Γn+1
31
X
α∈Γn+1
P (v0 , . . . , v0 , . . . , vd , . . . , vd ) Bα−ej
| {z }
| {z }
α0
αd
P (v0 , . . . , v0 , . . . , vd , . . . , vd )
| {z }
| {z }
α0
αd
d
X
uj (x|∆) Bα−ej
j=0
P (v0 , . . . , v0 , . . . , vd , . . . , vd )Bα ,
| {z }
| {z }
α0
αd
und damit ist (4.8) bewiesen.
Bleibt noch die Eindeutigkeit, doch auch hier hilft uns (4.8). Zuerst ist einmal klar,
daß (4.7) jeder n–affinen Form genau ein Polynom zuweist. Seien umgekehrt P , Q zwei
n–affine Formen, so daß
p(x) = P (x, . . . , x) = Q (x, . . . , x) ,
x ∈ Rd .
Nach (4.8) und wegen der Eindeutigkeit der Bézier–Darstellung ist dann aber
P (v0 , . . . , v0 , . . . , vd , . . . , vd ) = Q(v0 , . . . , v0 , . . . , vd , . . . , vd ),
| {z }
| {z }
| {z }
| {z }
α0
αd
α0
α ∈ Γn ,
αd
und damit P = Q.
Definition 4.5 Es seien v0 , . . . , vd ∈ Rd . Wir fassen diese Punkte zu einem Vektor v =
(vj : j = 0, . . . , d) zusammen und verwenden die (multiplikative) Kurzschreibweise
v α = v0α0 · · · vdαd = v0 , . . . , v0 , . . . , vd , . . . , vd .
| {z }
| {z }
α0
αd
Die Identität (4.8), die wir im Beweis von Satz 4.4 verwendet haben, liefert uns auch
eine schöne Formel für die Bézierdarstellung von Polynomen.
Korollar 4.6 Sei V = {v0 , . . . , vd } Eckenmenge eines nichtentarteten Simplex in Rd ,
d n
p ∈ ΠN
→ RN die zugehörige multiaffine Form. Dann gilt
n und P : R
X
p(x) =
P (v α ) Bα (x),
x ∈ Rd .
(4.10)
α∈Γn
4.2
Blossoming und Subdivision
Als nächstes sehen wir, daß der Algorithmus von de Casteljau als ein weiteres “Abfallprodukt” die Einschränkungen von Bézierflächen auf Subsimplizes berechnet.
Proposition 4.7 Zu c ∈ RN (Γn ) sei P die Polarform von p = Bn c. Dann haben, für
x ∈ ∆, die Zwischenpunkte des Algorithmus von de Casteljau die Form
(4.11)
ckβ (x) = P xk , v β ,
β ∈ Γn−k .
32
4 BLOSSOMING
Beweis: Induktion über k. Für k = 0 haben wir, wegen (4.10),
c0β (x) = cβ = P v β ,
β ∈ Γn ,
also (4.11). Für k > 0 verwenden wir (3.8) und die Induktionshypothese und erhalten
(β ∈ Γn−k )
ckβ (x)
=
d
X
uj (x|∆)
k−1
cβ+e
(x)
j
j=0
= P
=
d
X
uj (x|∆) P vj , xk−1 , v β
j=0
d
X
uj (x|∆) vj , x
k−1
,v
β
!
j=0
= P x, xk−1 , v β = P xk , v β .
Definition 4.8 (Subsimplizes und Einschränkung)
1. Sei Ω ⊂ Rd . Eine (endliche oder unendliche) Familie {∆i ⊂ Ω : i ∈ I} von Simplizes
heißt simpliziale Zerlegung von Ω wenn
[
∆i
und
dim (∆j ∩ ∆k ) < d, j 6= k ∈ I.
Ω=
i∈I
2. Für x ∈ ∆ und j = 0, . . . , d sei Vj (x) = x ∪ (V \ {vj }) und ∆j (x) = [Vj (x)] die
zugehörige Komponente der simplizialen Zerlegung.
3. Für x ∈ ∆ ist die Einschränkung einer Bézierfläche Bn c auf eines der Subsimplizes
∆j , j = 0, . . . , d, geschrieben als Bn c|∆j , das Resultat von Algorithmus 3.6 mit
∆ = ∆j auf passende Kontrollpunkte cj ∈ R (Γn ).
Korollar 4.9 Zu x ∈ ∆ und j = 0, . . . , d setze
α
j
cj,α = cα−α
(x),
j ej
α ∈ Γn .
Dann gilt
Bn c|∆j (x) = Bn cj .
(4.12)
Beweis: Sei P die Polarform zu Bn c. Nach (4.10) haben die Kontrollpunkte von Bn c|∆j
die Form
αj−1
αj+1
αj
cj,α = P v0α0 , . . . , vj−1
, xαj , vj+1
(x).
, . . . , vdαd = P xαj , v α−αj ej = cα−α
j ej
Bemerkung 4.10 Durch einmalige Ausführung des Algorithmus von de Casteljau können
alle Kontrollpunkte der Einschränkungen auf ∆j (x) simultan bestimmt werden.
4.3 Blossoming und Ableitungen
33
Abbildung 4.1: Die Kontrollpunkte der beiden Teilkurven über den Algorithmus von
de Casteljau.
4.3
Blossoming und Ableitungen
In diesem Abschnitt werden wir eine wichtige Formel für die Ableitungen eines Polynoms
herleiten, die auf der Polarform basiert.
d
Satz 4.11 Sei y ∈ Rd und p ∈ ΠN
n . Dann ist, für k ≥ 0 und x ∈ R ,
Dyk p(x)
k
X
n!
k−j k
(−1)
P xn−j , (x + y)j .
=
(n − k)! j=0
j
(4.13)
Für baryzentrische Richtungen y ∈ Rd+1 gilt entsprechend
Dyk p(x)
k
X
j n!
k−j k
=
(−1)
P xn−j , x + y T V
.
(n − k)! j=0
j
(4.14)
Korollar 4.12 Sei d = 1 und p ∈ ΠN
n . Dann ist, für k ≥ 0 und x ∈ R,
k
X
n!
k−j k
(−1)
P xn−j , (x + 1)j .
p (x) =
(n − k)! j=0
j
(k)
(4.15)
Beweis von Satz 4.11: Wegen (3.20) sind die beiden Darstellungen (4.13) und (4.14)
äquivalent, weswegen es genügt, (4.13) zu beweisen.
34
4 BLOSSOMING
Abbildung 4.2: Der Algorithmus von de Casteljau zur Bestimmung der Einschränkung auf ein Subsimplex entsprechend (4.12).
Der Trick besteht darin, die Bézierdarstellung bezüglich eines geeigneten Simplex [W] zu
wählen, wobei wir
w0 = x,
w1 = x + y
setzen und w2 , . . . , wd so wählen, daß [W] nichtdegeneriert ist. Sei c ∈ RN (Γn ) das Kontrollpolygon zur Bézierdarstellung von p. Dann ist, unter Verwendung von Satz 3.17, der
Endpunkt–Interpolation und Korollar 4.6
Dyk p(x) = Dwk 1 −w0 p(x) = Dek1 −e0 Bn c (w0 ) =
n!
(E1 − E0 )k c(n−k)e0
(n − k)!
k
X
n!
k−j k
=
(−1)
c(n−k)e0 +(k−j)e0 +je1
(n − k)! j=0
j
k
X
n!
k−j k
(−1)
c(n−j)e0 +je1
=
(n − k)! j=0
j
k
X
n!
k−j k
(−1)
P xn−j , (x + y)j .
=
(n − k)! j=0
j
Bemerkung 4.13 Den Fall k = 1 kann man auch direkt über die Multiaffinität zeigen.
Dazu schreiben wir, für h ≥ 0, den Punkt x + hy “baryzentrisch” als
x + hy = (1 − h) x + h (x + y) .
4.4 Blossoming und glattes Aneinanderkleben
35
Also ist
p (x + hy) = P ((x + hy)n ) = P (1 − h) x + h (x + y), (x + hy)n−1
= (1 − h) P x, (x + hy)n−1 + h P x + y, (x + hy)n−1
..
.
k
X
k j
k−j
j
n−k
=
h (1 − h)k−j ,
P x , (x + y) , (x + hy)
j
j=0
k = 1, . . . , n,
..
.
n
X
=
P x
n−j
j=0
n j
, (x + y)
h (1 − h)n−j
j
j
und
p (x + hy) − p(x) =
n
X
P x
n−j
j
, (x + y)
j=0
n
− P (x )
n j
h (1 − h)n−j .
j
Der Summand mit j = 0 hat aber den Wert Null und damit ist
p(x + hy) − p(x)
h→0
h
n
X
n j−1
n−j
j
n
= lim
P x , (x + y) − P (x )
h (1 − h)n−j
h→0
j
j=1
= lim (1 − h)n−1 n P xn−1 , (x + y) − P (xn ) + O (h)
h→0
= n P xn−1 , (x + y) − P (xn ) .
Dy p(x) = lim
4.4
Blossoming und glattes Aneinanderkleben
Die wesentliche Anwendung des “Blossoming Principle” für die Splines besteht darin, daß
polare Formen es ermöglichen, Aussagen zu machen, wann zwei polynomiale Flächen glatt
aneinanderstoßen.
Definition 4.14 Zu f : Rd → RN ist die (baryzentrische) n–te Ableitung im Punkt
x ∈ ∆ definiert als die symmetrische Multilinearform
n
D f (x) [y1 , . . . , yn ] = Dy1 · · · Dyn f ,
yj ∈ R
d+1
,
d
X
yj,k = 0.
(4.16)
k=0
Lemma 4.15 (Ableitungen)
1. Die Diagonale der Multilinearform Dn [f ] hat die Form
X ∂ nf
(x) Bα (y).
Dn f (x) [y n ] =
∂uα
α∈Γ
n
(4.17)
36
4 BLOSSOMING
2. Gilt für f , g ∈ C n Rd und x ∈ Rd
Dn f (x) [y n ] = Dn g(x) [y n ] ,
y ∈ Rd+1 ,
d
X
yj = 0,
j=0
dann auch
∂ |α| f
∂ |α| g
(x)
=
(x),
∂uα
∂uα
|α| ≤ n.
Beweis: (4.17) folgt mit der üblichen Induktion aus (4.16), da
D
k+1
d
d
X
X ∂ k+1 f
X ∂ k+1 f X
k+1 f (·) y
=
yj
Bα (y) =
yj Bα−ej (y)
∂uα+ej
∂uα j=0
j=0
α∈Γ
α∈Γ
k
k+1
X ∂ k+1 f
Bα (y),
=
∂uα
α∈Γ
k+1
und 2) ergibt sich sofort aus 1) und der linearen Unabhängigkeit der Basispolynome. Definition 4.16
1. Zu Punkten w0 , . . . , wm ∈ Rd , m < d, in allgemeiner Lage schreiben wir
∆W = [wj : j = 0, . . . , m] ⊂ Rd
für das zugehörige m–Simplex und setzen w = (w0 , . . . , wm ).
2. Zwei Funktionen f , g ∈ C n (∆) haben einen glatten Übergang der Ordnung n in
∆W , falls
Dk f (x) = Dk g(x),
k = 0, . . . , n, x ∈ ∆W .
(4.18)
Bemerkung 4.17 Die Identität in (4.18) ist als (globale) Identität von Multilinearformen zu verstehen.
Satz 4.18 (Blossoming und glatte Übergänge)
Seien p, q ∈ ΠN
n und P , Q die zugehörigen polaren Formen. Außerdem sei W die Eckenmenge des m–Simplex ∆W . Dann sind äquivalent:
1. p und q haben einen glatten Übergang der Ordnung k in ∆W .
2. für alle t1 , . . . , tk ∈ Rd gilt
P (t1 , . . . , tk , wα ) = Q (t1 , . . . , tk , wα ) ,
α ∈ Nm+1
, |α| = n − k.
0
(4.19)
4.4 Blossoming und glattes Aneinanderkleben
37
Für unsere Splines werden wir die folgende einfache Form von Satz 4.18 brauchen.
Korollar 4.19 Sei d = 1, p, q, P , Q wie in Satz 4.18 und w ∈ R. Dann haben p und q
genau dann einen glatten Übergang der Ordnung k in w wenn
t1 , . . . , tk ∈ R.
(4.20)
P t1 , . . . , tk , wn−k = Q t1 , . . . , tk , wn−k ,
Beweis von Satz 4.18: Nach Lemma 4.15 ist (4.18) äquivalent zu
D f (x) y j = Dj g(x) y j ,
j
j = 0, . . . , k, y ∈ R
d+1
,
d
X
yj = 0.
(4.21)
j=0
2 ⇒ 1: wegen (4.14) ist
j
s n! X
j−s j
(−1)
P xn−s , x + y T V
(n − j)! s=0
s
j
s n! X
j−s j
=
(−1)
P xn−j , xj−s , x + y T V
(n − j)! s=0
s
X
j
s n! X
j−s j
(−1)
Bα (x|∆W ) P wα , xj−s , x + y T V
=
(n − j)! s=0
s α∈Γ
j
D p(x) y j = Dyj p(x) =
n−j
X
j
s n! X
j−s j
=
(−1)
Bα (x|∆W ) Q wα , xj−s , x + y T V
(n − j)! s=0
s α∈Γ
n−j
j
j
j
= Dy q(x) = D q(x) y .
1 ⇒ 2: wir schreiben p und q in ihrer Bézierdarstellung als p = Bn cp und q = Bn cq .
Nach Korollar 3.20, insbesondere Gleichung (3.25), wird aus (4.21) die Beziehung
X n−j
X n−j
n!
n!
cp,β (x)Bβ (y) = Dyj Bn cp (x) = Dyj Bn cq (x) =
c (x)Bβ (y),
(n − j)! β∈Γ
(n − j)! β∈Γ q,β
j
j
(4.22)
die für alle j = 0, . . . , k, y ∈ Rd+1 , y0 + · · · + yd = 0 und x ∈ ∆W gelten muß. Wegen der
linearen Unabhängigkeit der Basispolynome ergibt sich also
n−j
cn−j
p,β (x) = cq,β (x),
β ∈ Γj , j = 0, . . . , k.
Nach Proposition 4.7 heißt dies, daß
X
n−j
cn−j
, vβ =
Bα (x|∆W ) P wα , v β
p,β (x) = P x
α∈Γn−j
q
cn−j
q,β (x)
X
= Q xn−j , v β =
Bα (x|∆W ) Q wα , v β
α∈Γn−j
(4.23)
38
4 BLOSSOMING
also
P wα , v β = Q wα , vβ ,
α ∈ Γn−j , β ∈ Γj , j = 0, . . . , k.
(4.24)
Mit Hilfe der Indentität
P (t1 , . . . , tk , wα ) =
=
d
X
uj1 (t1 |∆) · · · ujk (tk |∆) P (vj1 , . . . , vjk , wα )
j1 =0
d
X
jk =0
d
X
d
X
uj1 (t1 |∆) · · · ujk (tk |∆) P v ej1 +···+ejk , wα
j1 =0
···
···
jk =0
folgt dann (4.19) unmittelbar aus dem Fall j = k in (4.24).
39
Jetzt geht’s lohos . . .
Anonymer Fußballfan
5
Univariate Splines und Interpolation an den Knoten
Das “Zielobjekt” dieses Abschnitts sind Splinekurven, definiert über einem Intervall [a, b] ⊂
R. Zuerst formalisieren wir Definition 2.11.
Definition 5.1 Sei I = [a, b] ⊂ R und T = (t0 , . . . , tn ).
1. T heißt Knotenfolge (für I), falls t0 ≤ t1 ≤ · · · ≤ tn und t0 = a, tn = b.
2. T heißt einfache Knotenfolge, falls t0 < · · · < tn .
3. ∆j := [tj , tj+1 ), j = 0, . . . , n − 1.
4. Den Vektorraum der Splinefunktionen der Ordnung m und der Glattheit k bezüglich
der Knotenmenge T wird mit Sm,k (T ) bezeichnet.
Bemerkung 5.2 Im Zusammenhang mit einer einfachen Knotenfolge T empfiehlt es
sich, den Splineraum Sm,m−1 (T ) zu betrachten. Geringere Differenzierbarkeit wird auf
mehrfache Knoten zurückgeführt werden.
5.1
Interpolation an einfachen Knoten
Wir beschäftigen uns jetzt nochmals mit dem Interpolationsproblem aus Kapitel 2 und
zeigen, daß es dafür immer Lösungen im Splineraum Sm,m−1 (T ) gibt.
Satz 5.3 Sei T ⊂ [a, b] eine einfache Knotenfolge und m, n ≥ 1. Dann gibt es, für alle
n
Y = (y 0 , . . . , y n ) ∈ RN , einen (m − 1)–dimensionalen affinen Raum SIm,m−1 (T ; Y) ⊂
(Sm,m−1 (T ))N von interpolierenden Splines, d.h.,
s (tj |T ) = y j ,
j = 0, . . . , n,
s ∈ SIm,m−1 (T ; Y) .
(5.1)
Bemerkung 5.4 Der “affine” Raum in Satz 5.3 kann auch folgendermaßen interpretiert
werden: es gibt einen (m − 1)–dimensionalen Raum S0m,m−1 (T ), von skalaren Splines, die
das homogene Interpolationsproblem
s (tj |T ) = 0,
lösen und
j = 0, . . . , n,
s ∈ S0m,m−1 (T ) ,
N
SIm,m−1 (T ; Y) = s∗ (·|T ) + S0m,m−1 (T ) ,
wobei s∗ irgendeine Lösung des Interpolationsproblems (5.1) ist.
40
5 UNIVARIATE SPLINES UND INTERPOLATION AN DEN KNOTEN
Korollar 5.5 Der Splineraum Sm,m−1 (T ) hat Dimension m + n.
Beweis: Der interpolierende Spline wird durch n + 1 Interpolationsbedingungen und
m − 1 zusätzliche Freiheitsgrade eindeutig bestimmt.
Definition 5.6 Zu einem Spline s ∈ Sm,m−1 (T ) bezeichnen wir mit
pj = s|(tj ,tj+1 ) ,
j = 0, . . . , n − 1,
die Polynomstücke von s und mit P j , j = 0, . . . , n − 1, die zugehörigen polaren Formen.
Beweis von Satz 5.3: Wir zeigen zuerst, daß p0 und die Interpolationsbedingungen den
interpolierenden Spline eindeutig bestimmen; sei also p0 irgendein Polynom vom Grad m,
so daß p0 (t0 ) = y 0 und p0 (t1 ) = y 1 .
Wir zeigen, induktiv über j = 0, . . . , n − 1, daß dann pj eindeutig festgelegt ist. Der Fall
j = 0 ist trivial. Ansonsten verwenden wir Korollar 4.19, da wegen der Glattheit der
Ordnung m − 1
m−k k
k
P j+1 tm−k
k = 0, . . . , m − 1,
(5.2)
j+1 , tj+2 = P j tj+1 , tj+2 ,
und, wegen der Interpolation,
P j+1 tm
j+2 = pj+1 (tj+2 ) = y j+2 .
(5.3)
Auf der anderen Seite bestimmen (5.2) und (5.3) aber alle Koeffizienten der Bézierdarstellung pj+1 = Bm c (·|∆j+1 ), also auch pj+1 .
Zur Dimension des Lösungsraums: p0 hat m+1 Bézierkoeffizienten bezüglich ∆0 von denen
zwei durch die Endpunktinterpolation festgelegt werden, die anderen m − 1 Koeffizienten
sind frei.
Korollar 5.7 Der natürliche Spline aus Satz 2.13 existiert für jede einfache Knotenfolge.
Beweis: Da m = 3 hat der Splineraum S03,2 (T ) die Dimension m − 1 = 2 und eine Basis,
sagen wir s1 und s2 . Diese beiden Splines können so gewählt werden, daß
s001 (t0 ) = s002 (tn ) = 1,
s001 (tn ) = s002 (t0 ) = 0.
Warum? Wir konstruieren beispielsweise s2 , indem wir wie im Beweis von Satz 5.3 mit
einem Polynom p0 beginnen, das zusätzlich p000 (t0 ) = 0 erfüllt. Wäre dann s002 (tn ) = 0, so
wäre s2 ein natürlicher Spline, der das homogene Interpolationsproblem löst und damit,
nach Satz 2.13, |s2 |2,2 = 0, denn die Nullfunktion ist ebenfalls eine Lösung des homogenen
Problems. Dann wäre s2 aber eine lineare Funktion und damit s2 = 0. Also ist s002 (tn ) 6= 0
und wir können es zu 1 normieren. Entsprechend konstruiert man s1 “von rechts nach
links”.
Ist schließlich s irgendeine Lösung des Interpolationsproblems, so ist
s∗ = s − s00 (t0 ) s1 − s00 (tn ) s2
der natürliche Splineinterpolant.
5.1 Interpolation an einfachen Knoten
41
Bemerkung 5.8 Nach Satz 5.3 lassen die Interpolationsbedingungen m−1 Freiheitsgrade
offen, die man “frei” verteilen kann. Ist nun m = 2r + 1 ungerade, so kann man an jedem
Endpunkt r zusätzliche Bedingungen vorgeben. Beispiele dafür sind
1. (Hermite–Interpolation): für vorgegebene zusätzliche Vektoren y j,k , j = 0, 1, k =
1, . . . , r, soll
s(k) (t0 ) = y 0,k ,
s(k) (tn ) = y 1,k ,
k = 1, . . . , r,
(5.4)
gelten.
2. (Natürliche Randbedingungen):
s(k) (t0 ) = s(k) (tn ) = 0,
k = r + 1, . . . , 2r.
(5.5)
3. (Periodizität): Es gilt y 0 = y n (geschlossene Kurve) und
s(k) (t0 ) = s(k) (tn ) ,
k = 1, . . . , 2r.
(5.6)
Aus Gründen der Einfachheit beschränken wir uns für den Rest dieses Abschnitts auf
N = 1. Das ist natürlich keine Einschränkung: man kann parametrische Kurven ja stets
komponentenweise behandeln.
Definition 5.9 (Splineinterpolanten)
1. Zu f ∈ C[a, b] und einer Knotenfolge T ist der natürliche Splineinterpolant der
Ordnung 2r + 1, geschrieben als S2r+1,2r (f ; T ), definiert durch
S2r+1,2r (f ; T ) (tj ) = f (tj ) ,
j = 0, . . . , n,
(5.7)
und
(j)
(j)
S2r+1,2r (f ; T ) (t0 ) = S2r+1,2r (f ; T ) (tn ) = 0,
j = r + 1, . . . , 2r.
(5.8)
2. Zu f ∈ C r [a, b] und einer Knotenfolge T ist der Hermite–Splineinterpolant der
H
Ordnung 2r + 1, geschrieben als S2r+1,2r
(f ; T ) definiert durch
H
S2r+1,2r
(f ; T ) (tj ) = f (tj ) ,
und
(j)
H
S2r+1,2r
(f ; T ) (t0 ) = f (j) (t0 ) ,
(j)
H
S2r+1,2r
(f ; T ) (tn ) = f (j) (tn ) ,
j = 0, . . . , n,
j = 1, . . . , r.
Dann ergibt sich die folgende Verallgemeinerung von Satz 2.13.
(5.9)
(5.10)
42
5 UNIVARIATE SPLINES UND INTERPOLATION AN DEN KNOTEN
Satz 5.10 (Minimalitätseigenschaften)
Für f ∈ C 2r [a, b] gilt
|S2r+1,2r (f ; T )|r+1,2 ≤ |f |r+1,2
(5.11)
und
H
S2r+1,2r (f ; T )
r+1,2
≤ |f |r+1,2
(5.12)
Beweis: Der Beweis ist fast analog zu dem von Satz 2.13. Wieder verwendet man, für
j = 0, . . . , n − 1, partielle Integration, um zu zeigen, daß
tj+1
Z
(r+1)
f (r+1) (x) − sf
(r+1)
(x) sf (x) dx
tj
=
=
f (r) (x) −
k
X
r−l
(−1)
(r)
sf (x)
f
(r−l)
tj+1
(r+1)
sf (x)
(x) −
−
tj
+(−1)k+1
(r)
(r+2)
f (r) (x) − sf (x) sf (x) dx
tj
(r−l)
sf (x)
l=0
tj+1
Z
tj+1
Z
(r−k)
f (r−k) (x) − sf
tj+1
(r+l+1)
sf
(x)
tj
(r+k+2)
(x) sf
(x) dx,
k = 1, . . . , r
tj
=
r
X
l=0
tj+1
(r−l)
(r+l+1)
(−1)r−l f (r−l) (x) − sf (x) sf
(x)
,
tj
H
(f ; T ) steht. Summation über j
wobei sf entweder für S2r+1,2r (f ; T ) oder für S2r+1,2r
ergibt dann, daß
Z (r+1)
(r+1)
f (r+1) (x) − sf (x) sf (x) dx
I
=
r
X
j=0
(−1)r−j
tn
(r−j)
(r+j+1)
f (r−j) (x) − sf (x) sf
(x) = 0.
t0
Korollar 5.11 Die natürlichen und Hermite–Splineinterpolanten aus Definition 5.9 sind
eindeutig für n ≥ r.
Die obige Einschränkung zeigt uns, daß ein gewisser Zusammenhang zwischen der
Ordnung der Splines und der Mindestanzahl der Knoten bestehen muß, damit die Splineinterpolanten wohldefiniert sind. Diese Mindestforderung ist äquivalent zur eindeutigen
polynomialen Interpolation. Ist aber nicht einmal das Interpolationspolynom vom Grad r
eindeutig (das ja auch ein interpolierender natürlicher Spline ist), dann kann es auch der
Spline nicht sein. Also:
5.1 Interpolation an einfachen Knoten
43
Korollar 5.12 Der natürliche Splineinterpolant ist genau dann eindeutig, wenn n ≥ r.
Beweis von Korollar 5.11: Seien s1 , . . . , s2r eine Basis von S02r+1,2r (T ). Außerdem
definieren wir eine Menge Λ von linearen Funktionalen entweder als
Λ = λ(f ) = f (j) (tk ) : j = r + 1, . . . , 2r, k = 0, n
(5.13)
im Falle natürlicher Randbedingungen oder als
Λ = λ(f ) = f (j) (tk ) : j = 1, . . . , r, k = 0, n
(5.14)
im Falle von Hermite–Randbedingungen. Als nächstes bemerken wir, daß es für jedes
0 6= s ∈ S02r+1,2r (T ) immer ein λ ∈ Λ gibt, so daß λ (s) 6= 0. Ansonsten wäre s eine Lösung
des homogenen Interpolationsproblems mit entsprechenden Randbedingungen, also, nach
Satz 5.10 ergäbe sich |s|r+1,2 = 0 und damit s|[a,b] ∈ Πr . Da aber s (tj ) = 0, j = 0, . . . , n
und n ≥ r, wäre dann aber s = 0. Damit müssen aber die Vektoren


λ1 (sj )


..
Λ (sj ) = 
,
.
λ2r (sj )
j = 1, . . . , 2r,
linear unabhängig sein und damit ist die Matrix MΛ = [λj (sk ) : j, k = 1, . . . , 2r] nichtsingulär. Sei nun s∗ ∈ SI2r+1,2r (T ; Y) also irgendeine Lösung des Interpolationsproblems und
setzt man
−1
(2r)
(r+1)
(2r)
(t0 ) · · · s1 (t0 ) s1
(tn ) · · · s1 (tn )


..
..
..
..
..
..
AN = 

.
.
.
.
.
.
(r+1)
(2r)
(r+1)
(2r)
s2r (t0 ) · · · s2r (t0 ) s2r (tn ) · · · s2r (tn )

(r+1)
s1
sowie
−1
(r)
(r)
s01 (t0 ) · · · s1 (t0 ) s01 (tn ) · · · s1 (tn )


..
..
..
..
...
..
AH = 
 ,
.
.
.
.
.
(r)
(r)
s02r (t0 ) · · · s2r (t0 ) s02r (tn ) · · · s2r (tn )

dann ist

(s∗ )(r+1) (t0 )


..


.


(2r)
∗
 (s ) (t0 ) 


 (s∗ )(r+1) (t ) 
n 



.
.


.

sf = s∗ − [s1 , . . . , s2r ] AN
(s∗ )(2r) (tn )
44
5 UNIVARIATE SPLINES UND INTERPOLATION AN DEN KNOTEN
der Splineinterpolant mit natürlichen Randbedingungen und

(s∗ )0 (t0 ) − y0,1

..

.
 ∗ (r)

∗
 (s ∗) 0 (t0 ) − y0,r
sH
f = s − [s1 , . . . , s2r ] AH 
 (s ) (tn ) − y1,1

..

.
(s∗ )(r) (tn ) − y1,r










der Hermite–Splineinterpolant.
Bemerkung 5.13 Es gibt auch noch die not–a–knot–Bedingung für kubische Splines: die
beiden “Randknoten” t1 und tn−1 sollen keine Knoten sein, d.h. die Einschränkungen des
Splines auf (t0 , t2 ) und (tn−2 , tn ) sind Polynome.
5.2
Eine erste Basis der Splineräume
Wir können nun eine Basis des Splineraums Sm,m−1 angeben.
Definition 5.14 Die Funktion
0
n
(x − x0 )+ =
(x − x0 )n
falls
falls
x < x0 ,
x ≥ x0 ,
n ∈ N, x0 ∈ R,
heißt abgebrochene Potenz der Ordnung n mit Knackpunkt1 (“breakpoint”) x0 .
Satz 5.15 Sei T = {t0 , . . . , tn } eine einfache Knotenfolge. Dann gilt
Sm,m−1 = Πm + span {(· − tj )m : j = 1, . . . , n − 1} .
Beweis: Da dim Πm = m + 1 genügt es, zu zeigen, daß die m + n Funktionen
1, x, . . . , xm , (x − t1 )m , . . . , (x − tn−1 )m
zu Sm,m−1 (T ) gehören und linear unabhängig sind. Das erstere ist trivial; sei also
0=s=p+
n−1
X
aj (· − tj )m .
j=1
Da 0 = s|[t0 ,t1 ] = p folgt p = 0. Außerdem liefert 0 = s|[t1 ,t2 ] = a1 (· − tj )m daß a1 = 0.
Fährt man nun so fort, so ergibt sich aj = 0, j = 1, . . . , n − 1, und damit die lineare
Unabhängigkeit.
Bemerkung 5.16 Die Basis aus Satz 5.15 hat einen großen Nachteil: die Basisfunktionen haben alle sehr großen Träger, was sie numerisch sehr ungeeignet macht.
1
De Boor verwendet den ansprechenderen Begriff “Bruchstelle” in [7].
5.3 Interpolation an Mittelwerten von Knoten
5.3
45
Interpolation an Mittelwerten von Knoten
Es gibt noch einen anderen “natürlichen” Typ von Splineinterpolation. Hierzu interpoliert
man an den Mittelwerten von aufeinanderfolgendenden Knoten.
Definition 5.17 Zu einer Knotenfolge T = {t0 , . . . , tn } und m ∈ N definiert man die
Greville–Abszissen Xm (T ) = {x0 , . . . , xm+n−1 } als
m−1
1 X
tj−k ,
xj =
m k=0
j = 0, . . . , m + n − 1,
wobei t−m+1 = · · · = t−1 = t0 und tn+1 = · · · = tm+n−1 = tn .
Bemerkung 5.18 Wir werden später die Greville–Abszissen in etwas anderer Form definieren. Das hat zu tun mit einem etwas anderen Begriff von “Knotenfolge”.
Das folgende Resultat geben wir vorerst mal ohne Beweis an. Es wird später aus allgemeineren Prinzipien folgern.
Proposition 5.19 Zu jeder Funktion f ∈ C[a, b] existiert ein eindeutig bestimmter Splineinterpolant Lm (f ; T ) ∈ Sm,m−1 so daß
Lm (f ; T ) (xj ) = f (xj ) ,
j = 0, . . . , n + m − 1.
Interessant ist in diesem Zusammenhang die Norm der Splineinterpolanten, bzw. deren
Verhalten.
1. (Übung)
kL1 (· ; T )k∞ = 1.
2. (Marsden 1974)
kL2 (· ; T )k∞ ≤ 2.
3. (de Boor 1975)
kL3 (· ; T )k∞ ≤ 27.
4. (Jia 1988) für m ≥ 19
sup kLm (· ; T )k∞ = ∞.
T
46
6 B–SPLINES
Das bißchen Kopf, das sie noch
haben, zerbrechen sie sich mit
solchem Zeuge
Georg Christoph Lichtenberg
6
B–Splines
Die B–Splines werden uns nun eine “vernünftigere” Basis für beliebige Splineräume liefern,
mit deren Hilfe sich viele wichtige Eigenschaften der Splinefunktionen beschreiben und
ausdrücken lassen. Dazu passen wir nochmals den Begriff der Knotenfolge an die neuen
Gegebenheiten an.
Definition 6.1 Seien n, m > 0.
1. Eine Knotenfolge Tm,n = {t0 , . . . , tn+m+1 } ist eine Teilmenge von R, die die Bedingungen
t0 ≤ t1 ≤ · · · ≤ tn ≤ · · · ≤ tn+m+1
(6.1)
und
tj < tj+m+1 ,
j = 0, . . . , n,
(6.2)
erfüllt.
2. Dasjenige k > 0 für das
tj−1 < tj = · · · = tj+k−1 < tj+k
gilt, heißt Vielfachheit des Knotens tj = · · · = tj+k−1 .
3. Besitzt eine Knotenfolge m + 1–fache Endknoten, d.h., gilt
t0 = · · · = tm ,
tn+1 = · · · = tn+m+1 ,
∗
dann schreiben wir Tm,n
für diese Knotenfolge.
Bemerkung 6.2 Die Gleichungen (6.1) und (6.2) bedeuten, daß die Vielfachheit jedes
Knotens höchstens m + 1 beträgt.
6.1 Der Algorithmus von de Boor
6.1
47
Der Algorithmus von de Boor
Wieder einmal wollen wir das “Objekt der Begierde”, in diesem Fall also die Splinefunktionen, algorithmisch einführen. Auch diesmal werden wir eine Verallgemeinerung des
Algorithmus von de Casteljau definieren, wobei der Trick darin bestehen wird, in jedem
Schritt die baryzentrischen Koordinaten bezüglich unterschiedlicher passend gewählter
Bezugsintervalle zu verwenden. Diese Bezugsintervalle sind
∆kj = [tj , tj+k ]
(6.3)
Algorithmus 6.3 (de Boor)
Gegeben: Knotenfolge Tm,n , Kontrollpunkte d0 , . . . , dn ∈ RN und x ∈ [tm , . . . , tn+1 ].
1. Bestimme i ∈ {m, . . . , n} so daß x ∈ [ti , ti+1 ).
2. Setze
d0j (x) = dj ,
j = i − m, . . . , i.
3. Für k = 1, . . . , m berechne
k−1
k−1
m−k+1
dkj (x) = u0 x|∆m−k+1
d
(x)
+
u
x|∆
dj (x),
1
j−1
j
j
j = i − m + k, . . . , i.
(6.4)
4. Ergebnis: dm
i (x).
Die Abbildung 6.1 zeigt, was beim Algorithmus von de Boor passiert: im k–ten Schritt
werden alle Intervalle abgearbeitet, die m − k + 2 Knoten und den Punkt x enthalten.
Der Index i aus Schritt 1 im obigen Algorithmus ist eindeutig, solange x nicht gerade mit
einem Knoten übereinstimmt.
Bemerkung 6.4 Der Index i, der durch die Forderung x ∈ [ti , ti+1 ) in Algorithmus 6.3
festgelegt ist, beeinflußt nicht die Berechnungsformel, sondern lediglich, welche Kontrollpunkte zur Berechnung zu verwenden sind. Man könnte auch den folgenden, modifizierten
Algorithmus verwenden:
1. Setze
d0j (x) = dj ,
j = 0, . . . , n.
2. Für k = 1, . . . , m berechne
k−1
k−1
dkj (x) = u0 x|∆m−k+1
dj−1 (x) + u1 x|∆m−k+1
dj (x),
j
j
j = k, . . . , n.
(x)
:
j
=
m,
.
.
.
,
n
.
3. Wähle die i–te Komponente aus dem Ergebnisvektor dm
j
(6.5)
48
6 B–SPLINES
Abbildung 6.1: Der Algorithmus von de Boor für einen kubischen Spline
Aber: der Rechenaufwand dieses Verfahrens ist wesentlich höher, nämlich O(nm) Operationen im Gegensatz zu O (m2 ) im Algorithmus von de Boor. Und normalerweise ist
n m!
Definition 6.5 Wir bezeichnen die Splinekurve x 7→ dm
j (x), x ∈ [tm , . . . , tn+1 ] mit Nm,T d
und nennen d = (dj : j = 0, . . . , n) das Kontrollpolygon von Nm,T d.
Als nächstes sammeln wir einige wichtige Eigenschaften der Splinekurve, die direkte Folgerungen aus dem Algorithmus von de Boor sind.
Proposition 6.6 Sei Tm,n eine Knotenfolge und d ein Kontrollpolygon.
1. (Convex Hull Property):
Nm,T d ([tj , tj+1 )) ⊂ [dj−k : k = 0, . . . , m] ,
j = m, . . . , n.
(6.6)
2. (Interpolation an m–fachen Knoten): ist, für j ≥ m, x = tj−m+1 = · · · = tj , dann
ist Nm,T d(x) = dj−m .
3. (de Casteljau): ist n = m und t0 = · · · = tm , tm+1 = · · · = t2m+1 , dann gilt, für
t ∈ [t0 , tm+1 ], daß Nm,T d = Bm d.
4. (Stückweise Polynome):
Nm,T d|(tj ,tj+1 ) ∈ Πm ,
j = m, . . . , n.
6.2 B–Splines
49
Abbildung 6.2: Der Algorithmus von de Boor für einen kubischen Spline mit doppeltem Knoten.
Beweis: Die Eigenschaften 1, 3 und 4 sind klar. Für 2 bemerken wir, daß, falls ti−m+1 =
· · · = ti jedes der Intervalle ∆m−k+1
in (6.5) den Punkt ti = x als linken Randknoten hat
j
m−k+1
und damit ist u0 x|∆j
= 1, also dki−k (x) = di−m .
∗
Korollar 6.7 Ist Tm,n
eine Knotenfolge mit m + 1–fachen Endknoten, dann besitzt die
Splinekurve die Eigenschaft der Endpunktinterpolation, d.h.,
Nm,T ∗ d (tm ) = d0 ,
6.2
Nm,T ∗ d (tn+1 ) = dn .
(6.7)
B–Splines
Jetzt also endlich zur (algorithmischen) Definition der B–Splines.
Definition 6.8 Die B–Splines Njm (·|T ), j = 0, . . . , n, bezüglich der Knotenfolge T =
Tm,n sind diejenigen Funktionen, die man erhält, wenn man den Algorithmus von de Boor
auf die Anfangsdaten dj = δjk , k = 0, . . . , n, anwendet.
Schreibt man d formal als
d = (d0 , . . . , dn ) =
n
X
j=0
(0, . . . , 0, dj , 0, . . . , 0) ,
50
6 B–SPLINES
Abbildung 6.3: Zwei kubische B–Splines (m = 3) mit Randknoten der Vielfachheit
4.
dann ergibt sich sofort, daß
Nm,T d =
n
X
dj Njm (·|T ) .
(6.8)
j=0
Lemma 6.9 Die B–Splines sind nichtnegative Funktionen mit kompaktem Träger. Genauer:
Njm (x|T ) > 0,
x ∈ (tj , tj+m+1 ) ,
und
Njm (x|T ) = 0,
x 6∈ [tj , tj+m+1 ] (6.9)
Insbesondere gilt
Nm,T d(x) =
j
X
dk Nkm (x|T ) ,
x ∈ [tj , tj+1 ) ,
j = m, . . . , n.
(6.10)
k=j−m
Beweis: Wir erinnern uns, daß zur Bestimmung des Wertes an der Stelle x ∈ [ti , ti+1 )
gerade die Kontrollpunkte di−m , . . . , di verwendet werden. Um Njm (x|Tm,n ) 6= 0 zu erhalten, muß also j ∈ {i − m, . . . , i} oder eben i ∈ {j, . . . , j + m} gelten. Damit verschwindet
der B–Spline Njm (x|Tm,n ) außerhalb von [tj , . . . , tj+m+1 ]. Gilt andererseits x ∈ (ti , ti+1 )
und ist i ∈ {j, . . . , j + m}, dann sind, wegen
(ti , ti+1 ) ⊆ (tj , tj+m−k+1 ) ⊂ ∆jm−k+1 ,
j = i − m + k, . . . , i, k = 1, . . . , m,
alle baryzentrischen Koordinaten in (6.5) strikt positiv und damit sind die Koeffizienten
0
m
d1j (x) = u1 x|∆m
d
(x)
=
u
x|∆
1
j
j
j
6.2 B–Splines
51
Abbildung 6.4: Variation der Knoten.
und
0
m
d
(x)
=
u
x|∆
d1j+1 (x) = u0 x|∆m
0
j+1
j
j+1 ,
dann d2j (x), d2j+1 (x), d2j+2 (x) strikt positiv und so weiter. Damit ergibt sich schließlich
dm
i (x) > 0.
Lemma 6.10 Die B–Splines bilden eine nichtnegative Teilung der Eins, d.h.
n
X
Njm (·|T ) ≡ 1.
(6.11)
j=0
Beweis: Ist d0 = · · · = dn = 1, also d0j (x) = 1, j = 0, . . . , n, dann ist, nach (6.5) und
Induktion über k,
k−1
k−1
dkj (x) = u0 x|∆m−k+1
dj−1 (x) + u1 x|∆m−k+1
dj (x)
j
j
= u0 x|∆m−k+1
+ u1 x|∆m−k+1
= 1,
j = k, . . . , m.
j
j
Satz 6.11 (Rekursionsformel für B–Splines)
Sei T = Tm,n eine Knotenfolge.
1. Die B–Splines der Ordnung 0 haben die Form
1
x ∈ [tj , tj+1 ) ,
0
Nj (x|T ) = χ[tj ,tj+1 ) (x) =
0
x 6∈ [tj , tj+1 ) ,
j = 0, . . . , n + m. (6.12)
2. Für k ≥ 1 gilt
k−1
Njk (x|T ) = u1 x|∆kj Njk−1 (x|T ) + u0 x|∆kj+1 Nj+1
(x|T ) ,
j = 0, . . . , n + m − k.
(6.13)
52
6 B–SPLINES
Abbildung 6.5: Eine kleine Kollektion kubischer B–Splines (m = 3) mit vierfachen
Randknoten. In linken Bild sind die inneren Knoten gleichverteilt, im rechten Bild
in der linken Hälfte konzentriert.
Bemerkung 6.12
1. In den Ausdrücken Njk (·|T ) sollte man T = Tm,n als T = Tk,m+n−k auffassen.
Damit gibt es aber auch nicht n sondern n + m − k B–Splines der Ordnung k zu
einer vorgegebenen Knotenfolge T = Tm,n .
2. Explizit geschrieben lautet (6.13)
Njk (x|T ) =
x − tj
tj+k+1 − x
Njk−1 (x|T ) +
N k−1 (x|T ) ,
tj+k − tj
tj+k+1 − tj+1 j+1
(6.14)
j = 0, . . . , n + m − k.
3. Die Formel (6.14) ist für k + 1–fache Knoten nicht definiert – kein Wunder, da
k−1
dann auch der Spline Njk−1 oder Nj+1
nicht mehr definiert ist (sein Träger wäre
ein triviales Intervall). In diesem Fall läßt man den entsprechenden Term in (6.14)
einfach wegfallen.
Beweis von Satz 6.11: Nach Lemma 6.9 haben die B–Splines Nj0 (·|T ), j = 0, . . . , n+m,
als Träger das Intervall [tj , tj+1 ), insbesondere sind also die Träger der verschiedenen B–
Splines disjunkt und Lemma 6.10 liefert (6.12).
Um Njm (·|T ) mit Hilfe der B–Splines der Ordnung m −1 ausdrücken zu können, benutzen
wir die Zwischenpunkte d1j (x), j = 1, . . . , n, aus (6.5) und schreiben
Nm,T d(x) =
n
X
j=0
dj Njm
(x|T ) =
n
X
j=1
d1j (x) Njm−1 (x|T ) .
(6.15)
6.3 Differenzierbarkeit von Splinekurven
53
Ist insbesondere dj = δjk , dann ist, nach (6.5)
d1j (x) = u0 x|∆m
dj−1 + u1
j

 u1 (x|∆m
k )
m
u0 x|∆m
x|∆j dj =
k+1

0
j = k,
j = k + 1,
sonst.
Setzt man (6.16) in (6.15) ein, dann ergibt sich
m−1
m−1
Njm (x|T ) = u1 x|∆m
Nj
(x|T ) + u0 x|∆m
j
j+1 Nj+1 (x|T ) .
(6.16)
(6.17)
6.3
Differenzierbarkeit von Splinekurven
In diesem Abschnitt werden wir mit Blossoming–Techniken das folgende Resultat über
die Differenzierbarkeit von Splinekurven beweisen.
Satz 6.13 Sei T = Tm,n eine Knotenfolge und t = tj−1 < tj = · · · = tj+k−1 < tj+k ein
Knoten der Vielfachheit k ≥ 1. Dann gilt
Nlm (·|T ) ∈ C m−k (tj−1 , tj+k ) ,
l = 0, . . . , n.
(6.18)
Abbildung 6.6: Splinekurven mit drei doppelten (links) und zwei dreifachen (rechts)
Knoten. Die linke Kurve ist also noch differenzierbar, die rechte hat sichtbare
“Knicke” an den dreifachen Knoten, an denen sie dafür interpoliert.
Wir setzen Ij = [tj , tj+1 ), j = 0, . . . , n + m, und bezeichnen mit
m
∈ Πm ,
pm
=
N
(·|T
)
j = 0, . . . , n, k = 0, . . . , n + m,
j,k
j
I
k
die Einschränkung des B–Splines Njm (·|T ) auf das Intervall Ik , was natürlich ein Polynom
vom Grad m ist.
54
6 B–SPLINES
m
Lemma 6.14 Die polaren Formen Pj,k
zu pm
j,k , j = 0, . . . , n, k = 0, . . . , n + m, bestimmen
sich über die Rekursionsformel
0
Pj,k
() = δjk ,
(6.19)
l−1
l
(x1 , . . . , xl−1 )
Pj,k
(x1 , . . . , xl ) = u1 xl |∆lj Pj,k
l−1
(x1 , . . . , xl−1 ) ,
+u0 xl |∆lj+1 Pj+1,k
l = 1, . . . , m. (6.20)
Beweis: Zuerst halten wir fest, daß im Fall x1 = · · · = xm = x die Rekursion (6.19) und
m
(6.20) gerade die B–Spline Rekursion (6.12) und (6.13) liefert, d.h. Pj,k
(xm ) = pm
j,k (x).
m
Auch die Multiaffinität von Pj,k ist wieder klar wegen der Affinität der baryzentrischen
Koordinaten. Was bleibt, ist die Symmetrie. Hierzu verwenden wir (6.20) zweimal und
erhalten
l−1
l−1
l
(x1 , . . . , xl−1 )
(x1 , . . . , xl ) = u1 xl |∆lj Pj,k
(x1 , . . . , xl−1 ) + u0 xl |∆lj+1 Pj+1,k
Pj,k
l−2
(x1 , . . . , xl−2 )
= u1 xl |∆lj u1 xl−1 |∆l−1
Pj,k
j
l−2
+u1 xl |∆lj u0 xl−1 |∆l−1
j+1 Pj+1,k (x1 , . . . , xl−2 )
l−2
+u0 xl |∆lj+1 u1 xl−1 |∆l−1
j+1 Pj+1,k (x1 , . . . , xl−2 )
l−2
+u0 xl |∆lj+1 u0 xl−1 |∆l−1
j+2 Pj+2,k (x1 , . . . , xl−2 ) .
Nun sind aber
u1 xl |∆lj u1 xl−1 |∆l−1
=
j
und
(xl − tj ) (xl−1 − tj )
,
(tj+l − tj ) (tj+l−1 − tj )
(tj+l+1 − xl ) (tj+l+1 − xl−1 )
u0 xl |∆lj+1 u0 xl−1 |∆l−1
,
j+2 =
(tj+l+1 − tj+1 ) (tj+l+1 − tj+2 )
sowie
l−1
l
u1 xl |∆lj u0 xl−1 |∆l−1
j+1 + u0 xl |∆j+1 u1 xl−1 |∆j+1
(xl − tj ) (tj+l − xl−1 )
(tj+l+1 − xl ) (xl−1 − tj+1 )
=
+
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 ) (tj+l − tj+1 )
(tj+l+1 − tj+1 ) (xl − tj ) (tj+l − xl−1 ) + (tj+l − tj ) (tj+l+1 − xl ) (xl−1 − tj+1 )
=
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
tj+l (tj+l+1 − tj+1 ) + tj+1 (tj+l − tj )
=
xl
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
tj (tj+l+1 − tj+1 ) + tj+l+1 (tj+l − tj )
xl−1
+
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
tj+l+1 − tj+1 + tj+l − tj
−
xl xl−1
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
(tj+l+1 − tj+1 ) tj tj+l + (tj+l − tj ) tj+l+1 tj+1
−
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
6.3 Differenzierbarkeit von Splinekurven
=
55
(tj+l+1 tj+l − tj+1 tj ) (xl + xl−1 ) − (tj+l+1 − tj+1 + tj+l − tj ) xl xl−1
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
(tj+l+1 − tj+1 ) tj tj+l + (tj+l − tj ) tj+l+1 tj+1
−
(tj+l − tj ) (tj+l − tj+1 ) (tj+l+1 − tj+1 )
l
symmetrisch in xl und xl−1 , also auch Pj,k
(x1 , . . . , xl ). Die übrige Argumentation ist wie
im Beweis von Proposition 4.2.
Nun gilt die folgende Beziehung zwischen den Polarformen und den Knoten:
Lemma 6.15 Für l = 0, . . . , m, j = 0, . . . , n, k = l, . . . , n gilt
l
(tr+1 , . . . , tr+l ) = δjr ,
Pj,k
r = k − l, . . . , k.
(6.21)
Korollar 6.16 Sei T = Tm,n eine Knotenfolge und Nm,T d eine dazugehörige Splinekurve.
Für k = m, . . . , n sei pk = Nm,T d|Ik und P k die zugehörige polare Form. Dann gilt
k = j − m, . . . , j, j = m, . . . , n.
dk = P j (tk+1 , . . . , tk+m ) ,
(6.22)
Beweis von Lemma 6.15: Induktion über l = 0, . . . , m, wobei der Fall l = 0 gerade
(6.19) ist. Für l > 0 wählen wir zuerst r > k − l, also auch r ≥ k − l + 1 = k − (l − 1).
Dann ist nach (6.20) und der Induktionsannahme
l
Pj,k
(tr+1 , . . . , tr+l )
l−1
l−1
= u1 tr+l |∆lj Pj,k
(tr+1 , . . . , tr+l−1 ) + u0 tr+l |∆lj+1 Pj+1,k
(tr+1 , . . . , tr+l−1 )
= u1 tr+l |∆lj δjr + u0 tr+l |∆lj+1 δj+1,r = u1 tr+l |∆lr δjr + u0 tr+l |∆lr δj+1,r
{z
}
|
{z
}
|
=1
=0
= δjr .
Für r = k − l nutzen wir zusätzlich die Symmetrie der Polarform und erhalten
l
l
Pj,k
(tr+1 , . . . , tr+l ) = Pj,k
(tr+2 , . . . , tr+l , tr+1 )
l−1
l−1
l
(tr+2 , . . . , tr+l )
= u1 tr+1 |∆j Pj,k (tr+2 , . . . , tr+l ) + u0 tr+1 |∆lj+1 Pj+1,k
= u1 tr+1 |∆lj δj,r+1 + u0 tr+1 |∆lj+1 δj+1,r+1
= u1 tr+1 |∆lr+1 δj,r+1 + u0 tr+1 |∆lr+1 δjr = δjr .
|
{z
}
|
{z
}
=0
=1
Beweis von Korollar 6.16: Sei Ik 6= ∅. Dann ist, nach (6.10),
pk (x) = Nm,T d(x) =
k
X
j=k−m
dj Njm
(x|T ) =
k
X
j=k−m
dj pm
j,k (x),
x ∈ Ik .
56
6 B–SPLINES
Nun bringen wir beide Seite zum Blühen (“blossoming”), indem wir zu den Polarformen
übergehen, und erhalten
P k (x1 , . . . , xm ) =
k
X
m
(x1 , . . . , xm ) ,
dj Pj,k
x1 , . . . , xm ∈ R,
(6.23)
j=k−m
und setzt man in (6.23) xl = tj+l , l = 1, . . . , m, für ein j ∈ {k − m, . . . , k}, dann liefert
(6.21)
k
X
m
P k (tj+1 , . . . , tj+m ) =
dj Pj,k
(tj+1 , . . . , tj+m ) = dk .
(6.24)
|
{z
}
j=k−m
=δjk
Beweis von Satz 6.13: Sei tj < tj+1 = · · · = tj+k < tj+k+1 , es sei also tj+1 ein k–facher
Knoten. Auf den beiden nichttrivialen Intervallen Ij = (tj , tj+1 ) und Ij+k = (tj+k , tj+k+1 )
k
k
betrachten wir, für l = 0, . . . , n die Polarformen Pl,j
und Pl,j+k
gemäß (6.20). Mit (6.21)
ergibt sich, für t = tj+1
k
k
k
k
Pl,j
tk = Pl,j
(tj+1 , . . . , tj+k ) = δlj = Pl,j+k
(tj+1 , . . . , tj+k ) = Pl,j+k
tk .
Nach der Rekursionsformel (6.20) ist dann
m
m
tk , x1 , . . . , xm−k ,
tk , x1 , . . . , xm−k = Pl,j+k
Pl,j
x1 , . . . , xm−k ∈ R,
und damit, nach Satz 4.18,
(r)
(r)
pl,j (t) = pl,j+k (t),
r = 0, . . . , m − k,
also ist Nlm (·|T ) an der Stelle t = tj+1 differenzierbar von der Ordnung m − k.
6.4
Der Satz von Curry–Schoenberg
Wir werden jetzt, Blossoming sei Dank, zeigen, daß die B–Splines eine Basis eines entsprechenden Splineraums bilden.
Definition 6.17 Sei T = Tm,n eine Knotenfolge. Der Splineraum Sm (T ) besteht aus allen
Funktionen s mit der Eigenschaft
s|(tj ,tj+1 ) ∈ Πm ,
j = m, . . . , n,
die an den Knoten tj , j = 0, . . . , n + m + 1, zudem m − kj mal stetig differenzierbar sind,
wobei kj die Vielfachheit des Knotens tj bezeichnet.
Satz 6.18 (Curry–Schoenberg)
Sei T = Tm,n eine Knotenfolge. Dann sind die B–Splines Njm (·|T ), j = 0, . . . , n, eine
Basis des Splineraums Sm (T ).
6.4 Der Satz von Curry–Schoenberg
57
Beweis: Nach Satz 6.13 ist Njm (·|T ) ∈ Sm (T ), j = 0, . . . , n, also ist auch
Nm,T d =
n
X
dj Njm (·|T ) ∈ Sm (T ).
j=0
Sei umgekehrt f ∈ Sm (T ), sowie fj = f |Ij und Fj die zugehörige polare Form, j =
0, . . . , n + m. Nach Korollar 6.16 können wir die Koeffizienten ganz gut raten, wir setzen
nämlich
dk (f ) = Fj (tk+1 , . . . , tk+m ) ,
k = j − m, . . . , j,
j = m, . . . , n.
(6.25)
Aber: für jeden der Koeffizienten sind auf diese Art mehrere Definitionsgleichungen
dk (f ) = Fj (tk+1 , . . . , tk+m ) ,
j = k, . . . , k + m,
(6.26)
vorhanden, damit dk (f ) wohldefiniert ist, muß also
Fj1 (tk+1 , . . . , tk+m ) = Fj2 (tk+1 , . . . , tk+m ) = · · · = Fjl (tk+1 , . . . , tk+m )
(6.27)
sein, wobei
{j1 , . . . , jl } = {j : k ≤ j ≤ k + m, Ij 6= ∅} ,
denn die anderen Fj machen ja keinen Sinn. Für die Gültigkeit von (6.27) sorgt die
Differenzierbarkeit von f in Verbindung mit Satz 4.18: ist nämlich tr ∈ {tk+1 , . . . , tk+m }
ein Knoten der Vielfachheit kr (d.h. tr−1 < tr = · · · = tr+kr −1 < tr+kr ), der in dieser
Liste auch mit seiner vollen Vielfachheit wiederholt wird, so stoßen fr−1 und fr+kr −1 dort
m − kr mal stetig differenzierbar aneinander und deswegen ist
Fr−1 tkr r , x1 , . . . , xm−kr = Fr+kr −1 tkr r , x1 , . . . , xm−kr ,
x1 , . . . , xm−kr ∈ R.
Auf der anderen Seite kommt aber tr ja eben kr –mal in der Folge tk+1 , . . . , tk+m vor. Würde
andererseits ein Knoten tr nicht in voller Vielfachheit in der Menge {tk+1 , . . . , tk+m } (beispielsweise wenn tr = tk+m = tk+m+1 ), dann spielt Fr auch keine Rolle bei der Definition
der Koeffizienten, da Ir nur als ein triviales Intervall auftritt.
Bleibt noch die lineare Unabhängigkeit der B–Splines. Seien also d0 , . . . , dn Koeffizienten,
so daß Nm,T d = 0 und sei pj die Einschränkung von Nm,T d auf das nichttriviale Intervall
Ij mit Polarform Pj . Dann ist aber pj = 0, also auch Pj = 0 und damit auch
dk = Pj (tk+1 , . . . , tk+m ) = 0,
k = j − m, . . . , j.
Da alle Knoten höchstens die Vielfachheit m + 1 haben, liefert dies, daß dj = 0, j =
0, . . . , n.
Der Beweis von Satz 6.18 zeigt aber eigentlich noch viel mehr, nämlich, daß die B–
Splines lokal linear unabhängig sind.
58
6 B–SPLINES
Definition 6.19 Eine Familie von Funktionen φj ∈ C(R), j ∈ J, heißt lokal linear
unabhängig, falls für jedes offene Intervall I = (a, b) ∈ R die Funktionen
φj |I : φj |I 6≡ 0
linear unabhängig sind.
Bemerkung 6.20 (Beispiele)
1. Lokale lineare Unabhängigkeit ist stärker als lineare Unabhängigkeit: die beiden stetigen Funktionen
1
x ≤ 1,
f1 (x) = 1,
f2 (x) =
x
x > 1,
sind linear unabhängig, aber nicht lokal linear unabhängig: man braucht nur ein
Intervall (a, b) mit a < b < 1 bzw. 1 < a < b zu nehmen.
2. Polynome sind linear unabhängig und lokal linear unabhängig: wann immer ein Polynom auf einer offenen Menge verschwindet, muß es das Nullpolynom sein.
Korollar 6.21 Die B–Splines Njm (· |T ) bezüglich einer Knotenfolge T = Tm,n sind lokal
linear unabhängig.
Beweis: Sei (a, b) ⊂ R ein offenes Intervall und sei (a, b) ∩ Ij 6= ∅ für j = j0 , . . . , j1 .
Wenn also Nm,T d eine Splinekurve ist, die auf (a, b) verschwindet, dann müssen die Polarformen Pj , j = j0 , . . . , j1 , verschwinden, also auch die Koeffizienten dk , k = j0 −
m, . . . , j1 . Andererseits sind die auf [tj0 , tj1 ] von Null verschiedenen B–Splines aber gerade
Njm0 −m (·|T ) , . . . , Njm1 −1 (·|T ).
6.5
Knoteneinfügen
Die heuristische Beobachtung aus den Beispielen war, daß eine Splinekurve in Bereichen,
wo viele Knoten liegen, hohe Flexibilität besitzt und dort, wo nur wenige Knoten zur
Verfügung stehen, unter eher hoher “Spannung” steht. Damit kann es aber notwendig
werden, für eine bestehende Splinekurve die Knotenmenge zu verfeinern, um eine sehr
komplexe Kurve zu modellieren.
Definition 6.22 Eine Knotenfolge T ∗ = Tm,n∗ = t∗0 , . . . , t∗m+n∗ +1 heißt eine Verfeinerung von T = Tm,n , falls T ⊂ T ∗ .
Nachdem t∗j , t∗j+1 ⊆ [tk , tk+1 ) für passendes 0 ≤ k ≤ n + m, j = 0, . . . , n∗ + m und weil
Polynome ohnehin unendlich oft differenzierbar sind, haben wir natürlich
T ⊂ T∗
⇒
Sm (T ) ⊂ Sm (T ∗ ) .
(6.28)
6.5 Knoteneinfügen
59
Also gibt es für alle Kontrollpolygone
d = (dj : j = 0, . . . , n) ein zugehöriges Kontrollpo
lygon d∗ = d∗j : j = 0, . . . , n∗ so daß
Nm,T d =
n
X
j=0
∗
dj Njm
(·|T ) =
n
X
d∗j Njm (·|T ∗ ) = Nm,T ∗ d∗ .
(6.29)
j=0
Das Problem ist also: wie berechnet man d∗ aus d? Natürlich kann man sich auf den Fall
beschränken, daß T ∗ einen Knoten mehr enthält und dann iterativ die Knoten einfügen.
Sei also, für ein j ≤ n + m
t0 ≤ · · · ≤ tj ≤ t∗ ≤ tj+1 ≤ · · · ≤ tn+m+1
und

 tk
∗
t∗
tk =

tk−1
k = 0, . . . , j,
k = j + 1,
: k = 0, . . . , n + m + 2} ,
T =
k = j + 2, . . . , n + m + 2.
(6.30)
Dann gilt der folgende Algorithmus zur Berechnung der Knotenfolge, der Boehm zugeschrieben wird.
∗
{t∗k
Satz 6.23 Sei T ∗ eine Verfeinerung der Knotenfolge T
sich das Kontrollpolygon d∗ aus (6.29) als

dk
k

∗
m
u0 (t∗ |∆m
)
d
+
u
(t
|∆
)
d
k
d∗k =
k−1
1
k
k
k

dk−1
k
Abbildung 6.7: Zwei Besipiele für Knoteneinfügen.
= Tm,n gemäß (6.30). Dann ergibt
= 0, . . . , j − m,
= j − m + 1, . . . , j,
= j + 1, . . . , n + 1.
(6.31)
60
6 B–SPLINES
Beweis: Wir verwenden wieder (6.22), genauer,
d∗k = P ∗k t∗k+1 , . . . , t∗k+m ,
k = 0, . . . , n + 1.
(6.32)
Für k = 0, . . . , j − m ist aber sowohl Ik∗ = Ik , also P ∗k = P k , als auch t∗k+1 , . . . , t∗k+m =
(tk+1 , . . . , tk+m ), und damit
k = 0, . . . , j − m.
d∗k = P ∗k t∗k+1 , . . . , t∗k+m = P k (tk+1 , . . . , tk+m ) = dk ,
Analog ist, für k ≥ j + 1, Ik∗ = Ik−1 , P ∗k = P k−1 und t∗k+1 , . . . , t∗k+m = (tk , . . . , tk+m−1 ),
also
d∗k = P ∗k t∗k+1 , . . . , t∗k+m = P k−1 (tk , . . . , tk+m−1 ) = dk−1 ,
k = j + 1, . . . , n + 1.
In den übrigen Fällen stellen wir nun t∗ als baryzentrische Kombination der Knoten tk
und tk+m dar, also
∗
m
t∗ = u0 (t∗ |∆m
(6.33)
k ) tk + u1 (t |∆k ) tk+m .
Dann ist
d∗k = P ∗k t∗k+1 , . . . , t∗k+m = P k (tk+1 , . . . , tj , t∗ , tj+1 , . . . , tk+m−1 )
= u0 (t∗ |∆m
k ) P k (tk+1 , . . . , tj , tk , tj+1 , . . . , tk+m−1 )
∗
+u1 (t |∆m
k ) P k (tk+1 , . . . , tj , tk+m , tj+1 , . . . , tk+m−1 )
∗
m
= u0 (t |∆k ) P k (tk , . . . , tk+m−1 ) +u1 (t∗ |∆m
k ) P k (tk+1 , . . . , tk+m )
|
{z
}
|
{z
}
∗
= u0 (t
|∆m
k ) dk−1
=dk−1
+ u1 (t∗ |∆m
k ) dk ,
=dk
also gilt (6.31). Allerdings bedarf (6.33) noch einer etwas genaueren Betrachtung. Dafür
halten wir fest, daß
j
\
∗
∆m
k = [tj−m+1 , tj+1 ] ∩ · · · ∩ [tj , tj+m ] = [tj , tj+1 ] 3 t ,
k=j−m+1
so daß (6.33) immer wohldefiniert ist, selbst dann, wenn tj = tj+1 ein Knoten höherer
Vielfachheit sind.
Bemerkung 6.24 (Einfügen mehrfacher Knoten)
1. Der Algorithmus zum Einfügen von Knoten kann auch dazu genutzt werden, die
Vielfachheit eines Knotens zu erhöhen.
2. Fügt man einen m–fachen Knoten t∗ ein, so erhält man als einen neuen Kontrollpunkt den Wert Nm,T d (t∗ ). Verfolgt man die Rekursionsformel für diesen Kontrollpunkt, so ergibt sich gerade wieder der Algorithmus von de Boor.
3. Dies könnte man verwenden, um Splines an den Knoten “billiger” auszurechnen:
anstatt den Algorithmus von de Boor laufen zu lassen, erhöht man lediglich die
Vielfachheit des Knotens auf m. Da die Ordnung von Splinekurven aber ohnehin
eher niedrig ist, bringt diese Vorgehensweise eher wenig.
6.6 Ableitungen und Integrale von Splinekurven
6.6
61
Ableitungen und Integrale von Splinekurven
Hier wollen wir uns anschauen, wie die Ableitungen und Stammfunktionen von Splinekurven aussehen.
Satz 6.25 Sei T = Tm,n eine Knotenfolge und tj−1 < tj = · · · = tj+r−1 < tj+r ein Knoten
der Vielfachheit r < m. Dann ist, für x ∈ (tj−1 , tj+r ),
n+1
X
d
dk − dk−1 m−1
Nm,T d (x) = m
Nk (x|T ) ,
dx
t
k+m − tk
k=0
(6.34)
wobei d−1 = dn+1 = 0.
Bemerkung 6.26 Die Formel (6.34) gilt natürlich, wenn alle Knoten höchstens Vielfachheit m − 1 haben, denn dann ist tk+m > tk , k = 0, . . . , n + 1. Ist hingegen, tk =
· · · = tk+m ein Knoten der Vielfachheit m oder m + 1, dann ist entweder tk ≥ tj+r oder
tk+m ≤ tj−1 . Da der Träger des entsprechenden B–Splines Nkm−1 (x|T ) aber gerade
[tk , tk+m ] ⊆
[t0 , tj−1 ]
[tr , tn+m+1 ]
tk+m ≤ tj−1 ,
tk+m ≥ tj+r ,
muß Nkm−1 (x|T ) = 0 gelten und damit wird die “Singularität” aufgehoben.
Lemma 6.27 Sei T = Tm,n eine Knotenfolge und tj−1 < tj = · · · = tj+r−1 < tj+r ein
Knoten der Vielfachheit r < m. Dann ist, für x ∈ (tj−1 , tj+r ),
d m
m
m
m−1
Nk (x|T ) =
Nkm−1 (x|T ) −
Nk+1
(x|T ) ,
dx
tk+m − tk
tk+m+1 − tk+1
j = 0, . . . , n.
(6.35)
Beweis: Induktion über m. Wegen der Differenzierbarkeit von Nkm und der Stetigkeit von
m−1
Nkm−1 und Nk+1
auf dem Intervall (tj−1 , tj+r ) können wir x 6= tj annehmen, d.h., die Splines sind alle in einer Umgebung von x Polynome und daher unendlich oft differenzierbar.
Unter Verwendung von (6.14) ergibt sich dann
d m
N (·|T ) (x)
dx k
d
· − tk
tk+m+1 − ·
m−1
m−1
=
N
(·|T ) +
N
(·|T )
(x)
dx tk+m − tk k
tk+m+1 − tk+1 k+1
1
1
Nkm−1 (·|T ) −
N m−1 (·|T )
=
tk+m − tk
tk+m+1 − tk+1 k+1
x − tk d
tk+m+1 − x d
m−1
+
Nkm−1 (·|T ) (x) +
Nk+1
(·|T ) (x). (6.36)
tk+m − tk dx
tk+m+1 − tk+1 dx
62
6 B–SPLINES
Unter Verwendung der Induktionshypothese und mit (6.14) ergeben sich dann
x − tk d
Nkm−1 (·|T ) (x)
tk+m − tk dx
x − tk
m−1
m−1
m−2
m−2
=
N
(x|T ) −
N
(x|T )
tk+m − tk tk+m−1 − tk k
tk+m − tk+1 k+1
m−1
x − tk
tk+m − x
m−2
m−2
=
N
(x|T ) +
N
(x|T )
tk+m − tk tk+m−1 − tk k
tk+m − tk+1 k+1
{z
}
|
=Nkm−1 (x|T )
m−1
−
tk+m − tk
tk+m − x
x − tk
m−2
+
Nk+1
(x|T )
tk+m − tk+1 tk+m − tk+1
|
{z
}
=(tk+m −tk )/(tk+m −tk+1 )
=
m−1
m−1
Nkm−1 (x|T ) −
N m−2 (x|T )
tk+m − tk
tk+m − tk+1 k+1
(6.37)
und
tk+m+1 − x d
m−1
Nk+1
(·|T ) (x)
tk+m+1 − tk+1 dx
tk+m+1 − x
m−1
m−1
m−2
m−2
N
(x|T ) −
N
(x|T )
=
tk+m+1 − tk+1 tk+m − tk+1 k+1
tk+m+1 − tk+2 k+2
m−1
x − tk+1
tk+m+1 − x
m−2
=
+
Nk+1
(x|T )
tk+m+1 − tk+1 tk+m − tk+1 tk+m − tk+1
|
{z
}
=(tk+m+1 −tk+1 )/(tk+m −tk+1 )
m−1
−
tk+m+1 − tk+1
x − tk+1
tk+m+1 − x
m−2
m−2
N
(x|T ) +
N
(x|T )
tk+m − tk+1 k+1
tk+m+1 − tk+2 k+2
|
{z
}
m−1
=Nk+1
(x|T )
=
m−1
m−1
m−2
Nk+1
(x|T ) −
N m−1 (x|T ) .
tk+m − tk+1
tk+m+1 − tk+1 k+1
(6.38)
Einsetzen von (6.37) und (6.38) in (6.36) ergibt dann
d m
N (·|T ) (x)
dx k
1
1
m−1
m−1
=
Nkm−1 (x|T ) −
Nk+1
(x|T ) +
N m−1 (x|T )
tk+m − tk
tk+m+1 − tk+1
tk+m − tk k
m−1
m−1
m−1
m−2
m−2
−
Nk+1
(x|T ) +
Nk+1
(x|T ) −
N m−1 (x|T )
tk+m − tk+1
tk+m − tk+1
tk+m+1 − tk+1 k+1
m
m
=
Nkm−1 (x|T ) −
N m−1 (x|T ) ,
tk+m − tk
tk+m+1 − tk+1 k+1
und somit (6.35).
Aus dem Beweis ergibt sich auch noch die folgende Aussage.
6.6 Ableitungen und Integrale von Splinekurven
63
Korollar 6.28 Die Formel (6.35) gilt für alle x ∈ R \ T .
Beweis von Satz 6.25: Wir wenden (6.35) auf die B–Spline–Darstellung
n
X
Nm,T d(x) =
dk Nkm (x|T )
k=0
an und erhalten
n
X
d
d
(Nm,T d) (x) =
dk
(Nkm (·|T )) (x)
dx
dx
k=0
n
X
m
m
m−1
m−1
=
dk
Nk (x|T ) −
Nk+1 (x|T )
t
t
k+m − tk
k+m+1 − tk+1
k=0
n
X
=
n+1
X
m
m
m−1
dk Nk (x|T ) −
dk−1 Nkm−1 (x|T )
tk+m − tk
tk+m − tk
k=1
k=0
n+1
X
= m
k=0
dk − dk−1 m−1
N
(x|T )
tk+m − tk k
Für die Berechnung der Integrale erhalten wir das folgende Resultat.
Korollar 6.29 Sei T = Tm,n eine Knotenfolge. Dann ist, für ein Kontrollpolygon d =
(d0 , . . . , dn ),
Zx
Nm,T d(t) dt = Nm+1,T d∗ (x),
x ∈ [tm , tn ] ,
(6.39)
−∞
wobei
d∗j
=
j
X
tk+m+1 − tk
m+1
k=0
dk ,
j = 0, . . . , n − 1.
Beweis: Wir interpretieren T = Tm,n als T = Tm+1,n−1 und setzen
∗
Nm+1,T d =
n−1
X
d∗j Njm+1 (·|T )
j=0
an. Differenzieren wir das und (6.39), dann erhalten wir
d
Nm+1,T d∗
dx
n
X
d∗j − d∗j−1 m
Nj (·|T )
= (m + 1)
t
−
t
j+m+1
j
j=0
Nm,T d =
(6.40)
64
6 B–SPLINES
und Koeffizientenvergleich ergibt
tm+1 − t0
d0
m+1
tm+2 − t1
= d∗0 +
d1
m+1
tm+3 − t2
= d∗1 +
d2
m+1
..
.
tm+n − tn−1
= d∗n−2 +
dn−1
m+1
d∗0 =
d∗1
d∗2
d∗n−1
also (6.40). Da die beiden Splinekurven in den ersten n − 1 Koeffizienten übereinstimmen,
sind sie auf
[tm , tn+1 ] \
[tn , tn+1 ]
= [tm , tn ]
| {z }
=supp Nnm ∩[tm ,tn+1 ]
identisch.
Bemerkung 6.30 Ein Ausweg aus dem Dilemma des nicht definierten Kontrollpunkts
d∗n wären unendliche Knotenfolgen, auf die wir aber vorerst (?) einmal nicht eingehen
wollen.
Korollar 6.31 Sei T = Tm,n eine Knotenfolge. Dann ist
Z
tj+m+1 − tj
Njm (t|T ) dt =
,
j = 0, . . . , n
m+1
(6.41)
R
Beweis: Wir wählen ein (großes) N > 0 und erweitern T in eine Knotenfolge T 0 = Tm,n+N
durch Hinzunahme beliebiger (der Einfachheit halber einfacher) Knoten tn+m+2 < · · · <
tn+N +m+1 und betrachten alle B–Splines bezüglich dieser erweiterten Knotenfolge. Nach
Korollar 6.29 hat dann für alle j = 0, . . . , n die Splinefunktion
Z x
∗
Nm+1,T 0 d (x) =
Njm (t|T ) dt
−∞
die Koeffizienten
d∗k
=
0
tj+m+1 −tj
m+1
k < j,
k ≥ j,
k = 0, . . . , n + N,
und ist damit auf dem Intervall [tj+2m+1 , tn+N ] konstant, denn alle Splines mit Koeffizient
0 haben ihren Träger links davon. Also ist, da der Träger von Njm in (−∞, tj+2m+1 ]
enthalten ist,
Z tj+2m+1
Z
tj+m+1 − tj
∗
m
= Nm+1,T 0 d (tj+2m+1 ) =
Nj (t|T ) dt = Njm (t|T ) dt.
m+1
−∞
R
65
Kenntnis der Mittel ohne eine
eigentliche Anwendung, ja ohne Gabe
und Willen, sie anzuwenden, ist, was
man jetzt gemeiniglich Gelehrsamkeit
nennt
Lichtenberg, Philosophische
Bemerkungen
7
Interpolation und Approximation durch Splines
In diesem Kapitel soll das allgemeine Interpolationsproblem durch Splinekurven betrachtet werden, d.h., die Interpolationspunkte müssen nicht mehr unbedingt Knoten sein. Da
man immer komponentenweise interpolieren kann, können wir uns auf den Fall N = 1
beschränken.
Definition 7.1 (Interpolationsproblem und Kollokationsmatrix)
1. Sei T = Tm,n eine Knotenfolge und X = {x0 , . . . , xn } ⊂ [tm , tn+1 ]. Das Spline–Interpolationsproblem besteht darin, ein Kontrollpolygon d = (d0 , . . . , dn ) zu finden, so
daß, für vorgegebene y0 , . . . , yn ,
Nm,T d (xj ) = yj ,
j = 0, . . . , n.
(7.1)
2. Wir nehmen immer an, daß die Interpolationspunkte verschieden und aufsteigend
angeordnet sind, d.h.,
x0 < x 1 < · · · < x n .
3. Die Kollokationsmatrix oder Gram–Matrix zu X und Sm (T ) ist definiert als


N0m (x0 |T ) . . . Nnm (x0 |T )


..
..
...
Nm (X ) = [Nkm (xj ) : j, k = 0, . . . , n] = 
 . (7.2)
.
.
m
m
N0 (xn |T ) . . . Nn (xn |T )
Proposition 7.2 Das Spline–Interpolationsproblem (7.1) ist genau dann eindeutig lösbar,
wenn die Kollokationsmatrix (7.2) invertierbar ist.
Beweis: Die Koeffizienten d0 , . . . , dn der Lösung von (7.1) sind gegeben durch

 


d0
y0
N0m (x0 |T ) . . . Nnm (x0 |T )
  .. 
 ..  
..
..
...
 . =
 . .
.
.
m
m
yn
N0 (xn |T ) . . . Nn (xn |T )
dn
66
7.1
7 INTERPOLATION UND APPROXIMATION DURCH SPLINES
Der Satz von Schoenberg und Whitney
Das folgende Resultat charakterisiert, wann das Spline–Interpolationsproblem eindeutig
lösbar ist.
Satz 7.3 (Schoenberg–Whitney)
Sei T = Tm,n eine Knotenfolge und X = {x0 , . . . , xn } ⊂ R. Dann ist die Kollokationsmatrix Nm (X ) genau dann invertierbar, wenn
tj < xj < tj+m+1 ,
j = 0, . . . , n.
(7.3)
Beweis von Satz 7.3, “⇒”: Nehmen wir an, es gäbe ein j, so daß (7.3) nicht gilt. Dann
ist entweder xj ≤ tj oder xj ≥ tj+m+1 . Im ersten Fall gilt, da der Träger von Nkm (·|T ) das
Intervall [tk , tk+m+1 ] ist, die Beziehung
Nkm (xj |T ) = 0,
k = j, . . . , n,
also haben die ersten j + 1 Zeilen von Nm (X ) die Form

N0 (x0 |T ) . . . Nj−1 (x0 |T ) 0 . . .

..
..
.. . .
..

.
.
.
.
.
N0 (xj |T ) . . . Nj−1 (xj |T ) 0 . . .
(7.4)

0
.. 
. 
0
und sind damit linear abhängig, also ist det Nm (X ) = 0. Im anderen Fall, xj ≥ tj+m+1 ,
ist
Nkm (xj |T ) = 0,
k = 0, . . . , j,
(7.5)
und, da xj ≤ xl , j ≤ l, gilt natürlich auch
Nkm (xl |T ) = 0,
k = 0, . . . , j, l = j, . . . , n.
(7.6)
Damit haben die ersten j + 1 Spalten von Nm (X ) die Form
N0m (x0 |T )
..

.

 m
 N0 (xj−1 |T )

0


..

.
0

sind also ebenfalls linear abhängig.
...
...
...
...
...
...

Njm (x0 |T )
..

.


m
Nj (xj−1 |T ) 
,
0


..

.
0
Die Umkehrung ist etwas aufwendiger, gibt aber gleichzeitig auch mehr Information
über Eigenschaften der Splinefunktionen.
7.1 Der Satz von Schoenberg und Whitney
67
Definition 7.4 Sei d = (d0 , . . . , dn ) ∈ Rn . Eine Teilmenge J = {j1 , . . . , jk } ⊂ {0, . . . , n}
heißt Signatur bezüglich d, falls
djl djl+1 < 0,
l = 0, . . . , k − 1.
(7.7)
Mit J(d) bezeichnen wir die Menge aller Signaturen für d und definieren die Anzahl der
echten Vorzeichenwechsel von d, in Zeichen S(d), als
S(d) = max #J.
J∈J(d)
Wir zeigen zuerst, daß die Zahl der Vorzeichenwechsel durch Knoteneinfügen nicht vergrößert wird.
∗
Lemma 7.5 Ist T ∗ eine Verfeinerung von T = Tn,m und ist d∗ ∈ Rn der durch Knoteneinfügen aus d entstandene Koeffizientenvektor, dann gilt
S (d∗ ) ≤ S (d) .
Abbildung 7.1: Die Beweisidee von Lemma 7.5. Die Variation des gestrichelten Polygons auf der rechten Seite, also S (d∗ ), ist kleiner als die Variation des durchgezogenen Polygons (es werden ja zusätzliche Ecken dazwischengeschoben) mit schwarzen
und weißen Ecken, bei dem man wiederum die schwarzen “Ecken” vergessen kann,
weil sie auf Verbindungsgeraden liegen.
Beweis: Es genügt natürlich, sich auf Verfeinerungen zu beschränken, die nur einen
Knoten einfügen, allgemeine Verfeinerungen ergeben sich durch Iteration. Sei also
t0 ≤ · · · ≤ tj ≤ t∗ ≤ tj+1 ≤ · · · ≤ tn+m+1
und T ∗ = T ∪ {t∗ }. Nach Satz 6.23 ergeben sich die Koeffizienten als

dk
k = 0, . . . , j − m,

∗
m
u0 (t∗ |∆m
)
d
+
u
(t
|∆
)
d
k = j − m + 1, . . . , j,
d∗k =
k−1
1
k
k
k

dk−1
k = j + 1, . . . , n + 1.
Sei
d0 = d0 , . . . , dj−m , d∗j−m+1 , dj−m+1 , d∗j−m+2 , . . . , dj−1 , d∗j , dj , dj+1 , . . . , dn .
68
7 INTERPOLATION UND APPROXIMATION DURCH SPLINES
Da d∗k eine Konvexkombination von dk−1 und dk ist, k = j − m + 1, . . . , j, ist
S (dk−1 , d∗k , dk ) = S (dk−1 , dk ) ,
also S (d0 ) = S (d). Andererseits ist
d∗ = d0 , . . . , dj−m , d∗j−m+1 , . . . , d∗j , dj , dj+1 , . . . dn
eine Teilfolge von d0 und damit ist S (d∗ ) ≤ S (d0 ) = S (d).
Satz 7.6 (Corner Cutting) Sei X n = xnj : j = 0, . . . , jn ⊂ [tm , tn+1 ] \ T eine Folge von geordneten Punktmengen so
daß
lim max xnj − xnj−1 = 0
n→∞ j=1,...,jn
und sei T n = Tm,n+m(jn +1) die Knotenfolge, die entsteht, wenn man die Punkte xnj als
m–fache Knoten einfügt. Dann konvergiert das Kontrollpolygon d∗ gleichmäßig gegen die
Splinekurve Nm,T d.
Bemerkung 7.7
1. In Satz 7.6 besteht das einzige Problem darin, die Kontrollpunkte passenden Parameterwerten zuzuordnen (z.B. den Greville–Abszissen), alles andere folgt aus der
gleichmäßigen Stetigkeit.
2. de Boor hat gezeigt (“Cutting corners always works”), daß beliebige Verfahren, die
Kontrollpolygone durch das Abschneiden von Ecken verfeinern, stets gegen eine
(Lipschitz–) stetige Kurve konvergieren.
Definition 7.8 Ein Punkt x ∈ R heißt isolierte Nullstelle einer Funktion f ∈ C (R) falls
f (x) = 0 und es für alle nichttrivialen offenen Intervalle (a, b) 3 x ein y ∈ (a, b) gibt, so
daß f (y) 6= 0.
Bemerkung 7.9 Isolierte Nullstellen müssen nicht einfach sein: f (x) = x2n hat eine
2n–fache isolierte Nullstelle an x = 0.
Lemma 7.10 Sei k ≥ 0, T = Tm,n eine Knotenfolge und d ∈ Rn ein Kontrollvektor so
daß dl = 0, l 6∈ {j, . . . , j+k} und so, daß die Splinefunktion Nm,T d auf keinem Teilintervall
von I := [tj , tj+k+m+1 ] verschwindet. Dann hat Nm,T d höchstens k isolierte Nullstellen in
I.
Beweis: Daß Nm,T d nur isolierte Nullstellen hat, folgt aus der lokalen linearen Unabhängigkeit der B–Splines, Korollar 6.21. Außerdem ist, nach Lemma 6.9, Nm,T d(x) = 0
falls x 6∈ I. Sei also x∗ ein Nullstelle von Nm,T d im Inneren von I. Falls x 6∈ T fügen
wir x als m–fachen Knoten in die Knotenfolge T ein, falls x mit einem k–fachen Knoten
7.1 Der Satz von Schoenberg und Whitney
69
(k ≤ m) übereinstimmt, dann erhöhen wir dessen Vielfachheit auf m. Dies liefert eine
Knotenfolge T ∗ mit zugehörigem Kontrollvektor d∗ . Nun ist aber
# {x ∈ I ◦ : Nm,T d(x) = 0} = # {x ∈ I ◦ : Nm,T ∗ d∗ (x) = 0} ≤ S (d∗ ) ≤ S (d) ≤ k.
Außerdem kann eine isolierte Nullstelle nur dann durch Knoteneinfügen entstehen, wenn
vorher ein Vorzeichenwechsel da war.
Beweis von Satz 7.3, “⇐”: Nehmen wir an, es gäbe einen Vektor 0 6= d ∈ Rn , so daß
Nm (X )d = 0. Ist nun für ein m ≤ j ≤ n
0 = Nm,T d|Ij =
j
X
dk Nkm (·|T ) ,
k=j−m
dann ist wegen der lokalen linearen Unabhängigkeit der B–Splines
dj−m = · · · = dj = 0
und Nm,T d zerfällt in
j−m−1
Nm,T d =
X
| k=0
dk Nkm
(·|T ) +
n
X
dk Nkm (·|T ),
k=j+1
{z
=:f1
}
|
{z
=:f2
}
die die disjunkten Träger [t0 , tj ] und [tj+1 , tn+m+1 ] haben. Also gilt f1 (xj ) = f2 (xj ) = 0,
j = 0, . . . , n, und damit sind f1 und f2 ebenfalls Lösungen des homogenen Interpolationsproblems. Also können wir ein Kontrollpolygon d finden, so daß Nm,T d = 0, und es j und k
gibt, so daß dl = 0, l 6∈ {j, . . . , j +k} und Nm,T d hat im Intervall [tj , tj+k+m+1 ] nur isolierte
Nullstellen. Nun liegen aber in diesem Intervall die Interpolationspunkte xj , . . . , xj+k , also
müßte Nm,T d dort k + 1 isolierte Nullstellen haben, was aber Lemma 7.10 widerspricht.
Also ist die Matrix Nm (X ) nichtsingulär.
∗
Korollar 7.11 (Proposition 5.19) Sei T = Tm,n
eine Knotenfolge mit m + 1–fachen
Randknoten. Dann ist das Spline–Interpolationsproblem an den Punkten
m
xj =
1 X
tj+k ,
m + 1 k=0
j = 0, . . . , n,
(7.8)
eindeutig lösbar.
Beweis: Alle inneren Knoten haben höchstens Vielfachheit m + 1, damit liegt, da tj <
tj+m+1 , auf alle Fälle xj ∈ (tj , tj+m+1), j = 1, . . . , n, und erfüllt damit
die Bedingungen von
m
Satz 7.3 für die Kollokationsmatrix Nj (xk |T ) : j, k = 1, . . . , n . Und der Punkt x0 = tm
legt gerade d0 fest.
70
7 INTERPOLATION UND APPROXIMATION DURCH SPLINES
7.2
Totale Positivität der Kollokationsmatrizen
Definition 7.12 Sei A ∈ Rn×n .
1. Für I, J ⊂ {1, . . . , n}, #I = #J = k bezeichnet


Ai1 ,j1 . . . Ai1 ,jk
i1 , . . . , i k

.. 
...
A (I, J) = A
=  ...
. 
j1 , . . . , j k
Aik ,j1 . . . Aik ,jk
die Submatrix bezüglich I = {i1 , . . . , ik }, J = {j1 , . . . , jk }, wobei wir immer annehmen, daß i1 < · · · < ik und j1 < · · · < jk .
2. Die Matrix A heißt total positiv, falls
det A (I, J) ≥ 0,
I, J ⊂ {1, . . . , n}, #I = #J.
Total positive Matrizen (siehe [22]) spielen eine ganz besondere Rolle in der numerischen Analysis, sie sind so etwa das angenehmste, was einem passieren kann. So kann
man beispielsweise zeigen, daß die Rundungsfehler bei der Gauß–Elimination auf total
positiven Matrizen wesentlich geringer sind als bei allgemeinen Matrizen.
Satz 7.13 Die B–Spline–Kollokationsmatrix N (X ) ist total positiv.
Beweis: Sei tj ein Knoten der Vielfachheit < m und tj ≤ t∗ ≤ tj+1 . Nach Satz 6.23 ist
dann für die durch Einfügen von t∗ entstandene Knotenfolge
Nkm
(·|T ) =
n+1
X
αk,l Nlm (·|T ∗ ) ,
(7.9)
l=0
wobei
αk,l =



∗
u0 (t
δkl
m
|∆l ) δk,l−1 +
∗
u1 (t
|∆m
l ) δkl
δk,l−1
l = 0, . . . , j − m,
l = j − m + 1, . . . , j,
l = j + 1, . . . , n + 1.
Schreiben wir
Njm (XI |T ) := Njm (xi |T ) : i ∈ I ,
j = 0, . . . , n, I ⊆ {0, . . . , n},
dann ist, für I, J ⊂ {0, . . . , n}, #I = #J = k,
det Nm (X ) (I, J) = Njm (XI |T ) : j ∈ J = Njm1 (XI |T ) , Njm (XI |T ) : j ∈ J \ {j1 }
n+1
X
∗
m
= αj1 ,l1 Nlm
(X
|T
)
,
N
(X
|T
)
:
j
∈
J
\
{j
}
I
I
1 j
1
l1 =0
(7.10)
7.2 Totale Positivität der Kollokationsmatrizen
n+1
X
=
l1 =0
71
αj1 ,l1 Nlm
(XI |T ∗ ) , Njm (XI |T ) : j ∈ J \ {j1 }
1
..
.
n+1
X
=
αj1 ,l1 · · ·
l1 =0
n+1
X
=
n+1
X
αjk ,lk |Nrm (XI |T ∗ ) : r = l1 , . . . , lk |
lk =0
···
l1 =0
n+1
X
∗
(X ) (I, {l1 , . . . , lk })
αj1 ,l1 · · · αjk ,lk det Nm
lk =0
Da, nach (7.10), αjr ,lr = 0 falls lr 6∈ {jr , jr + 1}, und da j1 < · · · < jk müssen die
Elemente der Indexmenge L = {l1 , . . . , lk } auf alle Fälle die Bedingung l1 ≤ · · · ≤ lk
erfüllen. Tritt aber irgendwo Gleichheit ein, d.h. lr = lr+1 , dann enthält die Matrix
∗
Nm
(X ) (I, {l1 , . . . , lk }) zwei identische Spalten und dann ist die Determinante gleich Null.
Also läuft die Summe über alle l1 < · · · < lk . Mit anderen Worten, für
α(J, L) :=
k
Y
αjr ,lr ≥ 0,
J ⊆ {0, . . . , n}, L ⊆ {0, . . . , n + 1}, #J = #L,
r=1
haben wir
det Nm (X ) (I, J) =
X
∗
α(J, L) det Nm
(X ) (I, L) .
(7.11)
#L=k
Fügen wir nun noch einen Knoten ein, dann ergibt sich für die neue Knotenfolge T ∗∗
X
∗
α(J, L) det Nm
det Nm (X ) (I, J) =
(X ) (I, L)
#L=k
=
X
α(J, L)
∗∗
α(L, L0 ) det Nm
(X ) (I, L0 )
#L0 =k
#L=k
=
X
X X
∗∗
α(J, L)α(L, L0 ) det Nm
(X ) (I, L0 ) ,
#L0 =k #L=k
|
{z
=:α2 (J,L0 )
}
und damit, für das Einfügen von N (neuen und einfachen, das reicht) Knoten, für T ∗ =
T ∪ {t∗1 , . . . , t∗N },
X
∗
det Nm (X ) (I, J) =
αN (J, LN ) det Nm
(X ) (I, LN ) ,
(7.12)
#LN =k
wobei
N
α (J, LN ) =
X
#L1 =k
···
X
N
+1
Y
α (Lr , Lr+1 ) ,
Lr ⊂ {0, . . . , n + r}, r = 1, . . . , N.
#LN −1 =k r=1
(7.13)
72
7 INTERPOLATION UND APPROXIMATION DURCH SPLINES
Wir wählen nun T ∗ (genauer, die eingefügten Knoten) so dicht, daß zwischen je zwei
Interpolationspunkten mindestens m + 1 Knoten liegen und daher, für k = 0, . . . , n,
Njm (xk |T ∗ ) 6= 0
⇒
Njm (xr |T ∗ ) = 0,
r 6= k.
∗
Also hat jede Spalte jeder Matrix Nm
(X ) (I, L), L ⊂ {0, . . . , n + N }, höchstens einen von
Null verschiedenen Eintrag. Liegt wenigstens einer davon nicht auf der Diagonale, dann
∗
ist det Nm
(X ) (I, L) = 0, andernfalls ergibt sich
∗
det Nm
(X ) (I, L) =
k
Y
Nlm
(xir |T ∗ ) > 0.
r
|
{z
}
r=1
>0
Setzt man das in (7.12) und berücksichtigt man (7.13), dann heißt das gerade, daß
det Nm (X ) (I, J) ≥ 0.
7.3
Variationsvermindernde Splineapproximation
Schoenberg hat bereits in den 60ern den folgenden Splineoperator unter Verwendung der
Greville–Abszissen eingeführt.
∗
Definition 7.14 Zu f ∈ C [a, b] und einer Knotenfolge T = Tm,n
mit t0 = · · · = tm = a,
tn+1 = · · · = tn+m+1 = b, ist der Schoenbergsche Splineoperator Sm f definiert als
n
X
tj+1 + · · · + tj+m
Sm f =
f
Njm (·|T ) ,
(7.14)
m
j=0
wobei m ≥ 1 vorausgesetzt wird. Diesen Operator bezeichnet man auch als “Quasi–
Interpolanten”.
Proposition 7.15 Ist f ∈ Π1 , dann ist Sm f = f .
Beweis: Ist p ∈ Π1 ⊂ Πm , dann hat die zugehörige m–affine Polarform P m : Rm → R
die Form
x1 + · · · + xm
m
P (x1 , . . . , xm ) = p
,
m
und mit Hilfe von Korollar 6.16 ergibt sich
n
n
X
X
tj+1 + · · · + tj+m
m
Nj (·|T ) =
P m (tj+1 , . . . , tj+m ) Njm (·|T ) = p.
Sm p =
p
m
j=0
j=0
Definition 7.16 Die Variation einer Funktion f ∈ C[a, b] ist definiert als
V (f ) =
max
x1 ,...,xk ∈[a,b]
S (f (x1 ) , . . . , f (xk )) .
7.4 Approximationsordnung
73
Satz 7.17 Der Schoenbergsche Splineoperator ist variationsvermindernd, d.h.,
V (Sm f ) ≤ V (f ),
f ∈ C[a, b].
Bemerkung 7.18 Anstatt Nulldurchgänge zu zählen, kann man auch die Schnitte mit
beliebigen affinen Geraden, gegeben durch ein Polynom p ∈ Π1 , betrachten. Denn nach
Proposition 7.15 gilt für diese “p–Variation” Vp , daß
Vp (Sm f ) = V (Sm f − p) = V (Sm (f − p)) ≤ V (f − p) = Vp (f ).
Beweis von Satz 7.17: Sei Sm f = Nm,T d. Für beliebige x1 , . . . , xk ∈ [a, b] fügen wir
x1 , . . . , xk so oft in die Knotenfolge T = Tm,n ein, daß die neue Knotenfolge T ∗ jeden
dieser Punkte als m–fachen Knoten enthält. Dann ist
S (Sm f (x1 ) , . . . , Sm f (xk )) ≤ S (d∗ ) ≤ S(d) ≤ V (f ).
Geht man auf der linken Seite zum Maximum über, dann ergibt sich das gewünschte
V (Sm f ) ≤ V (f ).
7.4
Approximationsordnung
Wir zeigen in diesem Kapitel, daß Splines imstande sind, zumindest zweimal stetig differenzierbare Funktionen gut zu approximieren. Detailinformationen zur Approximation
durch Splines findet man beispielsweise in den Büchern von Nürnberger, Schumaker oder
de Boor. Unser zentrales (und erstaunlich leicht zu beweisendes) Resultat wird folgendermaßen lauten.
∗
eine Knotenfolge und sei f ∈ C 2 [a, b], a = tm , b = tn+1 . Dann
Satz 7.19 Sei T = Tm,n
ist
kf − Sm f k[a,b] ≤ m2 kf 00 k[a,b] h2 ,
(7.15)
wobei
h=
max
j=0,...,m+n
|tj+1 − tj | .
(7.16)
Beweis: Sei Ij = [tj , tj+1 ) ein nichttriviales Intervall, dann ist
Sm f |Ij =
j
X
k=j−m
Wir setzen t∗ =
von f um t∗ :
1
2
f
tk+1 + · · · + tk+m
m
Nkm (·|T ) .
(7.17)
(tj−m+1 + tj+m ) und betrachten die Taylorentwicklung erster Ordnung
f (x) = f (t∗ ) + (x − t∗ ) f 0 (t∗ ) +
|
{z
}
=:T1 f
(x − t∗ )2 00
f (ξ) ,
2
ξ ∈ (x, t∗ ) .
74
7 INTERPOLATION UND APPROXIMATION DURCH SPLINES
Also ist, für x ∈ Ij ,
|x − t∗ |2 00
|f (x) − T1 f (x)| =
|f (ξ)| ≤
2
1
4
(tj−m+1 + tj+m )2 00
m2 h2 00
kf kIj ≤
kf k[a,b] (7.18)
2
2
und ebenso, für k = j − m, . . . , j,
tk+1 + · · · + tk+m
m2 h2 00
|f − T1 f |
≤
kf k[a,b] .
m
2
(7.19)
Setzt man (7.19) in (7.17) ein, so erhält man
j
X
m2 h2 00
m2 h2 00
m
Sm (f − T1 f )|Ij ≤
kf k[a,b]
Nk (·|T ) ≤
kf k[a,b] .
2
2
k=j−m
|
{z
}
≤1
Da T1 f = Sm T1 f nach Proposition 7.15, ist, für x ∈ Ij ,
|f (x) − Sm f (x)| = |f (x) − T1 f (x) − Sm (f − T1 f ) (x)|
≤ |f (x) − T1 f (x)| + |Sm (f − T1 f ) (x)| ≤ m2 h2 kf 00 k[a,b] ,
also ist kf − Sm f kIj ≤ m2 h2 kf 00 k[a,b] und damit auch
kf − Sm f k[a,b] = max kf − Sm f kIj ≤ m2 h2 kf 00 k[a,b] .
j=m,...,n
Definition 7.20 (Approximation)
1. Sei T = Tm,n eine Knotenfolge. Dann heißt, für f ∈ C[a, b], der Spline sf ∈ Sm (T )
mit der Eigenschaft
ksf − f k[a,b] = min ks − f k[a,b]
s∈Sm (T )
die beste Approximation an f aus Sm (T ).
2. Als Approximationsordnung von Sm (T ) bezüglich des Raums C k [a, b] bezeichnet man
die Zahlen
mins∈Sm (T ) ks − f k[a,b]
em (T ) :=
max
.
kf (k) k[a,b]
kf (k) k[a,b] >0
Korollar 7.21 Die Splineräume Sm (T ) haben in C 2 [a, b] die Approximationsordnung
m2 h2 .
Bemerkung 7.22
7.4 Approximationsordnung
75
1. Die Konstante der Approximationsordnung, m2 wird mit wachsender Ordnung der
Splines immer größer. In diesem Sinne ist stückweise lineare Approximation also
optimal.
2. Man kann aber für m > 1 die Funktionale
tj+1 + · · · + tj+m
λj : f 7→ f
,
m
j = 0, . . . , n,
so modifizieren, daß S̃m p = p, p ∈ Πm . Dann läßt sich ganz genau wie im Beweis
von Satz 7.19 zeigen, daß S̃m die Approximationsordnung mm+1 hm+1 hat.
Sei schließlich Lm der Spline–Interpolationsoperator an der Mittelwerten von Knoten
aus Korollar 7.11, bzw. Proposition 5.19. Da Sm und Lm Projektoren auf Sm (T ) sind, gilt
Lm Sm f = Sm f und damit, für f ∈ C 2 [a, b],
kf − Lm f k[a,b] = k(I − Lm ) (f − Sm f )k[a,b] ≤ (1 + kLm k) m2 kf 00 k[a,b] h2 .
Mit anderen Worten: ist die Norm des Interpolationsoperators unabhängig von der Knotenfolge T beschränkt, dann konvergieren auch die Spline–Interpolanten gleichmäßig gegen f , wenn die Knotenfolge gleichmäßig verfeinert wird. Daher auch das Interesse an
derartigen Abschätzungen, siehe die Auflistung nach Proposition 5.19.
76
8 SIMPLEX–SPLINES
Let me bring you the good news that
B–Splines and Polyá frequency
functions are now being studied in
higher dimensions
I. J. Schoenberg, 1979
8
Simplex–Splines
In diesem Kapitel werden wir uns mit den “elementaren” multivariaten Splines, nämlich
den sogenannten Simplex-Splines befassen. Sie wurden im wesentlichen von Micchelli eingeführt und untersucht und haben außerdem eine interessante Querbeziehung zu polynomialer Interpolation.
8.1
Geometrische Interpretation der B–Splines
Die geometrische Interpretation der B–Splines stammt bereits aus der “Anfangszeit” der
Splines und geht auf Curry und Schoenberg zurück.
Definition 8.1 Die dividierte Differenz einer Funktion f ∈ C(R) bezüglich der disjunkten Knoten x0 , . . . , xn , in Zeichen [x0 , . . . , xn ] f ist induktiv definiert als
[x0 ] f = f (x0 )
[x0 , . . . , xn ] f − [x1 , . . . , xn+1 ] f
[x0 , . . . , xn+1 ] f =
x0 − xn+1
(8.1)
(8.2)
Bemerkung 8.2 Die dividierte Differenz [x0 , . . . , xn ] f ist symmetrisch in den Knoten
x0 , . . . , xn , d.h., ist σ eine Permutation der Menge {0, . . . , n}, dann ist
xσ(0) , . . . , xσ(n) f = [x0 , . . . , xn ] f
Die Knoten x0 , . . . , xn definieren eindeutig einen B–Spline der Ordnung n−1: erweitern
wir sie beliebig zu einer Knotenfolge (ohne Einschränkung sei x0 < x1 < · · · < xn )
T = {t0 , . . . , tM −1 , x0 , x1 , . . . , xn , tM +n+1 , . . . , tN }
(8.3)
so setzen wir
1
N n−1 (·|T ) .
(8.4)
xn − x0 M
Offenbar ist M (·|x0 , . . . , xn ) eine Spline mit Träger in [x0 , . . . , xn ] (konvexe Hülle).
M (·|x0 , . . . , xn ) =
Proposition 8.3 Für n ≥ 1, disjunkte Punkte x0 , . . . , xn und f ∈ C n [x0 , . . . , xn ] gilt
Z
1
f (n) (t)M (t|x0 , . . . , xn ) dt
(8.5)
[x0 , . . . , xn ] f =
n! R
8.1 Geometrische Interpretation der B–Splines
77
Beweis: Induktion über n. Für n = 1 und x0 < x1 gilt nach dem Hauptsatz der
Differential- und Integralrechnung und unter Verwendung der Knotenfolge T aus (8.3)
Z x1
Z
0
f (t) dt =
f 0 (t)χ[x0 ,x1 ] (t) dt
f (x1 ) − f (x0 ) =
R
Zx0
Z
0
0
=
f (t)NM (t|T ) dt = (x1 − x0 ) f 0 (t)M (t|x0 , x1 ) dt,
R
R
also
Z
f (x0 ) − f (x1 )
=
f 0 (t)M (t|x0 , x1 ) dt.
[x0 , x1 ] f =
x0 − x1
R
Nehmen wir also an, (8.5) sei für ein n ≥ 1 bewiesen und sei für (ohne Einschränkung)
x0 < · · · < xn+1
T = {t0 , . . . , tM −1 , x0 , . . . , xn+1 , tM +n+2 , . . . , tN } ,
0 ≤ M ≤ N − n − 2,
wieder die erweiterte Knotenfolge, wobei2 xj = tM +j . j = 0, . . . , n. Dann sind
M (·|x0 , . . . , xn ) =
n−1
NM
(·|T )
tM +n − tM
und
M (·|x1 , . . . , xn+1 ) =
n−1
NM
+1 (·|T )
.
tM +n+1 − tM +1
Nun ist, nach (8.2), der Induktionshypothese und mit Satz 6.25
[x0 , . . . , xn ] f − [x1 , . . . , xn+1 ] f
[x0 , . . . , xn+1 ] f =
x0 − xn+1
Z
Z
1
M (t|x0 , . . . , xn )
M (t|x1 , . . . , xn+1 )
(n)
(n)
f (t)
dt − f (t)
dt
=
x0 − xn+1
n!
n!
R
R
Z
1
=
f (n) (t) (M (t|x0 , . . . , xn ) − M (t|x1 , . . . , xn+1 )) dt
n! (x0 − xn+1 ) R
n
Z
n
NM
1
NM (t|T )
+1 (t|T )
(n)
=
f (t)
−
dt
n! (x0 − xn+1 ) R
tM +n − tM
tM +n+1 − tM +1
Z
1
1 d
n+1
=
f (n) (t)
NM
(·|T ) (t) dt
n! (x0 − xn+1 ) R
n + 1 dx
Z
n+1
1
N
(t|T )
=
f (n+1) (t) M
dt
(n + 1)! R
xn+1 − x0
Z
1
=
f (n+1) (t)M (t|x0 , . . . , xn+1 ) dt
(n + 1)! R
Es gibt aber noch eine zweite, geometrische, Art, die dividierte Differenz [x0 , . . . , xn ] f
einer Funktion f ∈ C (n) (R) darzustellen. Dazu sei
(
)
n
X
Sn = u = (u0 , . . . , un ) ∈ Rn+1 : uj ≥ 0,
uj = 1
j=0
2
Nur zur Erinnerung . . .
78
8 SIMPLEX–SPLINES
das n–dimensionale baryzentrische Standardsimplex und wir definieren für g ∈ L1 (Sn )
Z1 1−t
Z 1
g(u) du :=
···
Z
Sn
0
1−t1 −···−t
Z n−1
g (1 − t1 − · · · − tn , t1 , . . . , tn ) dtn · · · dt1 ,
0
0
wobei
Z
1 du =
Sn
1
.
n!
(8.6)
Die Identität (8.6) kommt daher, daß der Wert des Integrals auf der linken Seite für alle
n! Vertauschungen der Integrationsvariablen t1 , . . . , tn derselbe ist und daß die Summe
über alle solchen Vertauschungen das Integral über den Einheitswürfel [0, 1]n ergibt.
Dann gilt die folgende Darstellung der dividierten Differenz.
Proposition 8.4 Für n ≥ 1, disjunkte Punkte x0 , . . . , xn und f ∈ C n (R) gilt
Z
Z
(n)
[x0 , . . . , xn ] f =
f (u0 x0 + · · · + un xn ) du =
f (n) (u · x) du,
x = (x0 , . . . , xn ) .
Sn
Sn
(8.7)
Korollar 8.5 Für Knoten x0 , . . . , xn gilt
Z
Z
f (t)M (t|x0 , . . . , xn ) dt = n!
f (u · x) du,
R
f ∈ C [x0 , . . . , xn ] .
(8.8)
Sn
wobei wieder x = (x0 , . . . , xn ).
Beweis: Für disjunkte Knoten folgt dies aus der Kombination von (8.5) und (8.7),
außerdem sind beide Darstellungen stetige Funktionen der Knoten.
Beweis von Proposition 8.4: Induktion über n. Für n = 1 haben wir
Z 1
f (x0 ) − f (x1 ) =
Dx0 −x1 f (x0 + t(x1 − x0 )) dt
0
Z 1
Z
0
= (x0 − x1 )
f ((1 − t)x0 + tx1 ) dt = (x0 − x1 )
f 0 (u · x) du.
0
S1
Für den Induktionsschritt machen wir wieder Gebrauch von (8.2) und erhalten unter
Verwendung der Schreibweise u
b = (u0 , . . . , un−1 ), u ∈ Sn , und x
b = (x1 , . . . , xn )
[x0 , . . . , xn ] f − [x1 , . . . , xn+1 ] f
x0 − xn+1
[x1 , . . . , xn , x0 ] f − [x1 , . . . , xn , xn+1 ] f
=
x0 − xn+1
Z
(n)
f (b
u·x
b + un x0 ) − f (n) (b
u·x
b + un xn+1 )
=
du
x0 − xn+1
Sn
[x0 , . . . , xn+1 ] f =
8.1 Geometrische Interpretation der B–Splines
1
=
Z
Z
=
Z
=
ZSn Z0 un
=
ZSn Z0 un
0
Sn
1
Z
Sn
1
Du (x −x ) f (n) (b
u·x
b + tun x0 + (1 − t)un xn+1 ) dt du
x0 − xn+1 n 0 n+1
un f (n+1) (b
u·x
b + un xn+1 + tun (x0 − xn+1 )) dt du
0
f (n+1) (b
u·x
b + un xn+1 + t(x0 − xn+1 )) dt du
f (n+1) (b
u·x
b + (un − t)xn+1 + tx0 ) dt du
Setzt man nun
vj =
dann ist
Z
Sn
Z
79


t
uj−1

un − t
j = 0,
j = 1, . . . , n,
j = n + 1,
un
0
f
(n+1)
(b
u·x
b + (un − t)xn + tx0 ) dt du =
Z
f (n+1) (v · x) dv,
Sn+1
womit der Induktionsschritt vollständig ist.
Korollar 8.5 erlaubt nun die geometrische Interpretation der B–Splines, die, wie schon
gesagt, auf Curry und Schoenberg zurückgeht. Zu diesem Zweck nehmen wir an, daß nicht
gerade x0 = x1 = · · · = xn gilt, beispielsweise indem x0 6= xn ist, was wir nach Umordnung
der Punkte ja immer annehmen können, und “liften” die Punkte in den Rn . Zu diesem
Zweck setzen wir
v0 = (0, . . . , 0, x0 )
v1 = (1, . . . , 0, x1 )
..
.
vn−1 = (0, . . . , 1, xn−1 )
vn = (0, . . . , 0, xn )
Da die Vektoren

 ej + (xj − x0 ) en
(xn − x0 ) en
vj − v0 =
{z
}
 |
j = 1, . . . , n − 1
j=n
6=0
linear unabhängig sind, ist das Simplex [V] = [vj : j = 0, . . . , n] nichtentartet und hat das
n–dimensionale Volumen
Z
1 1 . . . 1 voln V =
dt =
,
x0 ≤ x1 ≤ · · · ≤ xn .
n! v0 . . . vn [V]
Dann gilt die folgende Aussage.
80
8 SIMPLEX–SPLINES
Abbildung 8.1: Das “Lifting” der Knoten x0 , x1 , x2 , x3 in den R3
Satz 8.6 Seien x0 , . . . , xn nicht alle gleich und sei V wie oben. Dann ist
M (x|x0 , . . . , xn ) =
voln−1 {v ∈ [V] : vn = x}
.
voln [V]
(8.9)
Dabei gilt die Konvention, daß
vol0 {v ∈ [V] : vn = x} = χ[V] (x),
x ∈ Rd .
Beweis: Wir betrachten die Abbildung T : Sn → Rn , definiert durch
 n

X
uj vj,1   u 

1
 j=0

n

  .. 
X

  . 
..
T (u) =
uj v j = 
=
.
.
 n
  un−1 
j=0
 X


u·x
uj vj,n 
j=0
Außerdem ist T nichts anderes als die Darstellung von [V] durch baryzentrische Koordinaten und insbesondere eine Bijektion. Also ist, für f ∈ C(R), nach (8.8) und Variablentransformation
Z
Z
Z
f (t)M (t|x0 , . . . , xn ) dt = n!
f (u · x) du = n!
f (T (u)n ) du
R
=
Sn
Z1 1−t
Z 1
···
0
0
1−t1 −···−t
Z n−1
Sn
f (T (1 − t1 − · · · − tn , t1 , . . . , tn )n ) dtn · · · dt1
0
8.1 Geometrische Interpretation der B–Splines
81
Abbildung 8.2: Geometrische Interpretation der B–Splines: der Wert des B–Spline
an der Stelle “◦” ist das Verhältnis zwischen dem Flächeninhalt des schraffierten
Vierecks und dem Volumen des Simplex.
Z1 1−t
Z 1
=:
···
=:
Z0
S
1−t1 −···−t
Z n−1
0
0
f Te (t1 , . . . , tn )n
f Te (t1 , . . . , tn )n dtn · · · dt1
dtn · · · dt1 ,
wobei S ⊂ Rn und Te : Rn → Rn durch

 
0
1
 ..  
..

 
.
Te (t1 , . . . , tn ) =  .  + 
 0  
0
x0
x1 − x0
|
...
0
0
..
..
..
.
.
.
...
1
0
. . . xn−1 − x0 xn − x0
{z
=dTe/dt



t1

  .. 
  . 

tn
}
(8.10)
gegeben ist. Außerdem ist
1
..
e
dT
.
= det
dt
0
x1 − x0
1 ...
= v0 . . .
...
0
..
..
.
.
...
1
. . . xn−1 − x0
1 vn 0
..
.
=
0
xn − x0 1
0
..
.
1
1
..
.
...
...
..
.
1
0
..
.
0 0 ...
1
x0 x1 . . . xn−1
0 xn 1
0
..
.
(8.11)
82
8 SIMPLEX–SPLINES
und damit, für n > 1,
Z
S
f Te (t1 , . . . , tn )n
dtn · · · dt1
Z
1 . . . 1 −1
= f (tn ) dt1 · · · dtn
v 0 . . . vn Te(S)
Z
voln−1 {v ∈ [V] : vn = t}
=
f (t) dt.
voln [V]
R
Im Falle n = 1 (mit dem 0–dimensionalen Volumen) haben wir nur eine direkte Variablentransformation, die uns
Z Z
χ[V] (t)
e
f (t) dt
f T (t1 , . . . , tn )n dtn · · · dt1 =
S
R voln [V]
liefert. Nachdem f beliebig war, folgt aber in beiden Fällen (8.9).
Bemerkung 8.7 Das “Lifting” von x0 , . . . , xn zu v0 , . . . , vn war natürlich schon sehr
willkürlich, schließlich wurden hier einfach die Einheitsvektoren eingefügt. Sind aber nun
v0 , . . . , vn ∈ Rn irgendwelche Vektoren, so daß vj,n = xj , dann wird (8.10) zu


 


0
v1,1
...
vn−1,1
vn,1
t
1

 ..  
..
..
..
..
  .. 

 
.
.
.
.
Te (t1 , . . . , tn ) =  .  + 
  . 
 0   v1,n−1 . . . vn−1,n−1
vn,n−1 
tn
x1 − x0 . . . xn−1 − x0 xn − x0
x0
|
{z
}
=dTe/dt
und (8.11) gilt wieder. Mit anderen Worten:
Die Darstellung (8.9) ist unabhängig vom gewählten Lifting.
8.2
Definition und Eigenschaften der Simplex–Splines
Tatsächlich sind Korollar 8.5 und Satz 8.6 der “Schüssel” zu den multivariaten Splines,
wie Micchelli gezeigt hat.
Definition 8.8 Seien x0 , . . . , xn ∈ Rd .
1. Wir schreiben


x0,1 . . . xn,1

..  ∈ Rd×n+1 ,
X = [x0 · · · xn ] =  ... . . .
. 
x0,d . . . xn,d
sowie, für x ∈ Rd ,
X − x := [x0 − x · · · xn − x] ∈ Rd×n+1 ,
8.2 Definition und Eigenschaften der Simplex–Splines
83
xj+1 − xj · · · xn − xj ] ∈ Rd×n ,
X − xj := [x0 − xj · · · xj−1 − xj
j = 0, . . . , n,
und
[X] = {Xu : u ∈ Sn }
für die konvexe Hülle von X. Außerdem bedeute Y ⊆ X, daß Y ∈ Rd×k , k ≤ n + 1,
und Y = [xj1 · · · xjk ], j1 < j2 < · · · < jk .
2. Der Simplex–Spline M (·|x0 , . . . , xn ) oder M (·|X) ist diejenige Distribution, die
Z
Z
f (t)M (t|X) dt =
f (Xu) du,
f ∈ C Rd ,
(8.12)
Rd
Sn
erfüllt.
3. Wir schreiben
Z
Z
f=
f :=
[X]
[x0 ,...,xn ]
Z
f (Xu) du
(8.13)
Sn
für das Simplex–Spline–Integral einer Funktion f ∈ C Rd .
Bemerkung 8.9 Der Vorteil des Ansatzes, Punktmengen als Matrizen zu schreiben, besteht einerseits in der Tatsache, daß wir so die Punkte ordnen können und erlaubt zudem
das mehrfache Auftreten von Punkten. Man könnte aber auch alternativ die Terminologie
der “Multisets” (das sind Mengen mit unterscheidbar mehrfachem Auftreten von Elementen) einführen und verwenden.
Proposition 8.10 (Einfache Eigenschaften der Simplex–Splines)
Es sei X ∈ Rd×n+1 mit vold [X] > 0, x ∈ Rd und A ∈ Rd×d invertierbar. Dann ist
M (·|X − x) = M (· + x|X)
und
M (·|AX) =
(8.14)
1
M A−1 · |X
|det A|
(8.15)
Beweis: Wir bemerken zuerst, daß
(X − x) u = Xu −
n
X
uj x = Xu − x.
j=0
Für beliebiges f ∈ C Rd ist dann
Z
Z
Z
f (t)M (t|X − x) dt =
f ((X − x)u) du =
f (Xu − x) du
Rd
Sn
ZSn
Z
=
f (t − x)M (t|X) dt =
f (t)M (t + x|X) dt,
Rd
Rd
84
8 SIMPLEX–SPLINES
woraus (8.14) folgt. Analog ist
Z
Z
f (t)M (t|AX) dt =
Z
f (AXu) du =
f (At)M (t|X) dt
Rd
Z
1
=
f (t)M A−1 t|X dt,
|det A| Rd
Rd
Sn
was (8.15) liefert.
Und wieder können wir auf die Idee des “Lifting” zurückgreifen: wir nehmen jetzt
an, daß die konvexe Hülle [X] ein nichtentartetes d–Simplex enthält, also vold [X] > 0.
Das heißt, daß d + 1 Punkte, dies seien ohne Einschränkung x0 , xn−d+1 , . . . , xn , ein nichtentartetes Simplex ∆ = [x0 , xn−d+1 , . . . , xn ] bilden, und wir definieren dann vj ∈ Rn
als
(0, xj )
j 6∈ {1, . . . , n − d}
vj =
(8.16)
(ej , xj )
j ∈ {1, . . . , n − d}
Dann ergibt sich mit dem identischen Beweis wie in Satz 8.6 (man muß nur auf die
Konstante n! aufpassen) die folgende Darstellung.
Korollar 8.11 Seien x0 , . . . , xn ∈ Rd und sei V wie in (8.16). Dann ist
M (x|X) =
1 voln−d {v ∈ [V] : (vn−d+1 , . . . , vn ) = x}
,
n!
voln [V]
x ∈ Rd ,
(8.17)
wobei wieder
vol0 {v ∈ [V] : (v1 , . . . , vn ) = x} = χ[V] (x),
x ∈ Rd ,
(8.18)
Die Darstellung (8.17) sieht nun doch schon wesentlich plausibler aus, als das eher
etwas unglaubwürdige (8.12) und zeigt insbesondere, daß es tatsächlich eine Funktion
gibt, die (8.12) erfüllt. Aus (8.17) folgt auch sofort eine wichtige Eigenschaft der Simplex–
Splines.
Korollar 8.12 Ist n ≥ d + 1 und vold [X] > 0, dann ist M (·|X) ∈ C Rd
R
Proposition 8.13 Die Distribution [X] ist nichtnegativ und hat Träger [X]. Also,
M (x|X)
Beweis: Ist f ≥ 0, so ist auch
[X] = {Xu : u ∈ Sn }.
R
≥0
=0
x ∈ [X],
x 6∈ [X],
x ∈ Rd .
f ≥ 0 und ist f |[X] = 0, dann ist auch
[X]
R
[X]
f = 0, da
Korollar 8.14 Sei X ∈ Rd×n+1 . Dann ist
M (x|X) > 0,
x ∈ [X]◦ .
(8.19)
8.2 Definition und Eigenschaften der Simplex–Splines
85
Das zentrale Resultat in diesem Abschnitt sagt uns, daß die so definierten Splines in
der Tat stückweise polynomiale Flächen von bestimmter Glattheit sind. Dazu brauchen
wir noch ein bißchen Terminologie.
Definition 8.15
1. Die Punkt”menge” X = (x0 · · · xn ) ∈ Rd×n+1 befindet sich in allgemeiner Lage,
wenn jede Teilmenge von d + 1 Punkten aus X in allgemeiner Lage ist.
2. Für Y ∈ Rd×k+1 sei
hY i =
(
Y u : u = (u0 , . . . , uk ) ,
k
X
)
uk = 1
j=0
wieder die affine Hülle von Y .
Satz 8.16 Sei X ∈ Rd×n+1 in allgemeiner Lage. Dann
1. M (·|X) ∈ C n−d−1 Rd ,
2. M (·|X)|Ω ∈ Πn−d für jedes (offene und zusammenhängende) Gebiet
Ω ⊂ Rd \ hY i : Y ∈ Rd×d , Y ⊂ X .
Abbildung 8.3: Die Bereiche, auf denen der Simplex–Spline ein Polynom ist; für drei
Knotenkonfigurationen.
Als erstes Hilfsmittel leiten wir eine Formel zur Bestimmung der baryzentrischen Richtungsableitungen von Simplex–Splines her.
P
Proposition 8.17 Seien X ∈ Rd×n+1 und µ = (µ0 , . . . , µn ) ∈ Rn+1 mit nj=0 µj = 0.
Dann ist
n
X
Dy M (·|X) =
µj M (·|X \ {xj }) ,
y = Xµ.
(8.20)
j=0
86
8 SIMPLEX–SPLINES
Im Spezialfall µ0 = 1, µn = −1 ergibt sich somit die Identität
Z
Z
Z
Dx0 −xn f =
f−
f,
[x0 ,...,xn ]
[x0 ,...,xn−1 ]
(8.21)
[x1 ,...,xn ]
die man als eine Art Rekursionsformel für dividierte Differenzen auffassen kann.
Das folgende Lemma wollen wir lediglich zitieren (aber nicht beweisen). Es besagt,
daß sich auf einer kompakten Menge jede stetige Funktion beliebig genau durch Linearkombinationen von Funktionen der Form x 7→ eλ·x angenähert werden kann.
Lemma 8.18 Sei Ω ⊂ Rd kompakt. Dann ist der von den Funktionen
d
R → R,
fλ :
λ ∈ Rd ,
x 7→ eλ·x ,
aufgespannte Vektorraum dicht in C (Ω).
Beweis von Proposition 8.17: Sei f ∈ C 1 ([X]). Wir müssen also zeigen, daß
Z
Z
Z
f (t)Dy M (t|X) dt
Dy f (t)M (t|X) dt =
− Dy f = −
Rd
Rd
[X]
=
Z
f (t)
Rd
n
X
µj M (t|X \ {xj }) =
j=0
n
X
Z
µj
j=0
f,
(8.22)
[X\{xj }]
wobei wir nach Lemma 8.18 uns auf den Fall f = fλ , λ ∈ Rd , beschränken können. In
diesem Fall gilt aber
Dy fλ = DXµ fλ =
d
X
(Xµ)j λj fλ = (λ · Xµ) fλ .
(8.23)
j=1
Sei g(x) := ex , x ∈ R, dann ist fλ (x) = g (λ · x), x ∈ Rd , und somit, nach (8.7)
Z
Z
Z
Dy fλ = (λ · Xµ)
fλ = (λ · Xµ)
fλ (Xu) du
[X]
[X]
Sn
Z
Z
g (λ · Xu) du = (λ · Xµ)
g (n) (λ · Xu) du
= (λ · Xµ)
Sn
ZSn
= (λ · Xµ)
g (n) X T λ · u du
Sn
= (λ · Xµ) [λ · x0 , . . . , λ · xn ] g,
da
λT X = λT (x0 · · · xn ) = [λ · x0 · · · λ · xn ] .
(8.24)
8.2 Definition und Eigenschaften der Simplex–Splines
87
Entsprechend ist
Z
fλ = [λ · x0 , . . . , λ · xj−1 , λ · xj+1 , . . . , λ · xn ] g,
[X\{xj }]
also hat die rechte Seite von (8.22) die Form
n
X
µj [λ · x0 , . . . , λ · xj−1 , λ · xj+1 , . . . , λ · xn ] g.
(8.25)
j=0
Da
T
λ · Xµ = X λ · µ =
n
X
µj (λ · xj ) ,
j=0
wird, unter zusätzlicher Verwendung von (8.2) und (8.25) aus (8.24) die Gleichung
Z
Dy fλ =
[X]
=
=
n
X
j=0
n
X
j=0
n
X
µj (λ · xj ) [λ · x0 , . . . , λ · xn ] g
µj (λ · xj − λ · x0 ) [λ · x0 , . . . , λ · xn ] g
µj ([λ · x1 , . . . , λ · xn ] g − [λ · x0 , . . . , λ · xj−1 , λ · xj+1 , . . . , λ · xn ] g)
j=0
n
X
=
µj
!
[λ · x1 , . . . , λ · xn ] g −
j=0
j=0
|
= −
{z
=0
n
X
j=0
n
X
}
µj
Z
µj
Z
fλ
[X\{xj }]
fλ
[X\{xj }]
Um nun langsam an Satz 8.16 heranzukommen, betrachten wir zuerst einmal den
einfachsten Spezialfall n = d, d.h., d + 1 Punkte x0 , . . . , xd ∈ Rd in allgemeiner Lage. Die
folgende Aussage ergibt sich direkt aus Korollar 8.11.
Lemma 8.19 Seien x0 , . . . , xd ∈ Rd in allgemeiner Lage. Dann ist
(
1
x ∈ [X]◦
d!
vol
d [X]
M (·|X) =
0
x 6∈ [X].
Beweis von Satz 8.16: Im Fall n = d ist Aussage 1 ohne Bedeutung und damit immer
wahr, und 2 folgt aus Lemma 8.19.
88
8 SIMPLEX–SPLINES
Beweisen wir zunächst 1 durch Induktion über n ≥ d und nehmen wir an, daß es für ein
n ≥ d bereits bewiesen wäre. Ist n + 1 = d + 1, so ist nach Korollar 8.12 die Splinefunktion
M (·|X) stetig, was genau das ist, was wir wollen. Andernfalls ist also n ≥ d + 1 und
Proposition 8.17 liefert, für beliebiges y = Xµ, daß µ ∈ Rn+2 , µ0 + · · · + µn+1 = 0,
Dy M (·|X) =
n+1
X
µj M (·|X \ {xj }) .
j=0
Da X \{xj } ∈ Rd×n+1
in allgemeiner Lage ist, gehören also alle Funktionen auf der rechten
n−d−1
d
Seite zu C
R , sind also, da n ≥ d + 1, mindestens stetig. Da y beliebig war, ist
damit aber M (·|X) ∈ C n−d Rd .
Für 2 wenden wir Proposition 8.17 mehrfach an und erhalten, daß
Dyn−d M
(·|X) =
n X
X
···
j1 =0 j2 6=j1
X
jn−d 6=j1 ,...,jn−d+1
µj1 · · · µjn−d M ·|X \ xj1 , . . . , xjn−d .
Die Funktionen auf der rechten Seite sind nun alles charakteristische Funktionen von
nichtdegenerierten Simplizes und daher ist die n − d–te Ableitung von M (·|X) konstant
auf allen Gebieten, die von den Seiten dieser Simplizes berandet sind. Dies ist gerade die
Aussage 2.
Auch für die Simplex–Splines gibt es eine Rekursionsformel, die wieder einmal auf
Micchelli zurückgeht.
Satz 8.20 Sei n ≥ d + 1 und γ = (γ0 , . . . , γn ) ∈ Rn+1 so daß γ0 + · · · + γn = 1. Dann ist
n
1 X
γj M (x|X \ {xj }) ,
M (x|X) =
n − d j=0
x = Xγ.
(8.26)
Beweis: Sei γ wie oben und x = Xγ ∈ Rd . Wir setzen X 0 = X ∪ {x} und µ = (γ, −1).
Dann ist, nach Proposition 8.17,
0
Dy M (·|X ) =
n
X
γj M (·|x, X \ {xj }) − M (·|X) ,
y = X 0 µ.
j=0
Nun ist aber
0
y=Xµ=
n
X
γj xj −x = 0,
j=0
| {z }
=x
also
M (·|X) =
n
X
j=0
γj M (·|x, X \ {xj }) .
(8.27)
8.2 Definition und Eigenschaften der Simplex–Splines
89
Nun ist, für beliebiges X ∈ Rd×n+1 und f ∈ C Rd nach Proposition 8.10
Z
Z
Z 1Z
f =
f (Xu) du =
f (x0 + [x1 − x0 · · · xn − x0 ] u) du dh
[X]
0
Sn
1
=
Z
hn−1
Z
0
=
Z
=
f (x0 + h(x1 − x0 · · · xn − x0 )u) du dh
Sn−1
1
n−1
h
Z
f (x0 + t) M (t|h (x1 − x0 ) , . . . , h (xn − x0 )) dt dh
Rd
0
Z
hSn−1
1
n−1
h
Z
f (t) M (t − x0 |h (x1 − x0 ) , . . . , h (xn − x0 )) dt dh
Z
f (t) M x0 + h−1 (t − x0 )|X \ {x0 } dt dh
d
ZR
f (t) M 1 − h−1 x0 + h−1 t|X \ {x0 } dt dh
Rd
0
1
=
Z
=
Z0 1
=
Z0
hn−d−1
Rd
hn−d−1
d
Z 1R
f (t)
hn−d−1 M
1 − h−1 x0 + h−1 t|X \ {x0 } dh dt,
0
also ist
M (x|X) =
Z
1
hn−d−1 M
0
1 − h−1 x0 + h−1 x|X \ {x0 } dh
und insbesondere, mit x = x0 ,
Z 1
M (x0 |X) =
hn−d−1 dh M (x0 |X \ {x0 }) =
0
1
M (x0 |X \ {x0 }) .
n−d
(8.28)
Einsetzen von (8.28) in (8.27) liefert dann
M (x|X) =
n
X
γj M (x|x, X \ {xj })
j=0
n
1 X
γj M (x|X \ {xj }) ,
=
n − d j=0
also (8.26).
Korollar 8.21 Seien v0 , . . . , vd ∈ Rd in allgemeiner Lage und α ∈ Nd+1
0 . Dann gilt, für


Xα = v0 · · · v0 · · · vd · · · vd 
| {z }
| {z }
α0 +1
und
∆ = [vj : j = 0, . . . , d]
αd +1
daß
M (·|Xα ) =
1
Bα .
d! |α|!vold ∆
90
8 SIMPLEX–SPLINES
Beweis: Induktion über |α|. Ist α = 0, dann ist, nach Lemma 8.19,
M (·|X0 ) =
1
1
=
B0 .
d! vold ∆
d! vold ∆
Ansonsten wählen wir x ∈ ∆ und schreiben
x=
d
X
uj (x|∆) vj .
j=0
Dann ist, nach (8.26),
d
d
X
1
1 X
M (x|Xα ) =
uj (x|∆) M (x|Xα \ {vj }) =
uj (x|∆) M x|Xα−ej
|α| + d − d j=0
|α| j=0
d
=
1
1
1 X
uj (x|∆)
Bα−ej (x) =
Bα (x).
|α| j=0
d! vold ∆ (|α| − 1)!
d! vold ∆ |α|!
8.3
Kergin–Interpolation
Der Kerginsche Interpolant ist eine natürliche Verallgemeinerung des Newton–Ansatzes
zur univariaten Interpolation, den wir uns gleich nochmals ansehen werden. Allerdings
ist in Kergins Originalarbeit dieser Zusammenhang noch nicht erkannt, erst Micchelli hat
diese Beziehungen herausgestellt.
Satz 8.22 Seien x0 , . . . , xn ∈ R disjunkt. Dann erfüllt das Polynom
Ln (f ; x) =
n
X
[x0 , . . . , xj ] f (x − x0 ) · · · (x − xj−1 ) ∈ Πn ,
x ∈ R,
(8.29)
j=0
die Interpolationsbedingungen
Ln (f ; xj ) = f (xj ) ,
j = 0, . . . , n.
(8.30)
Außerdem gilt
f (x) − Ln (f ; x) = (x − x0 ) · · · (x − xn ) [x0 , . . . , xn , x] f.
(8.31)
Definition 8.23 Man nennt (8.29) auch die Newton–Darstellung des Interpolationspolynoms Ln (f ; ·).
Mit Proposition 8.3 ergibt sich sofort die Integraldarstellung des Fehlers.
8.3 Kergin–Interpolation
91
Korollar 8.24 Seien x0 , . . . , xn ∈ R disjunkt und f ∈ C (n+1) (R). Dann ist
Z
(x − x0 ) · · · (x − xn )
f (x) − Ln (f ; x) =
f (n+1) (t)M (t|x0 , . . . , xn , x) dt
(n + 1)!
R
Z
=
Dx−x0 · · · Dx−xn f
(8.32)
[x0 ,...,xn ,x]
Bemerkung 8.25 Es gibt eine entsprechende Fehlerdarstellung auch im multivariaten
Fall (“Sauer–Xu–Formula”, de Boor [38, 9]), die anstelle von B–Splines Simplex–Splines
verwendet, aber das ist eine andere Geschichte (oder auch nicht).
Beweis von Satz 8.22: Wir beweisen (8.30) und (8.31) simultan durch Induktion über
n. Für n = 0 ist L0 (f ; x) = f (x0 ) und interpoliert trivialerweise an x0 , sowie
f (x) − L0 (f ; x) = f (x) − f (x0 ) = (x − x0 )
f (x) − f (x0 )
= (x − x0 ) [x0 , x] f.
x − x0
Seien also (8.30) und (8.31) für ein n ≥ 0 bewiesen. Dann ist, wegen (8.31),
Ln+1 (f ; x) = Ln (f ; x) + (x − x0 ) · · · (x − xn ) [x0 , . . . , xn+1 ] f
(x − x0 ) · · · (x − xn )
(f − Ln (f ; ·)) (xn+1 )
= Ln (f ; x) +
(xn+1 − x0 ) · · · (xn+1 − xn )
Also ist, für j = 0, . . . , n,
Ln+1 (f ; xj ) = Ln (f ; xj ) = f (xj )
nach Induktion und außerdem
Ln+1 (f ; xn+1 ) = Ln (f ; xn+1 ) + f (xn+1 ) − Ln (f ; xn+1 ) = f (xn+1 ) ,
weswegen (8.30) auch für n + 1 gilt. Andererseits ist mit (8.30) und (8.29)
f (x) − Ln+1 (f ; x) =
f (x) − Ln (f ; x)
|
{z
}
=(x−x0 )···(x−xn )[x0 ,...,xn ,x]f
+ Ln (f ; x) − Ln+1 (f ; x)
|
{z
}
=−(x−x0 )···(x−xn )[x0 ,...,xn+1 ]f
= (x − x0 ) · · · (x − xn ) ([x0 , . . . , xn , x] f − [x0 , . . . , xn+1 ] f )
[x0 , . . . , xn , x] f − [x0 , . . . , xn+1 ] f
= (x − x0 ) · · · (x − xn+1 )
x − xn+1
= (x − x0 ) · · · (x − xn+1 ) [x0 , . . . , xn+1 , x] f,
womit auch die Induktion von (8.31) vollständig ist.
Definition 8.26 Zu f ∈ C n Rd und x0 , . . . , xn ∈ Rd ist der Kergin–Interpolant K (f ; X)
definiert als
Z
n
X
K (f ; X) (x) =
Dx−x0 · · · Dx−xj−1 f,
x ∈ Rd .
(8.33)
j=0
[x0 ,...,xj ]
92
8 SIMPLEX–SPLINES
Bemerkung 8.27
1. Setzt man die Gleichungen (8.7) und (8.13) in (8.29) ein, so ergibt sich mit
f (x), x ∈ R,
Ln (f ; x) =
=
n
X
j=0
n
X
R
[x]
f :=
(x − x0 ) · · · (x − xj−1 ) [x0 , . . . , xj ] f
(x − x0 ) · · · (x − xj−1 )
j=0
Z
f
(j)
=
n
X
j=0
[x0 ,...,xj ]
Z
Dx−x0 · · · Dx−xj−1 f,
[x0 ,...,xj ]
in diesem Sinne ist also (8.33) eine direkte Verallgemeinerung von (8.29).
2. Die Voraussetzung f ∈ C n Rd ist in vielen Fällen zu stark. Wie Kergin und auch
Micchelli bemerken, kann, falls die Punkte
x0 , . . . , xn in allgemeiner Lage sind, der
Kergin–Interpolant stetig auf C d−1 Rd fortgesetzt werden.
Nach dieser Bemerkung ist natürlich zu erwarten, daß der Kergin–Interpolant tatsächlich ein solcher ist. Und mit der Idee des Beweises von Proposition 8.17 ist dies
auch sehr einfach zu zeigen: man beschränkt sich wieder auf Funktionen fλ der Form
fλ (x) = eλ·x , λ ∈ Rd , und für die werden die dividierten Differenzen zu univariaten
dividierten Differenzen, auf die wir dann sofort Satz 8.22 anwenden können. Allerdings
kann der Kergin–Interpolant noch viel mehr. Dabei verwenden wir die Standardnotation
q(D), die einem Polynom
X
q(x) =
qα x α
α∈Nd0
den Differentialoperator
q(D) = q
∂
∂
,...,
∂x1
∂xd
=
X
α∈Nd0
qα
∂ |α|
∂xα
zuordnet.
Satz 8.28 Zu gegebenen Punkten x0 , . . . , xn ∈ Rd (nicht notwendigerweise verschieden)
gibt es eine eindeutige Abbildung von C n Rd nach Πn , nämlich Kn , so daß es zu jedem
homogenen Differentialoperator q(D) mit konstanten Koeffizienten, q ∈ Πn und jeder
Teilmenge J ⊆ {0, . . . , n}, #J = deg q + 1, einen Punkt x ∈ [xj : j ∈ J] gibt, so daß
(q(D)Kn (f ; ·)) (x) = (q(D)f ) (x).
Kergin hat (in seiner Dissertation) die Existenz und Eindeutigkeit des Interpolationsoperators direkt aus den Forderungen von Satz 8.28 hergeleitet. Dabei war die Existenz
das schwerere der beiden und beim Beweis wurde auch der Satz von Stokes (mehrdimensionale Integration) verwendet. Micchelli und Milmann [28] gaben dann (in derselben
8.3 Kergin–Interpolation
93
Zeitschrift, direkt im Anschluß an Kergins Arbeit [23]) den konstruktiven Existenzbeweis,
indem sie die Darstellung (8.33) angaben. Man sollte sich allerdings nicht täuschen: einen
Kergin–Interpolanten auszurechnen, ist nach wie vor sehr schwer, denn man muß diese
Integrale von Richtungsableitungen bestimmen.
Beweis: Zum Beweis der Existenz eines Kergininterpolanten verwenden wir natürlich
Kn aus Definition 8.26 und weisen die Mittelwerteigenschaft nach. Dabei beschränken wir
uns wieder auf Funktionen der Form fλ (x) = eλ·x . Da
∂ |α|
fλ = λα fλ ,
α
∂x
ist also q(D)fλ = q(λ)fλ . Außerdem ist nach (8.24)
Z
n
X
K (fλ ; x) =
Dx−x0 · · · Dx−xj−1 fλ
j=0
=
[x0 ,...,xj ]
n
X
(λ · x − λ · x0 ) · · · (λ · x − λ · xj−1 ) [λ · x0 , . . . , λ · xj ] g
j=0
=: Ln (g; λ · x0 , . . . , λ · xn ) (λ · x)
Sei also nun q ∈ Πn , deg q = k, und J ⊆ {0, . . . , n}, #J = k + 1, dann ist, wieder mit den
Methoden von (8.24),
Z
Z
Z
q(D)fλ = q (λ)
fλ = q (λ)
g (k)
[xj :j∈J]
[xj :j∈J]
[λ·xj :j∈J]
= q (λ) [λ · xj : j ∈ J] g = q (λ) [λ · xj : j ∈ J] Ln (g; λ · xj : j = 0, . . . , n)
Z
=
q(D)Kn (fλ , ·) .
[xj :j∈J]
Damit ist also, aus Dichtheitsgründen, für alle f ∈ C n Rd
Z
q(D) (f − Kn f ) = 0
[xj :j∈J]
und da der Integrand stetig ist, muß er im Integrationsbereich mindestens eine Nullstelle
haben.
Die Eindeutigkeit ist etwas aufwendiger und soll hier weggelassen werden.
Satz 8.29 (Fehler bei der Kergin–Interpolation)
Für f ∈ C n+1 Rd und x0 , . . . , xn ∈ Rd ist
Z
f (x) − Kn (f ; x) =
Dx−x0 · · · Dx−xn f,
[x,x0 ,...,xn ]
x ∈ Rd ,
(8.34)
94
8 SIMPLEX–SPLINES
und, für Ω ⊂ Rd kompakt so daß xj ∈ Ω, j = 0, . . . , n,
kf − Kn (f ; ·)kΩ,∞ ≤
(d ρ∞ (Ω))n+1
max kDα f kΩ,∞ ,
α∈Γ
(n + 1)!
n+1
(8.35)
wobei
ρ∞ (Ω) = max max |xj − yj | .
x,y∈Ω j=1,...,d
Beweis: Induktion über n und die Beobachtung, daß, nach (8.21)
f (x) − Kn (f ; x) = f (x) − Kn−1 (f ; x) + Kn−1 (f ; x) − Kn (f ; x)
Z
Z
=
Dx−x0 · · · Dx−xn−1 f −
Dx−x0 · · · Dx−xn−1 f
[x,x0 ,...,xn−1 ]
=
Z
[x0 ,...,xn ]
Dx−x0 · · · Dx−xn f
[x,x0 ,...,xn ]
liefert (8.34). Für (8.35) bemerken wir, daß für x ∈ Ω
d
X
d Y
n n+1
X
∂
f
(x)
(x − xk )
···
jk
∂x
·
·
·
∂x
j
j
n
0
=1
j =1 k=0
|Dx−x0 · · · Dx−xn f (x)| ≤
j0
n
n+1 n+1
d ρ∞
≤
und mit
Z
1=
max kDα kΩ,∞
α∈Γn+1
1
(n + 1)!
[x,x0 ,...,xn ]
ergibt sich die gewünschte Abschätzung.
Bemerkung 8.30
1. Für d = 1 wird die Fehlerformel (8.34) zu der aus der Numerik (hoffentlich) wohlbekannten Darstellung.
2. Die Fehlerabschätzung (8.35) hängt nur noch von der Dimension und der Größe
des betrachteten Bereichs Ω ab, nicht aber von der Geometrie der Punkte. Dies ist
ein “univariates” Phänomen, das bei allgemeiner multivariater Interpolation mit
Polynomen nicht mehr gilt.
3. Die Fehlerabschätzung (8.35) ist “scharf ” in dem Sinne, daß man Bereiche (Quadrate) und Funktionen (Polynome vom Grad n + 1) angeben kann, so daß Gleichheit
angenommen wird. Das heißt aber nicht, daß man sie nicht verbessern könnte: es
muß dann allerdings die Geometrie des Gebiets Ω mitberücksichtigt werden.
95
Blossoming begets B–spline bases built
better by B–patches
Titel einer Arbeit von W. Dahmen,
C. A. Micchelli und H. P. Seidel
9
Simplex–Splines, B–Patches und Blossoming
In diesem Kapitel wollen wir mit Hilfe der Simplex–Splines und Blossoming einen Splineraum konstruieren (“DMS–Splines”), der von Dahmen, Micchelli und Seidel eingeführt
wurde, multivariate Splines, mit denen man (fast) arbeiten, d.h. Flächen modellieren
kann.
9.1
B–Patches
Wir folgen dem grundlegenden Motiv dieser Vorlesung und verallgemeinern wieder einmal
Algorithmus 3.6, den Algorithmus von de Casteljau und zwar auf eine ähnliche Weise wie
bei den univariaten Splines: wir werden wieder in jedem Schritt baryzentrische Koordinaten bezüglich unterschiedlicher Bezugssimplizes wählen.
Definition 9.1 Es seien Punkte
V = vj,k ∈ Rd : j = 0, . . . , d, k = 0, . . . , n
gegeben. Für α ∈ Γk , k = 0, . . . , n, definieren wir
Vα = vj,αj : j = 0, . . . , d .
(9.1)
Wir sagen, die Menge V ist generisch, falls
vold [Vα ] > 0,
α ∈ Γk , k = 0, . . . , n,
und schreiben ∆α := [Vα ].
Algorithmus 9.2 (B–Patch–Algorithmus)
Gegeben: Kontrollpunkte cα , α ∈ Γn , generische Punktmenge V und x ∈ Rd .
1. Setze c0α (x) = cα , α ∈ Γn .
2. Für k = 1, . . . , n setze
ckα (x)
=
d
X
j=0
k−1
uj (x|∆α ) cα+e
(x),
j
α ∈ Γn−k
(9.2)
96
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
v11
v10
v21
v00
v20
v01
V(0,0,0)
V(1,0,0), V(0,1,0), V(0,0,1)
Abbildung 9.1: Punktmenge V und die Dreiecke [Vα ], |α| = 0, 1.
3. Ergebnis: Pn c (x|V) = cn0 (x).
Definition 9.3 Die Fläche Pn c (·|V) heißt B–Patch bezüglich der generischen Punktmenge V.
Bemerkung 9.4 Ist vj,0 = · · · = vj,n , dann wird Algorithmus 9.2 zum Algorithmus von
de Casteljau und damit ist Pn c (·|V) = Bn c eine Bézierfläche.
Proposition 9.5 Sei V ⊂ Rd generisch. Das B–Patch Pn c (·|V) ∈ ΠN
n hat die Form
X
Pn c (·|V) =
cα Pα (·|V) ,
(9.3)
α∈Γn
wobei die Basisfunktionen Pα (·|V) der Rekursionsformel
Pα (·|V) =
d
X
j=0
uj ·|∆α−ej Pα−ej (·|V) ,
α ∈ Γk , k = 1, . . . , n,
(9.4)
und P0 (·|V) = 1 genügen.
Bei der Definition der Basisfunktionen gilt wieder die Standardannahme, daß Pα ≡ 0
falls α ∈ Zd+1 \ Nd+1
0 .
Beweis: Wir zeigen, daß die Werte
X
f k (x) =
ckα (x)Pα (x|V) ,
k = 0, . . . , n,
(9.5)
α∈Γn−k
unabhängig von k sind, denn dann ist für alle x ∈ Rd
X
X
Pn c (x|V) = cn0 (x) =
cnα (x) Pα (x|V) = f n (x) = f 0 (x) =
c0α (x) Pα (x|V) . (9.6)
| {z }
| {z }
α∈Γ0
=1
α∈Γn
=cα
9.1 B–Patches
97
Für (9.5) betrachten wir, für k = 0, . . . , n − 1,
X
f k+1 (x) =
ck+1
α (x)Pα (x|V) =
=
X
j=0 α∈Γn−k
=
=
uj (x|∆α ) ckα+ej (x)Pα (x|V)
ckα (x)uj x|∆α−ej Pα−ej (x|V)
d
X
X
ckα (x)
X
ckα (x)Pα (x|V) = f k (x).
j=0
α∈Γn−k
d
X
α∈Γn−k−1 j=0
α∈Γn−k−1
d
X
X
uj x|∆α−ej Pα−ej (x|V)
α∈Γn−k
Definition 9.6 (Dualer Algorithmus)
1. Man bezeichnet (9.4) als den dualen Algorithmus zu (9.2).
2. Die multiaffine Form zu der Rekursion (9.2) ist definiert als
c0α () = cα ,
α ∈ Γn ,
d
X
k
k−1
cα (x1 , . . . , xk ) =
uj (xk |∆α ) cα+e
(x1 , . . . , xk−1 ) ,
j
(9.7)
(9.8)
j=0
α ∈ Γn−k , k = 1, . . . , n.
Damit die baryzentrischen Koordinaten immer wohldefiniert sind, muß V natürlich
generisch sein.
k
Proposition 9.7 Die Abbildungen ckα : Rd → RN sind symmetrische multiaffine Formen.
Beweis: Multiaffinität ist klar wegen der Affinität der baryzentrischen Koordinaten.
Bleibt also Symmetrie. Natürlich genügt es wieder, sich auf den Fall
ckα (x1 , . . . , xk−2 , xk−1 , xk ) = ckα (x1 , . . . , xk−2 , xk , xk−1 ) ,
α ∈ Γn−k , k = 2, . . . , n,
zu beschränken, der Rest folgt wie im Beweis von Lemma 6.14. Nun ist, für beliebige
v, w ∈ Rd , nach zweimaliger Anwendung der Rekursion (9.8),
ckα (x1 , . . . , xk−2 , v, w)
d
X
=
uj (w|∆α ) ck−1
α+ej (x1 , . . . , xk−2 , v)
j=0
=
d X
d
X
j=0 l=0
uj (w|∆α ) ul v|∆α+ej ck−2
α+ej +el (x1 , . . . , xk−2 ) ,
(9.9)
98
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
das heißt, Symmetrie ist äquivalent dazu, daß das Gleichungssystem
uj (w|∆α ) ul v|∆α+ej = uj (v|∆α ) ul w|∆α+ej ,
j, l = 0, . . . , d,
(9.10)
für alle v, w ∈ Rd erfüllt ist. Setzen wir insbesondere v = vr,αr und w = vs,αs , r, s ∈
{0, . . . , d}, r 6= s, dann ist
uj (w|∆α ) ul v|∆α+ej = δjr δls ,
was symmetrisch in r und s ist. Da die Punkte der obigen Form aber gerade die affin
unabhängige Menge Vα bilden, gilt (9.10) dann auch für alle v, w ∈ Rd .
Proposition 9.8 Die Polarform P (x1 , . . . , xn ) des Polynoms Pn c (·|V) erfüllt die Rekursion (9.8).
Beweis: Nach Proposition 9.7 ist
P (x1 , . . . , xn ) := cn0 (x1 , . . . , xn )
eine symmetrische multiaffine Form mit der Eigenschaft, daß
P (x, . . . , x) = cn0 (x, . . . , x) = Pn c (x|V) ,
also ist P die eindeutige Polarform des Polynoms Pn c (·|V).
Für α ∈ Γn definieren wir den Knotenvektor
v α = (vj,k : k = 0, . . . , αj − 1, j = 0, . . . , d) ∈ Rn .
(9.11)
Mit anderen Worten,
v α = (v0,0 , . . . , v0,α0 −1 , . . . , vd,0 , . . . , vd,αd −1 ) ,
α ∈ Γn .
Satz 9.9 Sei V generisch. Dann gilt für p ∈ ΠN
n und die zugehörige Polarform P
X
p=
P (v α ) Pα (·|V) .
(9.12)
α∈Γn
Korollar 9.10 Die Basisfunktionen Pα (·|V) sind linear unabhängig, wenn V generisch
ist.
Beweis: Wir betrachten den Fall N = 1 in Satz 9.9. Da
#Γn = dim Πn ≤ dim span {Pα (·|V) : α ∈ Γn } ≤ #Γn ,
muß überall Gleichheit stehen und damit sind die Funktionen linear unabhängig.
9.1 B–Patches
99
Beweis von Satz 9.9: Nach (9.4) ist für x ∈ Rd
X
P (v α ) Pα (x|V)
α∈Γn
=
X
P (v α )
=
X
j=0 α∈Γn−1
=
uj x|∆α−ej Pα−ej (x|V) =
j=0
α∈Γn
d
X
d
X
j=0 α∈Γn−1
P v α+ej uj (x|∆α ) Pα (x|V)
P vj,αj , v α uj (x| [vk,αk : k = 0, . . . , d]) Pα (x|V)
d
X
X
Pα (x|V) P
X
P (x, v α ) Pα (x|V) .
uj (x|∆α )vj,αj , v α
!
j=0
α∈Γn−1
=
d
X
X
α∈Γn−1
Iteriert man diese Identität, so ergibt sich, daß
X
P (v α ) Pα (x|V) = P (x, . . . , x) = p(x).
α∈Γn
Was aber haben diese B–Patches nun mit Splines zu tun? Dazu ein erst ein wenig (?)
Terminologie.
Definition 9.11 Sei V generisch.
1. Die offene Menge Ω = Ω(V) ist definiert als

◦
\
Ω := 
∆α  .
|α|≤n
2. Zu α ∈ Γn definieren wir die Knotenmengen
Vα = [v0,0 , . . . , v0,α0 , . . . , vd,0 , . . . , vd,αd ] ∈ Rd×n+d
(9.13)
Wα = vj,αj : j = 0, . . . , d ∈ Rd×d+1 .
(9.14)
sowie
3. Für j = 0, . . . , d und W ∈ Rd×d+1 setzen wir
1 ···
1
1
1
··· 1
τj (x|W ) = det
,
w0 · · · wj−1 x wj+1 · · · wd
und erinnern uns an die Definition aus Lemma 3.1
1 ··· 1
τ (W ) = det
,
w0 · · · wd
wobei vold [W ] =
1
d!
|τ (W )|.
x ∈ Rd ,
(9.15)
100
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
Abbildung 9.2: Zwei Beispiele für das Gebiet Ω.
Bemerkung 9.12 Unter Verwendung der gerade eingeführten Notation ist insbesondere
uj (x | W ) =
τj (x | W )
τ (W )
Für das weitere Vorgehen normieren wir die Simplex Splines etwas um und zwar
fordern wir jetzt, daß für X ∈ Rd×n+1
Z
Z
f (Xu) du,
f ∈ C Rd ,
(9.16)
f (t) N (t|X) dt = (n − d)!
Rd
Sn
also N (·|X) = (n − d)! M (·|X). Aus Lemma 8.19 und Satz 8.20 wird dann die folgende
Aussage.
Proposition 9.13 (Eigenschaften der umnormierten B–Splines)
1. Sei X ∈ Rd×d+1 . Dann ist
N (x|X) =
1
.
d! |τ (X)|
(9.17)
2. Sei X ∈ Rd×n+1 , µ ∈ Rn+1 , µ0 + · · · + µn = 1. Dann ist
N (Xµ |X) =
n
X
µj N (Xµ |X \ {xj }) .
j=0
Beweis: (9.17) ist klar, für (9.18) verwenden wir Satz 8.20 und erhalten
N (Xµ|X) = (n − d)! M (Xµ|X)
(9.18)
9.1 B–Patches
101
n
1 X
= (n − d)!
µj M (Xµ |X \ {xj })
n − d j=0
n
X
=
µj N (Xµ |X \ {xj }) .
j=0
Satz 9.14 Sei V generisch. Dann ist
Pα (x|V) = d! |τ (Wα )| N (x|Vα ) ,
x ∈ Ω, α ∈ Γk , k = 0, . . . , n.
(9.19)
Lemma 9.15 Sei W ∈ Rd×d+1 mit vold [W ] > 0. Dann ist
uj (x| [W ]) =
τj (x|W )
,
τ (W )
x ∈ Rd , j = 0, . . . , n.
(9.20)
Beweis von Satz 9.14: Induktion über k. Für k = 0 ist V0 = [vj,0 : j = 0, . . . , d] und
Ω = V0◦ . Also ist
N (x|V0 ) =
1
1
=
P0 (x|V) ,
d! |τ (W0 )|
d! |τ (W0 )|
x ∈ Ω.
Im Fall k ≥ 1 erhalten wir für α ∈ Γn und x ∈ Ω gemäß (9.20)
Pα (x|V) =
d
X
uj x|∆α−ej
j=0
d
X
τj x|Wα−ej
Pα−ej (x|V) .
Pα−ej (x|V) =
τ
W
α−e
j
j=0
Da x ∈ Ω ⊂ Wα−ej , αj > 0, j = 0, . . . , n, sind die baryzentrischen Koordinaten alle
positiv, also haben Zähler und Nenner dasselbe Vorzeichen und damit
τj x|Wα−e τj x|Wα−ej
j
= τ Wα−e .
τ Wα−ej
j
Da im Zähler ja die j–te Spalte durch x ersetzt wird, ist auch
1
···
1
1
1
···
1
τj x|Wα−ej =
= τj (x|Wα ) .
w0,α0 · · · wj−1,αj−1 x wj+1,αj+1 · · · wd,αd
Also ist, unter Verwendung der Induktionshypothese (9.19)
Pα (x|V) =
d
X
|τj (x|Wα )|
j=0
|τ (Wα )|
= d! |τ (Wα )|
d
X
j=0
= d! |τ (Wα )|
d
X
j=0
|τ (Wα )|
τ Wα−e Pα−ej (x|V)
j
uj (x| [Wα ]) N x|Vα−ej
uj (x| [Wα ]) N x|Vα \ vj,αj = d! |τ (Wα )| N (x|Vα ) .
102
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
Ist αj = 0 für ein j ∈ {0, . . . , d}, dann muß man zusätzlich zeigen, daß Vα−ej ∩ Ω = ∅.
Eine derartige Menge hat die Eigenschaft daß kein Knoten aus der Gruppe
vj,0 , . . . , vj,n
in ihr auftaucht. Solch eine Menge ist aber eine Seite
des Simplex [Vα ], gehört also zu
◦
dessen Rand, und da Ω ⊆ Vα , ist also auch Vα−ej ∩ Ω = ∅.
Korollar 9.16 Sei V generisch. Dann sind die normierten Splines Nα (·|V) = Pα (· | V),
α ∈ Γn , linear unabhängig und erfüllen
X
P (v α ) Nα (x|V) = p(x),
x ∈ Ω;
α∈Γn
insbesondere ist
X
Nα (x|V) = 1,
x ∈ Ω.
α∈Γn
Bemerkung 9.17 Sind die Knoten vj,1 , . . . , vj,n nahe genug bei vj,0 , j = 0, . . . , d, dann ist
Ω 6= ∅: dieser Bereich hängt stetig von den Knoten ab und im Fall vj,k = vj,0 , k = 1, . . . , n,
j = 0, . . . , d ist ja Ω = [V]◦ .
9.2
Multivariate “B–Splines”
Satz 9.14 gibt uns einen Hinweis, wie man multivariate Splines zu Modellierungszwecken
“basteln” kann, nämlich durch Kombination geeigneter (und geeignet normierter) Simplex–
Splines bzw. B–Patches. Zu diesem Zweck seien vj ∈ Rd , j ∈ N, die Ecken einer Triangulierung des Rd , d.h. es gibt eine Menge J von d + 1–elementigen Teilmengen von N, so
daß die Simplizes
T = {∆(J) = [vj : j ∈ J] : J ∈ J }
eine Triangulierung des Rd bilden, d.h.
[
0
Rd =
∆(J)
und
∆(J) ∩ ∆(J 0 ) = V J λ = V J µ,
λ, µ ∈ Sd \ S◦d ,
(9.21)
J∈J
wobei V J die von vj , j ∈ J, gebildete Matrix ist. Die Bedingung (9.21) bedeutet, daß sich
zwei Simplizes nur in einer niederdimensionalen Seite (Kante oder Ecke in zwei Variablen)
treffen. Jedem dieser Eckpunkte vj , j ∈ N wird nun eine “Wolke” von Knoten
Vj = {vj,0 , . . . , vj,n ,
vj,0 = vj } ,
j ∈ N,
zugeordnet wobei die Mengen
VJ = {vj,k : j ∈ J, k = 0, . . . , n} ,
J ∈ J,
9.2 Multivariate “B–Splines”
103
generisch sein sollen. Dies definiert nun Matrizen
VαJ = [vj0 ,0 , . . . , vj0 ,α0 , . . . , vjd ,0 , . . . , vjd ,αd ] ∈ Rd×|α|+d ,
α ∈ Nd+1
0 , J = {j0 , . . . , jd }
und
WαJ = [vjk ,αk : k = 0, . . . , d] ∈ Rd×d+1 ,
α ∈ Nd+1
0 , J = {j0 , . . . , jd } .
Schließlich sei
σJ = sign τ W0J
die “Ausrichtung” von W0J = ∆(J). Das Vorzeichen von σJ hängt nur von einer Permutation der Ecken ab.
Definition 9.18 Die B–Spline–Fläche bezüglich der Triangulierung T ist definiert als
XX
(9.22)
Nn c =
cJ,α NαJ ,
J∈J α∈Γn
wobei
NαJ = d! σJ τ WαJ
Wir betrachten nun wieder die Mengen

◦
\
ΩJ := 
WαJ  ,
N ·|VαJ .
(9.23)
J ∈ J.
|α|≤n
Lemma 9.19 Ist vold ΩJ > 0, dann ist
σJ τ WαJ > 0,
|α| ≤ n.
J
Beweis: Sei α ∈ Γk , 1 ≤ k ≤ n, und sei αj > 0. Dann ist ΩJ ⊆ WαJ und ΩJ ⊆ Wα−e
,
j
also
h J i
> vold ΩJ > 0,
vold WαJ ∩ Wα−e
j
und daher liegen die Punkte vj,αj und vj,αj −1 auf derselben Seite der Hyperfläche, die
durch die gemeinsame Seite
[vl,αl : l = 0, . . . , d, l 6= j]
J
gegeben ist und damit haben die beiden Determinanten τ WαJ und τ Wα−e
dasselbe
j
Vorzeichen. Iteriert man das, so ergibt sich, daß
sign τ WαJ = sign τ W0J ,
|α| ≤ n.
104
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
Bemerkung 9.20 Ist vold ΩJ > 0, J ∈ J , dann sind alle B–Splines aus (9.23) nichtnegativ. Andernfalls kann die seltsame Situation eintreten, daß wir es mit negativen B–Splines
zu tun bekommen können.
Unser Ziel in diesem Abschnitt ist der Beweis des folgenden Resultats, das auf Dahmen,
Micchelli und Seidel zurückgeht.
Satz 9.21 Sei p ∈ ΠN
n und P die zugehörige Polarform. Dann ist
XX
p=
P v Jα NαJ ,
(9.24)
J∈J α∈Γn
wobei
v Jα = (vj0 ,0 , . . . , vj0 ,α0 −1 , . . . , vjd ,0 , . . . , vjd ,αd −1 ) ,
Korollar 9.22 Für n ∈ N gilt
XX
NαJ (x) = 1,
J = {j0 , . . . , jd } , α ∈ Γn .
x ∈ Rd .
J∈J α∈Γn
Als nächstes definieren wir uns eine stückweise B–Patch–Fläche über einen weiteren Algorithmus aus der Familie der de–Casteljau–Verallgemeinerungen.
Algorithmus 9.23 (Lokaler B–Patch–Algorithmus)
Gegeben: Triangulierung T = {∆(J) : J ∈ J }, Kontrollpunkte cJ,α , α ∈ Γn , generische
Knotenmengen VJ , J ∈ J und x ∈ Rd .
1. Finde J ∈ J so daß x ∈ ∆(J).
2. Setze c0α (x) = cJ,α , α ∈ Γn .
3. Für k = 1, . . . , n setze
ckα (x) =
d
X
j=0
uj x| WαJ ck−1
α+ej (x),
α ∈ Γn−k
(9.25)
4. Ergebnis: Qn c(x) = cn0 (x).
Bemerkung 9.24 Algorithmus 9.23 generiert eine stückweise polynomiale Fläche, die,
eingeschränkt auf eines der Teilsimplizes ∆(J), ein Polynom vom Grad n ist.
Die entscheidende Aussage ist, daß unter gewissen Voraussetzungen Algorithmus 9.23
einen Auswertungsalgorithmus für die Splinefläche darstellt. Genau gilt das folgende.
9.2 Multivariate “B–Splines”
Satz 9.25 Es sei f ∈ C r Rd
gulierung T , das heißt
105
N
ein stückweises Polynom vom Grad n auf der Trian-
f |∆(J) ∈ Πn ,
J ∈ J,
und sei F J : Rn → RN die zugehörige Polarform. Wenn alle Knoten mindestens die
Vielfachheit n − r haben, also
dann ist, für cJ,α = F J
vj,0 = · · · = vj,n−r−1 ,
v Jα ,
f (x) = Qn c(x) =
j ∈ J, J ∈ J ,
XX
(9.26)
cJ,α NαJ (x).
(9.27)
J∈J α∈Γn
Definition 9.26 Für j = 0, . . . , d bezeichnen wir mit
∂j Sd := {u = (u0 , . . . , ud ) ∈ Sd : uj = 0} ∼ Sd−1
die Seite von Sd die der Ecke ej gegenüberliegt.
Die Hauptarbeit für den Beweis von Satz 9.25 geschieht im folgenden Lemma, das uns
sagt, wann man einen Schritt des Auswertungsverfahrens durchführen kann.
Lemma 9.27 Angenommen, eine Koeffizientenfolge c = (cJ,α : J ∈ J , α ∈ Γn ) habe die
folgende Eigenschaft:
Zu je zwei aneinandergrenzenden Simplizes ∆(I), ∆(J), I, J ∈ J , so daß
∆(I) ∩ ∆(J) = W0I ∂p Sd = W0J ∂q Sd ,
und zu α, β ∈ Γn , so daß

βj



0
αj =
βj−1



βj
j
j
j
j
= 0, . . . , p − 1,
= p,
= p + 1, . . . , q,
= q + 1, . . . , d,
0 ≤ p ≤ q ≤ d,
βq = 0,
(9.28)
ist cI,α = cJ,β .
Dann ist
Nn c =
X X
(1)
cJ,α (x)NαJ (x),
x ∈ Rd ,
(9.29)
J∈J α∈Γn−1
wobei
(1)
cJ,α (x)
:=
d
X
j=0
uj x| WαJ cα+ej ,
x ∈ Rd .
(9.30)
106
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
Bemerkung 9.28 Die Multiindizes α, β aus (9.28) bezeichnen Indizes die zu Kontrollpunkten “auf ” der gemeinsamen Seite ∆(I) ∩ ∆(J) gehören. Die Forderung an die Kontrollpunkte ist also, daß Kontrollpunkte “mit gleichem Index” auch denselben Wert haben
und ist insofern natürlich.
Beweis von Lemma 9.27: Wir beginnen mit
XX
XX
Nn c(x) =
cJ,α NαJ (x) = d!
cJ,α σJ τ WαJ N x | VαJ
J∈J α∈Γn
= d!
J∈J α∈Γn
XX
WαJ
cJ,α σJ τ
j=0
J∈J α∈Γn
= d!
X
d
X
J∈J j=0
+d!
d
X
X
WαJ
σJ τ
α∈Γn
αj >0
d X
XX
J∈J j=0
α∈Γn
αj =0
J
uj x | WαJ N x | Vα−e
j
J J
uj x | Wα cJ,α N x | Vα−ej
J
σJ τ WαJ uj x | WαJ cJ,α N x | Vα−e
j
{z
|
= d!
d
XX
X
J∈J j=0 α∈Γn−1
= d!
X
J∈J
= d!
}
=:R(x)
h
i
J
J
σJ τ Wα+e
u
x
|
W
cJ,α+ej N x | VαJ + R(x)
j
α+ej
j
J
Wα+e
j
τj x |
J
cJ,α+ej N x | VαJ + R(x)
σJ τ Wα+e
j
J
τ Wα+e
j=0 α∈Γn−1
j
d
X
X
d
XX
X
J∈J
J
σJ τj x | Wα+e
cJ,α+ej N x | VαJ + R(x)
j
|
{z
}
j=0 α∈Γn−1
=τj (x | WαJ )
d
X X X
τj x | WαJ
J
J
=
c
d!
σ
τ
W
N
x
|
V
+R(x)
J,α+e
J
α
α
j
τ (WαJ )
|
{z
}
J∈J α∈Γn−1 j=0
=NαJ (x)
|
{z
}
(1)
=cJ,α (x)
=
X X
(1)
cJ,α (x)NαJ (x) + R(x).
J∈J α∈Γn−1
Also ist (9.29) genau dann richtig, wenn R(x) = 0, x ∈ Rd . Das werden wir jetzt nachweisen. Zu diesem Zweck bemerken wir zuerst, daß, weil T ja eine Triangulierung ist,
es zu jedem J ∈ J , jedem p ∈ {0, . . . , d} und jedem α ∈ Γn mit αp = 0 ein J 0 ∈ J ,
q ∈ {0, . . . , d} und ein β ∈ Γn mit βq = 0 gibt, so daß
h
i h 0 i
0
J
J
VαJ ∂p Sn = VβJ ∂q Sn ,
⇒
Vα−e
= Vβ−e
,
p
q
9.2 Multivariate “B–Splines”
107
0
J
J
also Nα−e
= Nβ−e
. Also ist, da nach unserer Voraussetzung außerdem cJ,α = cJ 0 ,β gilt,
p
q
der Ausdruck
d X XX
J∈J p=0
α∈Γn
αp =0
cJ,α σJ τ
WαJ
up
|
2
R(x),
d!
i
h
J J0
J0
J
0
0
(x)
x | Wα + cJ ,β σJ τ Wβ uq x | Wβ
Nα−e
p
{z
}
J (x)
=:qp,α
(9.31)
d
gleich
x∈R .
Wir fixieren nun p, J und α. Nach (9.20) ist dann
0
J
qp,α
(x) = cJ,α σJ τp x | WαJ + cJ 0 ,β σJ 0 τq x | WβJ ,
wobei
(9.32)
τp x | WαJ = τq x | WβJ 0 .
Das heißt, die interessanten Größen sind
σJ,α = sign τ WαJ
und
0
σJ 0 ,β = sign τ WβJ .
Dann ist, für v = VαJ ep = vjp ,0 , J = {j0 , . . . , jd }
uq v |
h
0
WβJ
i
σJ 0 ,β τq v | WβJ
=
0
σJ 0 ,β τ WβJ
0
(9.33)
und eben
J σJ,α τp v | WαJ
1 = up v | Wα =
.
(9.34)
σJ,α τ (WαJ )
Wir betrachten die Hyperebene H = WαJ \ {v} und unterscheiden zwei geometrische
Fälle:
0
1. die Punkte v und v 0 = VβJ eq liegen auf verschiedenen Seiten von H. Dann ist der
Ausdruck in (9.33) negativ (so charakterisieren sich positive und negative baryzentrische Koordinaten) und damit ist
σJ σJ,α = σJ 0 σJ 0 ,β .
Da die Nenner in (9.33) und (9.34) beide positiv sind, müssen die Zähler unterschiedliches Vorzeichen haben und damit ist
σJ τp x | WαJ
= σJ,α σJ 0 σJ 0 ,β τp x | WαJ = σJ 0 σJ 0 ,β σJ,α τp x | WαJ
0
0
= σJ 0 σJ 0 ,β −σJ 0 ,β τq x | WβJ
= −σJ 0 τq x | WβJ . (9.35)
108
9 SIMPLEX–SPLINES, B–PATCHES UND BLOSSOMING
2. die Punkte v und v 0 liegen auf derselben Seite von H. Dann ist der Ausdruck in
(9.33) positiv und wir haben σJ σJ,α = −σJ 0 σJ 0 ,β . Nun haben beide Nenner in
(9.33) und (9.34) unterschiedliches Vorzeichen, aber beide Werte dasselbe Vorzeichen, also müssen die Zähler wieder unterschiedliches Vorzeichen haben und wir
erhalten wieder (9.35).
Da in beiden Fällen (9.35) gilt, ist also
0
J
(x) = σJ τp x | WαJ cJα − cJβ = 0,
qp,α
und somit
R(x) =
p ∈ {0, . . . , d}, α ∈ Γn , J ∈ J ,
d
d! X X X J
qp,α (x)NαJ = 0,
2 J∈J p=0 α∈Γn
αp =0
was schließlich das Lemma beweist.
Beweis von Satz 9.25: Wir beginnen damit,
c0J,α () := cJ,α := F J v Jα ,
α ∈ Γn , J ∈ J .
(9.36)
zu setzen. Dann definieren wir Multilinearformen ckJ,α (x1 , . . . , xk ), α ∈ Γn−k , J ∈ J ,
x1 , . . . , xk ∈ Rd induktiv als
ckJ,α
(x1 , . . . , xk ) =
s
X
j=0
uj xk | WαJ ck−1
J,α+ej (x1 , . . . , xk−1 ) ,
α ∈ Γn−k , k = 1, . . . , n
(9.37)
und “Splineflächen”
Nn−k c (x1 , . . . , xk ) (x) =
X X
ckJ,α (x1 , . . . , xk ) NαJ (x).
(9.38)
J∈J α∈Γn−k
Als nächstes stellen wir fest, daß
ckJ,α (x1 , . . . , xk ) = F J v Jα , x1 , . . . , xk ,
J ∈ J , α ∈ Γn−k , k = 1, . . . , n,
(9.39)
was wir durch Induktion über k zeigen werden wobei der Fall k = 0 gerade (9.36) ist.
Ansonsten liefert die rekursive Definition (9.37) für J = {j0 , . . . , jd } und α ∈ Γn−k−1
ck+1
J,α
(x1 , . . . , xk+1 ) =
=
d
X
l=0
d
X
l=0
= FJ
= FJ
ul xk+1 | WαJ cJJ,α+el (x1 , . . . , xk )
ul xk+1 | WαJ F J (v α , vjl ,αl , x1 , . . . , xk )
v Jα ,
d
X
J
ul xk+1 | Wα vjl ,αl , x1 , . . . , xk
l=0
J
v α , x1 , . . . , xk+1 ,
!
9.2 Multivariate “B–Splines”
109
womit (9.39) bewiesen ist.
Seien nun ∆(J) und ∆(J 0 ) aneinandergrenzende Simplizes mit gemeinsamer Seite
Λ = ∆(J)∂p Sd = ∆(J 0 )∂q Sd
0
und seien α, β ∈ Γn−k , k ≤ r, wie in (9.28). Damit sind v Jα und v Jβ lediglich Permutationen
voneinander. Wegen der Vielfachheit der Knoten enthält v Jα mindestens n − r Elemente
aus Λ und damit ist, unter Verwendung der r–fachen Differenzierbarkeit von f und des
guten alten Satz 4.18,
0
J
J
J
k
cJ,α (x1 , . . . , xk ) = F J v α , x1 , . . . , xk = F J 0 v α , x1 , . . . , xk = F J 0 v β , x1 , . . . , xk
= cJ 0 ,β k (x1 , . . . , xk ) .
Damit können wir aber Lemma 9.27 anwenden und erhalten, daß für x1 , . . . , xk ∈ Rd
k
Nn−k c (x1 , . . . , xk ) (x) =
X
X
d
X
J∈J α∈Γn−k−1 j=0
|
uj x | WαJ cJJ,α+ej (x1 , . . . , xk ) NαJ (x)
{z
=ck+1
J,α (x1 ,...,xk ,x)
}
= Nn−k−1 ck+1 (x1 , . . . , xk , x) (x),
und damit ist insbesondere
Nn c(x) = Nn−k ck (x, . . . , x) (x),
x ∈ Rd , k = 0, . . . , r + 1.
(9.40)
Nun sind aber, wieder wegen der Vielfachheit der Knoten, alle B–Splines, die in der
Splinefläche Nn−r−1 cr+1 (x, . . . , x) auftreten, von der Form
N (·| vj0 ,0 , . . . , vj0 ,0 , . . . , vjd ,0 , . . . , vjd ,0 )
|
{z
}
|
{z
}
α0
αd
und daher nach Korollar 8.21 Bézierflächen, die aber lokal gerade mit dem obigen Algorithmus ausgewertet werden können und somit ist
Nn c(x) = Nn−k ck (x, . . . , x) (x),
also, für x ∈ ∆(J),
x ∈ Rd , k = 0, . . . , n,
Nn c(x) = cnJ,0 (xn ) = Qn c(x).
Mit Satz 9.25 sind wir dann auch schon fertig mit dem Beweis von Satz 9.21!
110
LITERATUR
Uns ist in alten mæren
wunders viel geseit
von Helden lobebæren
von grôzer arebeit
Das Nibelungenlied
Literatur
[1] R. E. Barnhill, Surfaces in computer aided geometric design: a survey with new results, Comp. Aided Geom. Design 2 (1985).
[2] P. Bézier, The mathematical basis of the UNISURF CAD system, Butterworth & Co
Ltd., 1986.
[3] W. Boehm, G. Farin, and J. Kahmann, A survey of curve and surface methods in
CAGD, Comp. Aided Geom. Design 1 (1984).
[4] C. de Boor, On calculating with B–splines, J. Approx. Theory 6 (1972), 50–62.
[5]
, A practical guide to splines, Springer–Verlag, New York, 1978.
[6]
, B–form basics, Geometric Modelling: Algorithms and new trends (G. Farin,
ed.), SIAM, 1987.
[7]
, Splinefunktionen, Lectures in Mathematics, ETH Zürich, Birkhäuser, 1990.
[8]
, A multivariate divided difference, Approximation Theory VIII, Vol. 1: Approximation and Interpolation (C. K. Chui and L. L. Schumaker, eds.), World Scientific
Publishing Co., 1995, pp. 87–96.
[9]
, On the Sauer–Xu formula in multivariate polynomial interpolation, Math.
Comp. 65 (1996), 1231–1234.
[10] C. de Boor and K. Höllig, B–splines without divided differences, Geometric Modeling.
Algorithms and New Trends (G. Farin, ed.), SIAM, 1987, pp. 21–27.
[11] P. L. Butzer, M. Schmidt, and E. L. Stark, Observations on the history of central
B–splines, Archive for History of Exact Sciences 39 (1988), no. 2, 137–156.
[12] P. de Casteljau, Formes à pôles, Hermes, Paris, 1985.
[13] C. K. Chui, Multivariate splines, CBMS-NSF Regional Conference Series in Applied
Mathematics, vol. 54, SIAM, 1988.
LITERATUR
111
[14] M. G. Cox, The numerical evaluation of B–splines, J. Inst. Math. Appl. 10 (1972),
134–149.
[15] H. B. Curry and I. J. Schoenberg, On Pólya frequency functions IV: The fundamental
spline functions and their limits, J. d’Analyse Math. 17 (1966), 71–107.
[16] W. Dahmen and C. A. Micchelli, Local dimension of piecewise polynomial spaces,
syzygies, and the solutions of systems of partial differential operators, Math. Nachr.
148 (1990), 117–136.
[17] W. Dahmen, C. A. Micchelli, and H. P. Seidel, Blossoming begets B–spline bases built
better by B–patches, Math. Comp. 59 (1992), no. 199, 97–115.
[18] P. J. Davis, Interpolation and approximation, Dover Books on Advanced Mathematics, Dover Publications, 1975.
[19] G. Farin, Curves and surfaces for computer aided geometric design, Academic Press,
1988.
[20] K. Höllig, Multivariate splines, SIAM J. Numer. Anal. 19 (1982), 1013–1031.
[21] E. Isaacson and H. B. Keller, Analysis of numerical methods, John Wiley & Sons,
1966.
[22] S. Karlin, Total positivity, Stanford University Press, Stanford CA, 1968.
[23] P. Kergin, A natural interpolation of C K functions, J. Approx. Theory 29 (1980),
278–293.
[24] K. S. Kunz, Numerical analysis, McGraw-Hill Book Company, 1957.
[25] C. A. Micchelli, A constructive approach to Kergin interpolation in Rk : multivariate
B–splines and Lagrange interpolation, Rocky Mountain J. Math. 10 (1979), 485–497.
[26]
, On a numerically efficient method of computing multivariate B–splines, Multivariate Approximation Theory (W. Schempp and K. Zeller, eds.), Birkhäuser, Basel,
1979, pp. 211–248.
[27]
, Mathematical aspects of geometric modeling, CBMS-NSF Regional Conference Series in Applied Mathematics, vol. 65, SIAM, 1995.
[28] C. A. Micchelli and P. Milman, A formula for kergin interpolation in Rk , J. Approx.
Th. 29 (1980), 294–296.
[29] A. F. Möbius, Der barycentrische Calcul, Johann Ambrosius Barth, 1827.
[30] G. Nürnberger, Approximation by spline functions, Springer–Verlag, 1989.
112
LITERATUR
[31] J. M. Peña, Shape preserving representations for trigonometric polynomial curves,
Comp. Aided Geom. Design 14 (1997), 5–11.
[32] L. Ramshaw, Blossoming: A connect–the-dots approach to splines, Tech. report, Digital Systems Research Center, Palo Alto, 1987.
[33]
, Blossoms are polar forms, Comp. Aided Geom. Design 6 (1989), 352–378.
[34] T. Sauer, Multivariate B–splines with (almost) arbitrary knots, Approximation Theory VIII, Vol. 1. Approximation and Interpolation (C. K. Chui and L. L. Schumaker,
eds.), Series in Approximations and Decompositions, vol. 6, World Scientific Publishing Co., 1995, pp. 477–488.
[35]
, Ein algorithmischer Zugang zu Polynomen und Splines, Mathem. Semesterberichte 43 (1996), 169–189.
[36]
, Multivariate Bernstein polynomials, convexity and related shape properties,
Shape preserving representations in Computer Aided Design (J. M. Pena, ed.), Nova
Science Publishers, 1999.
[37] T. Sauer and Yuan Xu, On multivariate Hermite interpolation, Advances Comput.
Math. 4 (1995), no. 4, 207–259.
[38]
, On multivariate Lagrange interpolation, Math. Comp. 64 (1995), 1147–1170.
[39] I. J. Schoenberg, Contributions to the problem of approximation of equidistant data
by analytic functions. part A. – on the problem of of smoothing or graduation. a first
class of analytic approximation formulae, Quart. Appl. Math. 4 (1949), 45–99.
[40]
, Contributions to the problem of approximation of equidistant data by analytic
functions. part B. – on the second problem of osculatory interpolation. a second class
of analytic approximation formulae, Quart. Appl. Math. 4 (1949), 112–141.
[41]
, Cardinal spline interpolation, CBMS-NSF Regional Conference Series in Applied Mathematics, vol. 12, SIAM, 1973.
[42] L. L. Schumaker, Spline funtions: Basic theory, Pure and Applied Mathematics: A
Wiley–Interscience Series of Texts, Monographs and Tracts, John Wiley & Sons,
1981.
[43] H. P. Seidel, Knot insertion from a blossoming point of view, Comp. Aided Geom.
Design 5 (1988), 81–86.
[44]
, A new multiaffine approach to B–splines, Comp. Aided Geom. Design 6
(1989), 23–32.
[45]
, Symmetric recursive algorithms for surfaces: B–patches and the de boor algorithm for polynomials over triangles, Constructive Approximation 7 (1991), 257–279.
LITERATUR
[46]
113
, Representing piecewise polynomials as linear combinations of multivariate
B–splines, Mathematical Methods in Computer Aided Geometric Design (T. Lyche
and L. L. Schumaker, eds.), Academic Press, 1992, pp. 559–566.
[47] J. Stoer, Einführung in die Numerische Mathematik I, 4 ed., Heidelberger Taschenbücher, Springer Verlag, 1983.
[48] J. Stoer and R. Bulirsch, Einführung in die Numerische Mathematik II, 2 ed., Springer
Verlag, 1978.
Herunterladen