Bivariate Bezier-Bernstein Methoden

Download Report

Transcript Bivariate Bezier-Bernstein Methoden

Lehrstuhl für Mathematik IV
G. Nürnberger, M. Matt, G. Schneider
Approximationstheorie
Seminar HWS 2011
Bézier-Bernstein Methoden für Bivariate
Polynome
Mathias Grieser
Murat Deniz
29.09.2011
1
Bézier-Bernstein Methoden für Bivariate
Polynome
Inhaltsverzeichnis
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Baryzentrische Koordinaten
Bernstein Basis Polynome
Die Bézier-Bernstein Darstellung
Stabilität der BB-Darstellung
Der deCasteljau Algorithmus
Richtungsableitung
Ableitung an einem Eckpunkt
Kreuzableitung auf einer Kante
Stetigkeit und stetige Differenzierbarkeit
Unterteilung/Basiswechsel
2
1. Baryzentrische Koordinaten
Seien
vi := (xi; yi),
i = 1, 2, 3
Punkte in ℝ² und sei
T := <v1, v2, v3>
ein Dreieck mit den Ecken v1, v2, v3
Lemma 1.1:
Jeder Punkt v := (x, y) є ℝ² lässt sich in der Form
v = b1v1 + b2v2 + b3v3
mit
1 = b1 + b2 + b3
darstellen.
b1, b2, b3 werden als baryzentrische Koordinaten des Punkts v bzgl.
des Dreiecks T bezeichnet.
3
1. Baryzentrische Koordinaten
Dies ist gleichbedeutend mit folgender Matrix
1 1 1 b1
1
x1 x2 x3 b2 = x
y1 y2 y3 b3
y
=: M
Durch lösen dieses LGS oder durch die Formel (b2, b3 analog)
1 1 1
det x x2 x3
y y2 y3
b1 =
det (M)
erhält man die baryzentrischen Koordinaten.
4
1. Baryzentrische Koordinaten
Sei T ein Dreieck mit Eckpunkten v1, v2 und v3.
Dann besitzen die baryzentrischen Koordinaten an den Eckpunkten
folgende Werte:
Abb. 1: baryzentrische Koordinaten an den Punkten v1
am Punkt v1
b1 = 1
b2 = 0
b3 = 0
am Punkt v2
b1 = 0
b2 = 1
b3 = 0
, v2 , v3
am Punkt v3
b1 = 0
b2 = 0
b3 = 1
5
2. Bernstein Basis Polynome
Definition 2.1
Die Bernstein Basis Polynome sind
Bdijk :=
d!
i j k
i! j! k! b 1b 2b 3 ,
i+j+k = d
wobei i,j,k є ℕ0
Rekursionsformel:
Bdijk := b1 Bd-1i-1,j,k + b2 Bd-1i,j-1,k + b3 Bd-1i,j,k-1
i+j+k=d > 0
wobei B0000 = 1 gilt und die Bernstein Polynome gleich 0 sind, falls
mindestens eines der Indizes negativ ist.
Beispiel:
Bdd00 := b1 Bd-1d-1,0,0 + b2 Bd-1d,-1,k + b3 Bd-1d,0,-1 = b1 Bd-1d-1,0,0
6
2. Bernstein Basis Polynome
Eigenschaften:
„Partition der Eins“:
∑ Bdijk (v) = 1
i+j+k = d
für alle v є ℝ²
„Nicht-Negativität“:
Bdijk (v) ≥ 0 für alle i+j+k = d
vєT
Basis:
Bd := {Bdijk }i+j+k=d
Dimension:
dim Bd =
d+2
2
7
3. Die Bézier-Bernstein Darstellung
Bézier - Bernstein Darstellung (BB-Darstellung):
p = ∑ cijkBdijk
i+j+k = d
wobei Bdijk die Bernstein Basis Polynome sind und cijk
als Bézier-Bernstein-Koeffizienten (BB-Koeffizienten) bezeichnet
werden.
Notation:
Sei T := <v1, v2, v3> ein Dreieck, wobei v1, v2, v3 die Eckpunkten sind
und d sei der Grad des Polynoms p auf diesem Dreieck.
Dann korrespondiert der Eckpunkt v1 mit dem Koeffizient cd00, der
Eckpunkt v2 mit dem Koeffizient c0d0 und der Eckpunkt v3 mit dem
Koeffizient c00d
8
3. Die Bézier-Bernstein Darstellung
Bézier-Bernstein-Punkte (BB-Punkte):
Die BB-Punkte ξijk є ℝ² lassen sich folgendermaßen bestimmen:
Dd,T := { ξijk := (iv1 + jv2 + kv3)/ d}i+j+k=d
Zusammen mit den Bézier-Bernstein-Koeffizienten cijk є ℝ bilden sie die
Kontrollpunkte von p.
Wichtig:
Die BB-Punkte bilden eine Interpolationslage für das Polynom p
9
3. Die Bernstein - Bézier Form
Beispiel für d = 3:
Abb. 3: BB-Koeffizienten
Abb. 2: BB-Punkte
dim B³ =
d+2
2
=
3+2
2
= 10
Im weiteren Verlauf werden
die Koeffizienten aus Abb. 3
so wie in Abb. 4 dargestellt
Abb. 4: BB-Koeffizienten(vereinfacht)
10
4. Stabilität der BB-Darstellung
Der Graph eines Polynoms p verläuft innerhalb der konvexen Hülle
dieser Kontrollpunkte
Abb. 5: konvexe Hülle der Kontrollpunkte im univariaten Fall
11
4. Stabilität der BB-Darstellung
Sei
║c║∞ := max |cijk|
i+j+k = d
dann gilt folgender Satz:
Satz 4.1:
Sei p ein Polynom in BB-Darstellung mit Koeffizientenvektor c. Dann
gilt:
║p║T ≤ ║c║∞
Dies bedeutet, dass die Werte des Polynoms p nie größer sein können,
als der größte Koeffizient der BB-Darstellung
12
5. Der deCasteljau Algorithmus
Satz 5.1:
Sei p ein Polynom in BB-Darstellung mit Koeffizienten
c(0)ijk := cijk
i+j+k = d
v besitzt die baryzentrischen Koordinaten b := (b1.b2, b3) und für
ℓ = 1,...,d gilt
c(ℓ)ijk := b1 c(ℓ-1)i+1,j,k + b2 c(ℓ-1)i,j+1,k + b3 c(ℓ-1)i,j,k+1
für i+j+k = d - ℓ
Dann gilt
p(v) = ∑
i+j+k = d - ℓ
c(ℓ)ijk Bd- ℓijk(v)
für alle 0 ≤ ℓ ≤ d und
p(v) = c(d)000
13
5. Der deCasteljau Algorithmus
ℓ=0
ℓ=1
ℓ=2
Abb. 6: de Casteljau Algorithmus
Abbildung 6 zeigt den Algorithmus für d = 2
Beispiel für ℓ = 1:
c(1)100:= b1 c(0)2,0,0 + b2 c(0)1,1,0 + b3 c(0)1,0,1
wobei c(0)ijk := cijk
14
6. Richtungsableitung
Wichtige Notationen:
Ring RTm(v1):
Sei 0 ≤ m ≤ d. Dann ist der Ring RTm(v1) wie folgt definiert:
RTm(v1) := { ξd-m,j,m-j }mj=0
wobei die ξ die BB-Punkte sind. Der Ring beinhaltet alle Punkte, die auf dem
Rand des Radius m um den Punkt v1 liegen. (RTm(v2), RTm(v3) analog)
Scheibe DTm(v1):
Sei 0 ≤ m ≤ d. Dann ist die Scheibe DTm(v) wie folgt definiert:
DTm(v1) := ∪mn=0 RTm(v)
Sie beinhaltet alle Punkte die auf dem Rand und innerhalb des Radius m um
den Punkt v1 liegen. (DTm(v2), DTm(v3) analog)
Achtung: Verwechsel die Notation der Scheibe DTm nicht mit der
Notation der Ableitung Du , die auf den folgenden Folien definiert wird!
15
6. Richtungsableitung
Veranschaulichung:
Gegeben sei eine Triangulierung der
Dreiecke T1, T2, T3, T4, T5 mit
gemeinsamen Punkt v.
RT1(v) ist der Ring, der alle Punkte
T5
auf dem Radius 1 um v enthält.
RT2(v) ist der Ring, der alle Punkte
auf dem Radius 2 um v enthält.
RT3(v) ist der Ring, der alle Punkte
auf dem Radius 3 um v enthält.
Die Scheibe DT3(v) enthält alle
Punkte von RT1(v) , RT2(v) und RT3(v)
T1
T2
v
T3
T4
Abb. 7: Triangulierung von T1, T2, T3,
T 4, T 5
16
6. Richtungsableitung
In diesem Abschnitt sei v ein Punkt in ℝ² und u ein Vektor. Jeder Punkt
v ist eindeutig bestimmt durch seine baryzentrische Koordinaten b1, b2
und b3. Außerdem wird jeder Vektor u := w - ŵ durch ein Tripel (a1, a2,
a3) bestimmt. Dabei ist
ai := αi – βi,
i = 1, 2, 3,
wobei (α1, α2, α3) und (β1, β2, β3) die baryzentrischen Koordinaten der
zwei Punkte w und ŵ sind.
Beachte, dass die Summe des Tripels (a1, a2, a3) sich zu 0 summieren.
(a1, a2, a3) werden als Richtungskoordinaten von u bezeichnet.
17
6. Richtungsableitung
Lemma 6.1:
Sei u ein Vektor mit Richtungskoordinaten (a1, a2, a3). Dann ist für
jedes i+j+k = d
DuBdijk := d [a1 Bd-1i-1,j,k + a2 Bd-1i,j-1,k + a3 Bd-1i,j,k-1]
die Richtungsableitung der Bernstein-Polynome. Diese hängt nicht nur
von der Richtung ab, sondern auch von der Länge des Vektors u.
18
6. Richtungsableitung
Satz 6.2:
Sei p ein Polynom in BB-Darstellung bzgl. eines Dreiecks T und sei u
ein Richtungsvektor, der durch das Tripel (a1, a2, a3) beschrieben wird.
Dann ist die Richtungsableitung an einem Punkt v von p in Richtung u
gegeben durch:
Dup(v) = d ∑ c(1)ijk(a)Bd-1ijk(v)
i+j+k=d-1
wobei c(1)ijk(a) die Koeffizienten aus dem 1. Schritt des deCasteljau
Algorithmus, basierend auf dem Tripel a, sind.
Abb. 8: Richtungsableitung
am Punkt v
19
6. Richtungsableitung
Satz 6.3:
Sei p ein Polynom in BB-Darstellung bzgl. eines Dreiecks T und sei u
ein Richtungsvektor, der durch das Tripel (a1, a2, a3) beschrieben wird.
Dann gilt für 1 ≤ m ≤ d
Dmup(v) =
d!
(d-m)!
∑
i+j+k=d-m
c(m)ijk(a)Bd-mijk(v)
wobei c(m)ijk(a) die Koeffizienten aus dem m. Schritt des deCasteljau
Algorithmus, basierend auf dem Tripel a, sind.
Der Vorteil der BB-Polynome ist, dass wir für die Richtungsableitung
mit m < d nicht alle Koeffizienten des deCasteljau-Algorithmus
benötigen!
20
7. Ableitung an einem Eckpunkt
Sei T wieder ein Dreieck mit den Eckpunkten v1, v2, v3. Die Ableitung
an dem Eckpunkt v1 Richtung Eckpunkt v2 und Richtung Eckpunkt v3 ist
beispielhaft wie folgt definiert:
Dmv2-v1Dnv3-v1p(v1) =
(-1)m+nd!
(d-m-n)!
m
n
∑ ∑
i=0
j=0
m
i
n
j
(-1)i+j cd-i-j,i,j
für beliebige 0 ≤ m+n ≤ d. Dabei liegen alle dieser Koeffizienten in der
Scheibe DTm+n(v1)
Die Ableitungen an den Eckpunkten v2 und v3 oder die Ableitung in eine
Richtung erfolgt analog.
21
7. Ableitung an einem Eckpunkt
Dmv2-v1Dnv3-v1p(v1)
=
(-1)m+nd!
(d-m-n)!
m
n
∑ ∑
i=0 j=0
m
i
n
j
(-1)i+j cd-i-j,i,j
Veranschaulichung für d = 3 und m, n = 1:
D1v2-v1D1v3-v1p(v1) =
=
(-1)2 3!
1!
1
1
∑ ∑
i=0 j=0
1
i
1
j
(-1)i+j c3-i-j,i,j
6 (c3,0,0 – c2,0,1 – c2,1,0 + c1,1,1 )
i=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
Die benötigten Koeffizienten liegen alle auf der Scheibe DT1+1(v1) =
DT2(v1).
Der Vorteil der BB-Polynome ist, dass wir für eine Ableitung an einem
Eckpunkt nicht alle Koeffizienten cijk benötigen!
22
7. Ableitung an einem Eckpunkt
i = 0, j = 0
Abb. 9:
Ableitung am
Eckpunkt v1 Richtung
v2 und Richtung
v3
i = 1, j = 0
i = 0, j = 1
i = 1, j = 1
DT2(v1)
23
8. Kreuzableitung auf einer Kante
Sei T wieder ein Dreieck mit den Eckpunkten v1, v2, v3 und u sei ein
Richtungsvektor, der nicht parallel zur Kante e := < v2, v3> ist. Das
Tripel a := (a1, a2, a3) sind die Richtungskoordinaten von u. Dann ist die
Kreuzableitung auf der Kante e definiert durch:
d!
Dmup(v) = (d-m)!
∑
j+k=d-m
c(m)0jk(a)Bd-m0jk(v)
wobei c(m)0jk(a) die Koeffizienten aus dem m. Schritt des deCasteljau
Algorithmus, basierend auf dem Tripel a, sind.
Bei der Kreuzableitung muss mind. eine Komponente des
Richtungsvektors parallel zur jeweiligen Kante, auf der abgeleitet wird,
sein.
24
8. Kreuzableitung auf einer Kante
Veranschaulichung für d = 3:
c[1]200
c300
c201
c210
c102
[2]
c[1]002 c 010
c003
c030
c021
m=0
c[3]000
c[1]101
c[1]110
c111
c120
c[2]100
c012
c[1]020
c[2]001
c[1]011
m=1
m=2
m=3
Abb. 10: Kreuzableitung auf Kante <v2, v3> für m = 0, 1, 2, 3
Wenn wir den Algorithmus betrachten, erkennen wir, dass wir nur die
Koeffizienten cijk mit 0 ≤ i ≤ m benötigen. Diese Koeffizienten
korrespondieren mit den BB-Punkten, die auf e oder auf den nächsten25
m Reihen parallel zu e liegen.
9. Stetigkeit und stetige Differenzierbarkeit
Satz 9.1:
~
Seien T := <v1, v2, v3> und T := <v4, v3, v2> Dreiecke mit
gleicher Kante
~
e := < v2, v3>. Die Polynome auf den Dreiecken T und T seien
p(v) = ∑ cijkBdijk (v)
i+j+k=d
und
~
p (v) = ∑
i+j+k=d
~ ~d
c B
ijk
ijk(v)
~
~
wobei Bdijk und Bdijk die Bernstein Basispolynome bzgl. T und T sind. Sei
u eine beliebige Richtung, die nicht parallel zu e ist. Dann gilt
Dnup(v) = Dnu~p(v)
für alle v є e
und
n = 0, …, r
nur wenn folgendes gilt
c~ njk = ∑ cv,k+µ,j+KBnvµK(v4),
v+µ+K=n
j+k = d-n
n = 0, …, r.
26
9. Stetigkeit und stetige Differenzierbarkeit
Dies bedeutet, dass für Stetigkeit, also für n = 0, folgendes gilt:
c~0jk = c0,k,j ,
j+k = d
Für stetige Differenzierbarkeit, also für n = 1, muss folgendes gelten:
c~1jk = b1c1,k,j + b2c1,k+1,j + b3c1,k,j+1 ,
Veranschaulichung für d = 3:
Für n = 0 stimmen die Koeffizienten
~
von T mit den Koeffizienten von T
auf der gemeinsamen Kante e
überein
j+k = d-1
c300
T
c210
c201
c120
c030
~
c
003
c~102
~
T
c111
c102
c021
c012
~
c
~
~
c
c003
~
c030
c021
012
Abb. 11:
Stetigkeit von
~
T und T auf e
~
c
120
~
c
111
~
c
201
210
~
c
300
27
9. Stetigkeit und stetige Differenzierbarkeit
c300
~
Für n = 1 (Abb. 12) stehen die c1jk
~
von T in einer linearen Beziehung
zu jeweils 3 Koeffizienten von T,
d.h. sie liegen in einer Ebene
T
c210
~
c
003
~
c
c111
~
T
c210
T
c102
c021
c012
c~012
~
201
c300
c201
c120
c030
c003
~
c030
c021
~
c
120
~
c
~
c
Abb. 12:
stetige Differenzier~
barkeit von T und T
auf e
111
~
c
102
210
~
c
300
c201
Abb. 13:
c120
2-fache stetige
c111
c102
Differenzierbarc030
c021
c012
keit von T und
c003
~
~
~
~
~
T auf e
c003
c030
c012
c021
~
c120
c~102
~
c111
~
~
~
c201
T
c
~
~
Für n = 2 (Abb. 13) stehen die c2jk von T
in einer quadratischen Beziehung zu
jeweils 6 Koeffizienten von T
210
~
c
300
28
9. Stetigkeit und stetige Differenzierbarkeit
Gegeben sei eine Triangulierung der Dreiecke
T1
T1, T2, T3, T4, T5 mit Polynomen p1, p2,
p3, p4, p5 und einem gemeinsamen
Punkt v. Nur die Koeffizienten von T1
T2
mit den schwarzen Punkten seien
T5
bekannt und die restlichen
v
Koeffizienten (weiße Punkte) seien
unbekannt. Außerdem seien die
Polynome am Punkt v 2-mal stetig
Differenzierbar.
T3
Dann lassen sich die Koeffizienten, die
T4
T
sich auf und innerhalb der Scheibe D 2(v)
befinden, anhand der bekannten
Abb. 14: Triangulierung von T1, T2, T3,
T 4, T 5
Koeffizienten bestimmen.
29
9. Stetigkeit und stetige Differenzierbarkeit
Lemma 9.2:
~
Seien p und ~p Polynome auf den Dreiecken T und T mit Cr (r-fache
stetige Differenzierbarkeit) auf einer gemeinsamen Kante e := <v2, v3>
~
und sei 0 ≤ ℓ+1 ≤ q, q~ sowie q+q-ℓ≤
m ≤ d. Außerdem seien die Knoten
v1, v2 und v4 nicht kollinear und die Koeffizienten cijk und cijk~ der
Polynome p und ~p korrespondieren mit den BB-Punkten in DTm-1(v2) ∪
~
DTm-1(v2). Zusätzlich seien die Koeffizienten von p und p~ auf dem Ring
~
Rm(v2) innerhalb des Abstands q+q-ℓ
von e, außer den Koeffzienten
cv = cv,d-m,m-v,
~
cv = ~cv,m-v,d-m,
v = ℓ+1, …, q
~
v = ℓ+1, …, q
bekannt. Dann sind diese Koeffizienten eindeutig bestimmt durch die Cr
–Bedingungen
~
cn,m-n,d-m = ∑ ci,j+d-m,k+m-nBnijk(v4),
i+j+k=n
ℓ+1 ≤ n ≤ q+q-ℓ
30
9. Stetigkeit und stetige Differenzierbarkeit
Beispiel:
Sei d = 10, m = r = 8, q = 2, q~ = 4,
ℓ=0
v1
Abbildung 13 zeigt die Koeffizienten
der zwei zusammengefügten
v2
Dreiecke. Wir nehmen an, dass
wir alle mit einem Kreis
markierten Koeffizienten kennen
und nur die 6 Koeffizienten, die
mit einem blauen Viereck markiert
sind, unbekannt sind.
v3
v4
Abb. 15: Anwendung des Lemma 9.231
9. Stetigkeit und stetige Differenzierbarkeit
Um die 6 unbekannten Koeffizienten
zu bestimmen, benötigen wir 6
Gleichungen. Da p und ~p am Punkt
v2 8-mal stetig differenzierbar ist
und diese 6 Koeffizienten
auf dem Ring R8(v2) liegen, lassen
v2
sich diese durch die 6 Bedingungen
C1, …, C6 bestimmen.
Beachte, dass nicht alle Koeffizienten
zur Berechnung benötigt werden,
sondern nur diejenigen, die in den
6 Bedingungen vorkommen (schwarz
markierte Punkte)
v1
v3
v4
Abb. 15: Anwendung des Lemma 9.2
32
9. Stetigkeit und stetige Differenzierbarkeit
v1
Die 6 stetige DifferenzierbarkeitsBedingungen:
1.
2.
3.
4.
5.
6.
C1
C2
C3
C4
C5
C6
v3
v2
v4
Abb. 15: Anwendung des Lemma 9.233
10. Unterteilung/Basiswechsel
Sei p ein Polynom in BB-Darstellung bzgl. eines Dreiecks T mit den
Eckpunkten v1, v2, v3. Dann unterteilt ein beliebiger Punkt w im inneren
von T das Dreieck T in die drei Teildreiecke
T1 := <w, v2, v3>,
T2 := <w, v3, v1>,
T3 := <w, v1, v2>,
Der folgende Satz sagt unter anderem aus, dass die Basen der
Teildreiecke T1, T2, T3 ebenfalls Basen des Polynomraums Pd sind.
Dadurch lässt sich ein Basiswechsel durchführen
34
10. Unterteilung/Basiswechsel
Satz 10.1:
Gegeben sei das Dreieck T mit den Teildreiecken T1, T2, T3, wie oben
beschrieben. Der Punkt w hat die baryzentrischen Koordinaten a := (a1,
a2, a3) und für ℓ = 1, 2, 3 seien BTℓ,dijk die Bernstein Basis Polynome
bzgl. Tℓ := <w, vℓ+1, vℓ+2>. Dann gilt für beliebige Polynome p mit BBKoeffizienten
∑ c(i)0jk BT1,dijk(v),
v є T1
i+j+k = d
p(v) =
∑ c(j)i0k BT2,dijk(v),
v є T2
∑ c(k)iij0 BT3,dijk(v),
v є T3
i+j+k = d
i+j+k = d
wobei c(v)ijk := c(v)ijk(a) die Koeffizienten aus dem v-ten Schritt des
deCasteljau Algorithmus, basierend auf dem Tripel a, sind und der
Startwert c(0)ijk := cijk ist.
35
10. Unterteilung/Basiswechsel
Veranschaulichung für d = 2:
T3
T2
T1
Abb. 16: Koeffizienten der Teildreiecke
Der Koeffizient c(2)000 korrespondiert hierbei mit dem Punkt w. Man
erkennt durch abzählen der Koeffizienten, dass die Dimension der
Teildreiecken (= 6) mit der Dimension von T (= 6) übereinstimmt.
36
Literaturverzeichnis
Lai, M. J.; Schumaker, L.L. (2007): Spline functions on triangulations,
18-61. Cambridge Univ. Press.
37
Vielen Dank für Eure Aufmerksamkeit!
38