Unterteilungsalgorithmen

Werbung
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
Herunterladen