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.