Unterteilungsalgorithmen Miriam Hinzen 9. Januar 2010 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 1 / 22 Übersicht 1 Splinekurven 2 Einfügen von Knoten, Unterteilung 3 Konvergenz der verfeinerten Kontrollnetze 4 Variationsvermindernde Eigenschaften Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 2 / 22 Splinekurven Definition 1. Sei c := {ci }ni=1 ⊂ E 3 ein Kontrollnetz und T = {θi }n+k i=1 die erweiterte Knotenfolge im Intervall [a,b]. Dann heißt S(θ) := n X ci Ni,k (θ), θ ∈ [a, b], i=1 die parametrische B-Spline-Darstellung einer Kurve der Ordnung k. Die ci heißen Kontrollpunkte oder Kontrollkoeffizienten. Es gilt, dass S(a) = c1 und S(b) = cn . Für θ ∈ [θj , θj+1 ) gilt S(θ) ∈ [cj−k+1 , . . . , cj ]. Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 4 / 22 Splinekurven Lemma 1 1 Falls 2k − 2 aufeinanderfolgende kollineare Punkte, für die gilt, dass die mittleren beiden nicht zusammenfallen, in einem Kontrollnetz c enthalten sind, so enthält die zugehörige Splinekurve k-ter Ordnung ein Liniensegment. 2 Falls 2k − 3 aufeinanderfolgende kollineare Punkte in einem Kontrollnetz c enthalten sind, so enthält die zugehörige Splinekurve k-ter Ordnung den mittleren der kollinearen Punkte. 3 Sei k 6= 1. Falls alle Knoten θi , i = 1, . . . , n + k, unterschiedlich sind und alle Kontrollkoeffizienten ci , i = 1, . . . , n, unterschiedlich sind, so reichen sogar schon k kollineare Punkte dafür aus, dass die Splinekurve k-ter Ordnung ein Liniensegment enthält. Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 5 / 22 Einfügen von Knoten, Unterteilung Definition Verfeinerung n+k Gegeben sei die erweiterte Knotenfolge T = {θi }i=1 . Dann nennt man N+k ∆ := {δi }i=1 eine Verfeinerung von T , wenn T ⊂ ∆, wobei θi < θi+k und δi < δi+k für alle i = 1, . . . , n bzw. i = 1, . . . , N. Es bezeichne Ni,k,T bzw. Ni,k,∆ den i-ten B-Spline der Ordnung k und ci,T bzw. ci,∆ den i-ten Kontrollkoeffizienten bezüglich der Knotenfolge T bzw. ∆. Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 7 / 22 Der Boehm–Algorithmus Lemma 3 Sei θj = δP l ≤ . . . ≤ θj+k = δm+k und m ≥ j (da T ⊂ ∆) und sei Nj,k,T = m i=l αj,k (i)Ni,k,∆ . Dann gilt αj,k (i) ≥ 0 n X αj,k (i) = 1 für alle für alle i = l, . . . , m i = 1, . . . , N. j=1 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 8 / 22 Der Boehm–Algorithmus Beweis von Lemma 1 k−1 [δj+1 , . . . , δj+k+1 ](· − θ)+ − [δj , . . . , δj+k ](· − θ)k−1 + δj+k+1 − δj k−1 = [δj , . . . , δj+k+1 ](· − θ)+ = = k−1 [δj , . . . , δν−1 , δν+1 , . . . , δj+k+1 ](· − θ)k−1 + − [δj , . . . , δj+k ](· − θ)+ δj+k+1 − δν k−1 [θj , . . . , θj+k ](· − θ)k−1 + − [δj , . . . , δj+k ](· − θ)+ δj+k+1 − δν Nj+1,k,∆ (θ) Nj,k,∆ (θ) 1 ⇒ − δj+k+1 − δj δj+k+1 − δj+1 δj+k − δj Nj,k,T (θ) Nj,k,∆ (θ) 1 = − δj+k+1 − δν θj+k − θj δj+k − δj Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 9 / 22 Der Boehm–Algorithmus Beweis von Lemma 1, Fortsetzung ⇒ Nj,k,T (θ) = δj+k+1 − δν δν − δj Nj+1,k,∆ (θ) + Nj,k,∆ (θ) δj+k+1 − δj+1 δj+k − δj Man definiert: αj,k (i) = δν −δj δj+k −δj δj+k+1 −δν δj+k+1 −δj+1 0 für i = j, für i = j + 1, sonst. ⇒ αj,k (i) ≥ 0 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 10 / 22 Der Boehm–Algorithmus Beweis von Lemma 1, Fortsetzung S(θ) = n X cj,T Nj,k,T (θ) = n X j=1 = N X n X i=1 cj,T j=1 N X ! αj,k (i)Ni,k,∆ (θ) i=1 cj,T αj,k (i) Ni,k,∆ (θ) = j=1 N X ci,∆ Ni,k,∆ (θ) i=1 wobei ci,∆ := n X cj,T αj,k (i) . j=1 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 11 / 22 Der Boehm–Algorithmus Beweis von Lemma 1, Fortsetzung S(θ) = n X cj,T Nj,k,T (θ) = 1 = j=1 n X Nj,k,T (θ) j=1 ⇒ cj,T = 1 für j = 1, . . . , n und analog ci,∆ = 1 für i = 1, . . . , N ⇒ n X αj,k (i) = 1 für alle i = 1, . . . , N j=1 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 12 / 22 Der Boehm–Algorithmus Aus der Darstellung der αj,k (i) folgt ci,∆ = ci,T δi+k −δν δi+k −δi ci−1,T + δν −δi δi+k −δi ci,T c i−1,T Miriam Hinzen () Unterteilungsalgorithmen ,i ≤ ν − k ,ν − k ≤ i ≤ ν ,i ≥ ν 9. Januar 2010 13 / 22 Der Oslo-Algorithmus Lemma 2 Für alle δ ∈ ∆ und für alle k ∈ N, k ≥ 2, gilt (δ − θ)k−1 + = = N X i=1 N X (δ − δi+1 )+ · · · (δ − δi+k−1 )+ Ni,k,∆ (θ) ϕi,k (δ)Ni,k,∆ (θ), i=1 wobei ϕi,k (δ) := Miriam Hinzen () Qk−1 r =1 (δ − δi+r )+ . Unterteilungsalgorithmen 9. Januar 2010 14 / 22 Definition 2 Die Basiswechselkoeffizienten αj,k (i) := (θj+k − θj )[θj , . . . , θj+k ](· − δi )0+ (· − δi+1 )+ · · · (· − δi+k−1 )+ = (θj+k − θj )[θj , . . . , θj+k ]ϕi,k , wobei ϕi,k (δ) := (δ − δi )0+ · Qk−1 r =1 (δ − δi+r )+ , heißen diskrete B-Splines. Satz 1 Die diskreten B–Splines können für k ≥ 2 rekursiv bestimmt werden durch αj,k (i) = θj+k − δi+k−1 δi+k−1 − θj αj,k−1 (i) + αj+1,k−1 (i). θj+k−1 − θj θj+k − θj+1 Lemma 5 Ist δi ∈ [θr , θr +1 ), so gilt αj,k (i) = 0 Miriam Hinzen () für j ∈ / {r − k + 1, . . . , r }. Unterteilungsalgorithmen 9. Januar 2010 15 / 22 Satz 2 (Oslo-Algorithmus) Fügt man l Knoten gleichzeitig ein, lassen sich die neuen Koeffzienten ci,∆ , i = 1, . . . , N, rekursiv durch ci,∆ = n X <l> cj,T (i)αj,k−l (i) j=l+1 bestimmen, wobei ( cj,T <l> cj,T (i) = δi+k−l −θj <l−1> (i) θj+k−l −θj cj,T Miriam Hinzen () + θj+k−l −δi+k−l <l−1> θj+k−l −θj cj−1,T (i) Unterteilungsalgorithmen für l = 0, für l > 0. 9. Januar 2010 16 / 22 (k − 1)-faches Einfügen von Knoten Fügt man einen Knoten η (k − 1)-fach zwischen den Knoten θi und θi+1 ein, so gilt S(η) = ci,∆ . Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 17 / 22 N X kck∞ ≤ Dk k ci Ni,k,T k∞ i=1 ⇒ sup |S(ξi,∆ ) − ci,∆ | ≤ Dk k N X i=1,...,N (S(ξi,∆ ) − ci,∆ )Ni,k,∆ k∞ . i=1 für beliebige Parameter ξi,∆ ∈ [a, b]. ξi,∆ = δi,∆ := 1 (δi+1 + . . . + δi+k−1 ) k −1 Schoenberg-Operator: V∆ : C [a, b] → Sk (∆) (V∆ f )(δ) = N X f (δi,∆ )Ni,k,∆ (δ) i=1 Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 19 / 22 ⇒ sup |S(δi,∆ ) − ci,∆ | ≤ Dk k i=1,...,N N X (S(δi,∆ ) − ci,∆ )Ni,k,∆ k∞ i=1 = Dk kV∆ S − Sk∞ Mit h∆ := max i=1,...,N−1 |δi+1 − δi | und mit Korollar 5 aus Felix Vortrag 2 ⇒ kV∆ S − Sk∞ ≤ Ch∆ kS̈k∞ ⇒ 2 sup |S(δi,∆ ) − ci,∆ | ≤ Dk Ch∆ kS̈k∞ i=1,...,N Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 20 / 22 Lemma 6 Seien pi = x(ui ), i = 1, . . . , m, Punkte auf der Kurve x(u), u ∈ [a, b], und sei Pp der zugehörige Polygonzug. Sei H eine beliebige Ebene, so dass pi pi+1 6⊂ H für alle i < m und es bezeichne Z (H, γ) die Anzahl der Schnittpunkte der Kurve γ mit der Ebene H. Dann gilt Z (H, Pp) ≤ Z (H, x). Satz 3 Sei S(θ) = Pn j=1 cj,T Nj,k,T (θ) eine Splinekurve. Dann gilt Z (H, S) ≤ Z (H, PcT ), wobei PcT der zu dem Kontrollnetz cT gehörige Polygonzug ist. Miriam Hinzen () Unterteilungsalgorithmen 9. Januar 2010 22 / 22