UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Seminar za Numerično analizo VARIACIJSKE SUBDIVIZIJSKE SHEME Ljubljana, 004 Marjeta Krajnc
. Uvod Subdivizija je postala v zadnjih letih zelo pomembno orodje pri konstrukciji krivulj in ploskev. RAZLOGI: enostavna implementacija računska učinkovitost povezava z multiresolucijskimi tehnikami Pomemben problem v računalniški grafiki in geometrijskem modeliranju je konstrukcija krivulj, ki interpolirajo dano množico točk in minimizirajo nek energijski (gladkostni) funkcional.
Predstavljen bo nov razred interpolacijskih subdivizijskih shem, kjer na vsakem koraku določimo nove točke tako, da rešimo en optimizacijski problem. V splošnem bodo dobljene sheme globalne. Te sheme je prvi predstavil Leif Kobbelt, v članku: A variational approach to subdivision, Computer Aided Geometric Design 3 (996) Omejili se bomo na sheme za konstrukcijo krivulj.
. Interpolacijske subdivizijske sheme V splošnem je problem naslednji: Dane so točke p 0 i Rd, i = 0,,..., N. Radi bi jih interpolirali z gladko krivuljo. Če jih povežemo z odsekoma linearno krivuljo, dobimo poligon P 0 = ( p 0 0, p 0,..., p 0 N) = groba aproksimacija končne krivulje Aproksimacijo izboljšamo tako, da med stare točke vrinemo nove, ki jih moramo seveda naračunati tako, da bo nov poligon izgledal bolj gladko od prejšnega.
3 Slika : Začetni poligon.5.5 0.5 0 0.5 0.5 0 0.5.5.5 3 3.5 4 3 Slika : Nova poligona 3.5.5.5.5 0.5 0.5 0 0 0.5 0.5 0.5 0 0.5.5.5 3 3.5 4 0.5 0 0.5.5.5 3 3.5 4
Postopek iterativno ponavljamo. V vsakem koraku generiramo nov poligon P m+, tako da velja p m+ i = p m i. Hočemo konvergenco k gladki krivulji P. DEFINICIJA. Interpolacijska subdivizijska shema je podana z operatorjem S, ki preslika dano zaporedje točk (poligon) P m = { } p m i i v novo zaporedje P m+ = { } p m+ i, tako da velja i p m+ i = p m i. Operator S uporabljamo iterativno in rezultat je limitna krivulja P, ki interpolira začetni P 0.
OPOMBA: Izbrati je potrebno še parametrizacijo. Najbolj preprosta je kar enakomerna parametrizacija. Na začetku imamo poligon P 0 = { p 0 i} N i=0. Točka p 0 i naj ustreza parametru i. Na m - te koraku imamo poligon P m = { } p m m N i i=0, kjer točka pm i ustreza parametru m i.
DEFINICIJA. Zaporedje funkcij {f n } n na intervalu [a, b] R konvergira enakomerno k limitni funkciji f, če za vsak ǫ > 0 obstaja naravno število n 0 > 0, tako da za vsak n > n 0 velja max t [a,b] f(t) f n(t) < ǫ DEFINICIJA 3. Subdivizijska shema S je enakomerno konvergentna, če za poljubno začetno zaporedje točk P 0 = { } p 0 i i obstaja zvezna funkcija P, tako da za vsak t velja lim P m(t) = P (t) m in to zaporedje P m konvergira k P enakomerno.
Naj bo P m = { } p m i i poljuben poligon. Poligon diferenc k P m je poligon, čigar točke so k ( ) k k p m i = ( ) k j p m i+j j. j=0 LEMA 4. Naj bo { P m zaporedje poligonov. Shema, s }m katero so generirani, je interpolacijska subdivizijska shema natanko takrat, ko za vse m, k N velja pogoj k ( ) k k p m i = k p m+ i+j j za vse indekse i. j=0
IZREK 5. Naj bo { P m zaporedje poligonov, generirano s }m poljubno interpolacijsko subdivizijsko shemo. Če je km k+l P m < m=0 enakomerno konver- za nek l N, potem zaporedje { P m }m gira k C k - krivulji P.
PRIMERI: () Odsekoma linearna subdivizija: p m+ i+ = ( ) p m i + p m i+ Ta shema reproducira začetni poligon. V splošnem hočemo določiti nove točke tako, da nov poligon izgleda bolj gladko od starega. () Konstruiramo kubični interpolacijski polinom na točkah p m i, p m i, p m i+, p m i+, kjer točki p m j ustreza parameter j. Nova točka p m+ i+ je vrednost tega polinoma pri parametru i +. Dobimo pravilo p m+ i+ = 6 ( ) p m i + 9pm i + 9p m i+ pm i+.
Koeficienti ( ), 9, 9, 6 so znani kot maska 4 - točkovne interpolacijske subdivizijske sheme. Krajiščne točke moramo obravnavati drugače (ekstrapolacijske metode). Levo krajišče: K zaporedju dodamo dve točki p 0, p0, ki ju izračunamo iz kubičnega polinoma, ki interpolira točke p 0 0, p 0, p 0, p 0 3. Na (m + ) - vem koraku izračunamo p m+ po zgornji formuli, = p m, točko pm pa preprosto odstranimo iz zaporedja. p m+
(3) V splošnem skonstruiramo polinom stopnje k + na k + točkah p m i k,..., p m i+k+. Nova točka p m+ i+ je vrednost tega polinoma pri parametru i +. Limitne krivulje so Ck. Te sheme so: stacionarne - isto pravilo je uporabljeno na vseh nivojih lokalne - definirane so z masko a = {a j, j Z} s kompaktnim nosilcem. Pravilo je tedaj p m+ i+ = j Z a j+ p m i j enakomerne - koeficienti maske so neodvisni od indeksa i
3. Neenakomerna subdivizija Krivulje, ki jih dobimo z enakomernimi stacionarnimi shemami, so res gladke razreda C k, vseeno pa njihovi grafi ne izgledajo nujno dovolj dobro. Če dopuščamo neenakomerno parametrizacijo, dobimo dodatno svobodo, ki jo bomo uporabili, da bomo izboljšali obliko krivulj. Uteži neenakomerne 4 - točkovne sheme dobimo takole: t m+ i+ = ( ) t m i + t m i+ p m+ i+ = pm i L i,3(t m+ i+ ) + pm i L i,3(t m+ i+ )+ p m i+l i+,3 (t m+ i+ ) + pm i+l i+,3 (t m+ i+ ),
kjer so L i+l,3 (t) = i+ j=i j i+l Lagrangevi bazni polinomi. t t m j t m i+l tm j, l =, 0,, Izbrati moramo še začetno parametrizacijo. Pogosto uporabljena je centripetalna parametrizacija: t 0 i+ t0 i := p 0 i+ p0 i
4 - točkovna interpolacijska shema: Slika 3: Enakomerna parametrizacija 6 5 4 3 0 0 3 4 5 6 Slika 4: Centripetalna parametrizacija 6 5 4 3 0 0 3 4 5 6
4. Variacijske subdivizijske sheme V veliko aplikacijah diferenciabilnost krivulj do določenih redov ni zadosten pogoj, da bi dobili zadovoljivo obliko krivulj. Včasih hočemo, da krivulje zadoščajo še kakšnim dodatnim pogojem, npr. da minimizirajo kakšno fizikalno količino ( strain energy ). Iščemo sheme, ki iz poligona P m konstruirajo nov poligon P m+. Definirali bomo funkcional E(P m+ ), ki bo meril skupno količino dispozicijske (napetostne, deformacijske) energije poligona P m+. Točke p m+ i+ bomo nato izbrali tako, da bo ta funkcional postal minimalen.
Za začetek se bomo omejili na sklenjene poligone. Dan je poligon P m = ( p m 0,..., p m n ). Iščemo poligon na novem koraku P m+ = ( p m+ 0,..., p m+ n ). Energija v posamezni točki poligona P m+ bo podana kot K(p m+ i ) := k j=0 α j p m+ i+j r, kjer so koeficienti α j poljubni, indekse točk p m+ i pa gledamo po modulu n. Vsaka taka diskretna mera K je povezana s karakterističnim polinomom α(z) = k α j z j. j=0
Naš cilj bo minimizirati te dispozicijske energije skozi celotni poligon. Definiramo funkcional E(P m+ ) := n i=0 K(p m+ i ) To bo naš energijski funkcional, za katerega hočemo, da bo minimalen. Točke s sodimi indeksi so že določene: p m+ i = p m i. Neznanke: točke z lihimi indeksi p m+ i+.
Enačbe: p m+ l+ E(P m+ ) = = = k i=0 p m+ K(p m+ l++r i ) l+ k i=0 k s= k α i k j=0 β s p m+ l++s α j p m+ l+ i+j kjer so β s = β s = k s α j α j+s, s = 0,..., k. Enačbe k i= k j=0 β i p m+ l++i imenujemo Euler - Lagrangeve enačbe. = 0, l = 0,,..., n = 0, l = 0,,..., n ()
Energijski funkcional E(P m+ ) bo torej minimalen, če bodo nove točke p m+ i+ rešitev sistema (), ki ga v matrični obliki zapišemo kot: Circ[β 0, β,..., β k, 0,..., 0, β k, β k,..., β ](p m+, p m+ 3,..., p m+ n )T = Circ[β, β, β 3,..., β k, 0,..., 0, β k,..., β 3 ](p m 0, pm,..., pm n )T, če je k sod. Podobno, če je k lih. IZREK 6. Minimizacija funkcionala E(P m+ ) ima dobro definirano rešitev natanko takrat, ko karakteristični polinom α(z) lokalne mere K nima diametričnih ničel z = ±ω na enotskem krogu z Arg(ω) πn/(n), kjer je n moč množice P m.
ZAHTEVE: α(z) ne sme imeti nobenih diametričnih ničel na enotskem krogu. α() = k α j = 0 Velja: j=0 k i= k β i = = afina invarianca k i=0 k α i α j = j=0 k j=0 α j
5. Implicitne subdivizijske sheme Recimo, da predpišemo poljubne koeficiente β k,..., β k, tako da β i = β i ter i β i = 0 in definiramo shemo, kjer so nove točke določene tako, da so izpolnjene enačbe k i= k β i p m+ l++i Take sheme imenujemo implicitne. = 0, l = 0,,..., n Stacionarne sheme so poseben primer implicitnih shem.
IZREK 7. Naj bodo β k,..., β k poljubni realni koeficienti, za katere velja β i = β i. Potem vedno obstaja taka lokalna mera K, da so enačbe k β i p m+ l++i = 0, l = 0,,..., n i= k ravno Euler - Lagrangeve enačbe, ki ustrezajo minimizaciji energijskega funkcionala E(P m+ ) = n i=0 K(p m+ i ). DOKAZ: Definiramo Laurentov polinom β(z) := k i= k β i z i. Povezava s karakterističnim polinomom lokalne mere K: β(z) = α(z)α(z ). Dokazati moramo, da je taka faktorizacija vedno mogoča.
Zapišemo k β(z) = β k z k (z z i ) Upoštevamo simetričnost = za vsako ničlo z i obstaja ničla z j, tako da je z i z j =. = vsaka ničla ima svoj par Tedaj je β(z) = ( ) k β k k i= z i i= k (z z i ) i= k (z z i ), i= kjer je vsaka z i ena od ničel v paru. Definiramo α(z) = k (z z i ). i=
PRIMER: 4 - točkovna interpolacijska shema: p m+ i+ = 9 ( p m 6 i + pi+) m ( ) p m 6 i + p m i+. To shemo lahko zapišemo v implicitni obliki, kjer je k = 3 in Ničle polinoma β(z) so Dobimo: β 0 = 6, β ± = 9, β ± = 0, β ±3 =. z =... = z 4 =, z 5,6 = ± 3. α(z) = (z ) (z + + 3) = = ( + 3) (3 + )z + 3z + z 3, K(p i ) = ( + 3)p i (3 + )p i+ + 3p m i+ + p m i+3
6. Minimizacija diferenc Definiramo kvadratični funkcional Minimizacija: p m+ l+ E k (P m+ ) := E k (P m+ ) = = k i=0 n i=0 k p m+. p m+ l+ i k p m+ k ( k ( ) k i i i=0 l+ i ) k p m+ l+ i = ( ) k k p m+ l+ k = 0
Euler - Lagrangeve enačbe: k p m+ l+ k = 0, l = 0,..., n Karakteristični polinom lokalne mere K: k ( ) k α(z) = ( ) k j z j = (z ) k j j=0 IZREK 8. Subdivizijska shema, ki temelji na minimizaciji funkcionala n E k (P m+ ) = k p m+ producira vsaj C k - krivulje. i=0 i Domneva je, da je limitna krivulja razreda C k.
Analiza konvergence variacijskih shem v primeru odprtih poligonov je dosti težja. V tem primeru velja: IZREK 9. Interpolacijska subdivizija na odprtih poligonih, ki temelji na minimizaciji k - tih diferenc producira vsaj C k krivulje. Domneva je, da sta gladkosti v primeru odprtih in zaprtih poligonov isti. V posebnem primeru je dokazano: IZREK 0. Interpolacijska subdivizija na odprtih poligonih, ki temelji na minimizaciji drugih diferenc producira vsaj C krivulje.
PRIMERI VARIACIJSKIH SUBDIVIZIJSKIH SHEM: Naj bo P m = ( p m 0, pm,..., ) pm n dan odprt poligon. () Minimizacija drugih diferenc: K (p m+ i ) := p m+ i = p m+ E (P m+ ) := n p m+ i=0 Euler - Lagrangeve enačbe: 4 p m+ l i i+ pm+ i+ + pm+ i = 0, l =,,..., n p m+ 0 p m+ = 0 p m+ n p m+ n 3 = 0
Sistem enačb na m + - vem koraku: 5 6......... 6 5 p m+ p m+ 3. p m+ n = 4 4 4...... 4 4 4 p m 0 p m. p m n Te sheme generirajo krivulje, ki minimizirajo spremembe v hitrosti. Limitna krivulja je C glede na enakomerno parametrizacijo.
Te sheme se da posplošiti na neenakomerne. Naj bo P 0 = ( p 0 0, p 0,..., p 0 n) začetni poligon, kjer zahtevamo, da točka p 0 i ustreza parametru t i. Kako bi ocenili preskoke v hitrosti pri različnih vrednostih parametrov? Konstruiramo interpolacijski polinom na točkah p 0 i, p0 i, p0 i+ : Drugi odvod p(t j ) = p 0 j, j = i, i, i + p (t) = [t i, t i, t i+ ]P 0 je konstanta, ki jo vzamemo za numerično oceno spremembe v hitrosti pri parametru t i.
Velja: [t i, t i, t i+ ]P 0 = p 0 i t i ( t i + t i ) + p 0 i t i t i + p 0 i+ t i ( t i + t i ) Funkcional, ki ga bomo minimizirali, je E (P m+ ) = n i=0 [t m+ i, t m+ i+, tm+ kjer je t m+ i+ = (tm i + t m i+ ), tm+ i = t m i. i+ ]P m+,
() Minimizacija tretjih diferenc: K 3 (p m+ i ) := 3 p m+ i = p m+ E 3 (P m+ ) := n 3 3 p m+ i=0 Euler - Lagrangeve enačbe: i i+3 3pm+ i+ + 3pm+ i+ pm+ i 6 p m+ l = 0, l = 0,,..., n 3 3 3 p m+ 0 3 p m+ = 0 3 3 p m+ n 3 3 p m+ n 4 = 0
Sistem enačb na m + - vem koraku: 0 6 6 0 6......... 6 0 6 6 0 p m+ p m+ 3. p m+ n 3 5 5 p m =............. 5 5 3 p m 0 p m n = Te sheme generirajo krivulje, ki minimizirajo spremembe v pospešku.
(3) Uteženo povprečje: K spl (p m+ i ) := ( + 3)K (p m+ i ) + ( + 3)K 3 (p m+ E(P m+ ) := ( + 3) (4) Uteženo povprečje: n i=0 n 3 ( + 3) i=0 K (p m+ i )+ K 3 (p m+ i ) i ) K 4pt (p m+ i ) := (3 + 3)K (p m+ i ) + K 3 (p m+ E(P m+ ) := (3 + 3) n i=0 K (p m+ i ) + i ) n 3 i=0 K 3 (p m+ i )
Slika 5: Začetni poligon 0 4 6 8 0 0 3 4 5 6 7 Slika 6: Minimiziramo druge diference 0 4 6 8 0 0 3 4 5 6 7 0 4 6 8 0 0 3 4 5 6 7 0 4 6 8 0 0 3 4 5 6 7
Slika 7: Minimiziramo tretje diference 0 4 6 8 0 0 3 4 5 6 7 0 4 6 8 0 0 3 4 5 6 7 0 4 6 8 0 0 3 4 5 6 7
Slika 8: Primerjava (črtkana črta... druge diference, polna črta... tretje diference) 7 6 5 4 3 0 0 4 6 8 0
Slika 9: Začetni poligon 3 4 5 6 7 8 0 3 4 5 6 Slika 0: Minimiziramo druge diference 3 4 5 6 7 8 0 3 4 5 6 3 4 5 6 7 8 0 3 4 5 6 3 4 5 6 7 8 0 3 4 5 6
Slika : Minimiziramo tretje diference 3 4 5 6 7 8 0 3 4 5 6 3 4 5 6 7 8 0 3 4 5 6 3 4 5 6 7 8 0 3 4 5 6
Slika : Primerjava (črtkana črta... druge diference, polna črta... tretje diference) 6 5 4 3 0 3 4 5 6 7 8
DODATEK: IZREK: Interpolacijska subdivizija na odprtih poligonih, ki temelji na minimizaciji drugih diferenc producira vsaj C krivulje. DOKAZ: Naj bo P m = ( p m 0,..., pm n ) odprt poligon. Minimiziramo funkcional E (P m+ ) = n i=0 p m+. Euler - Lagrangeve enačbe, ki ustrezajo notranjim točkam p m+ l+, l =,..., n, so: 4 p m+ l = 0, l =,,..., n. i Iz parcialnih odvodov po prvi p m+ in zadnji p m+ n prosti točki
pa dobimo pogoja: Sistem enačb: p m+ 0 = p m+ p m+ n = p m+ n 3 5 6......... 6 5 p m+ p m+ 3. p m+ n 4 = 4 4...... 4 4 4 p m+ 0 p m+. p m+ n Pri analizi gladkosti bomo uporabili izrek (5), in sicer bomo dokazali ( (3 ) ) m m 4 P m = O. 4
Z upoštevanjem leme (4) in Euler - Lagrangevih enačb dobimo 4 p m i = 4 p m+ i + 6 4 p m+ i+ + 4 p m+ i+4, i = 0,,..., n 4. Iz prve in zadnje enačbe pa dobimo še 6 4 p m+ 0 + 4 p m+ = p m p m 0 6 4 p m+ n 4 + 4 p m+ n 6 = p m n 3 p m n Za m sta desni strani zadnjih dveh enačb enaki nič in neničelne komponente poligona 4 P m+ so rešitev sistema 6 4 p m+ 0 0 6 4 p m+ 4 p m 0.......... =. 6 4 p m+ n 6 4 p m 6 4 p m+ n 4 n 4 0
Naj bo A = ( ) n α i,j Potem velja i,j=0 inverz matrike na levi strani sistema. Dokaže se še 4 p m+ i = Od tod dobimo in n/ j=0 α i,j+ 4 p m j, i = 0,,..., n. n/ j=0 αi,j+ 3 6. 4 P m+ 3 4 P m 6 m 4 P m = O ( (3 ) ) m. 4