2. Interpolációs görbetervezés Gondoljunk arra, hogy egy grafikus tervező húz egy vonalat (szabadformájú görbét), ezt a vonalat nekünk számítógép által feldolgozhatóvá kell tennünk. Ennek egyik módja, hogy megpróbáljuk ezt a vonalat paraméterezni. Megelégszünk azzal is, ha az eredeti szabadformájú görbét valamilyen értelemben jól közelítő görbét állítunk elő paraméterezéssel. A problémát alapvetően két fő megközelítésben lehet kezelni, az egyiket interpolációs görbetervezésnek, a másikat approximációs görbetervezének nevezzük. Az interpolációs görbetervezés alapötlete: kijelölünk az eredeti szabadformájú görbén néhány pontot (kontrollpontok), s ezeket algebrai görbeívekkel kötjük össze, a kontrollpontokban ügyelve a görbék jó csatlakozására. A jó csatlakozás a gyakorlatban például azt jelenti, hogy - a csatlakozó görbék sebességvektora a csatlakozási pontban egyirányú (G 1 osztályú csatlakozás), - a csatlakozó görbék sebességvektora a csatlakozási pontban egyenlő (C 1 osztályú csatlakozás), - a csatlakozó görbék sebesség és gyorsulásvektora a csatlakozási pontban megegyezik (C 2 osztályú csatlakozás), - a csatlakozó görbék görbülete a csatlakozási pontban megegyezik (görbületfolytonos csatlakozás). Reguláris görbék C 2 osztályú csatlakozása mindig görbületfolytonos is, mert a görbület a sebességből és a gyorsulásból kifejezhető: κ = p p p 3. A kapott parametrizált görbe persze nagymértékben függ a kiválasztott kontrollpontoktól, azok számától, a használt algebrai görbe fokszámától. 2.1. Harmadfokú görbeívek A továbbiakban parametrizált harmadfokú görbeíven, röviden harmadfokú görbén egy p: [0,1] R N, u p(u) = u 3 a + u 2 b + uc + d parametrizált görbét értünk. (a,b,c,d) a görbe algebrai együtthatói. 2.1. Tétel. A p harmadfokú görbeívet egyértelműen meghatározzák a görbe geometriai együtthatói, azaz (p(0),p(1),p (0),p (1)). 1
Bizonyítás. p (u) = 3u 2 a + 2ub + c. A geometriai együtthatók egyszerűen kifejezhetők az algebrai együtthatókkal: p(0) = d, p(1) = a + b + c + d, p (0) = c, p (1) = 3a + 2b + c. Innen az algebrai együtthatókat kifejezve: Tehát azaz A továbbiakban: a = 2p(0) 2p(1) + p (0) + p (1), b = 3p(0) + 3p(1) 2p (0) p (1), c = p (0), d = p(0). p(u) = (2u 3 3u 2 + 1)p(0) + ( 2u 3 + 3u 2 )p(1)+ + (u 3 2u 2 + u)p (0) + (u 3 u 2 )p (1). F 3 0 (u) = 2u3 3u 2 + 1, F 3 1 (u) = 2u3 + 3u 2, F 3 2 (u) = u3 2u 2 + u, F 3 3 (u) = u3 u 2, p(u) = F 3 0 (u) p(0) + F3 1 (u) p(1) + F3 2 (u) p (0) + F 3 3 (u) p (1). v 0 p 0 p 1 v 1 1. ábra. Harmadfokú görbeív a geometriai együtthatókkal. (Az ábrán a sebességvektorok skálázva láthatók.) 2.2. Három pont interpolációja harmadfokú görbeívvel Keressünk olyan harmadfokú görbeívet, melynek adottak végpontjai, a végpontokban az érintők, valamint a görbe egy belső pontja. 2
p 0 p 1 p 0 p 1 2. ábra. A harmadfokú görbeív függése a végpontjaiban adott sebességvektorok irányától és nagyságától. Jelölje a végpontokat p 0 és p 1 ; a belső pontot pedig p b. Az érintő egységvektorok legyenek t 0 és t 1. A problémában három ismeretlen van: a v 0, v 1 pályasebességek a kezdő és végpontban valamint a belső pont t paramétere. Ezeket az ismeretleneket úgy keressük, hogy p b = F 3 0 (t)p 0 + F 3 1 (t)p 1 + F 3 2 (t)v 0t 0 + F 3 3 (t)v 1t 1 teljesüljön. Fölhasználva, hogy F0 3(t) + F3 1 (t) = 1: (2.1) p b p 0 = F 3 1 (t)(p 1 p 0 ) + F 3 2 (t)v 0t 0 + F 3 3 (t)v 1t 1. Tekintsük az előző sort, mint az F 3 1 (t), F3 2 (t)v 0, F 3 3 (t)v 1 ismeretlenekre fölírt lineáris egyenletrendszert, ahol az egyenleteket a koordináták adják. Vizsgáljuk először a problémát térben, azaz legyen rang(p 1 p 0,t 0,t 1 ) = 3. (Ha az előbbi rang kettővel egyenlő, akkor a végpontok és az érintők egy síkban vannak, és a problémának nem lehet megoldása, ha a belső pont nem ebben a síkban van.) A (2.1) lineáris egyenletrendszer megoldhatóságának szükséges és elégséges feltétele, hogy rang(p b p 0,p 1 p 0,t 0,t 1 ) = rang(p 1 p 0,t 0,t 1 ) teljesüljön, azaz feltételünk mellett az egyenletrendszer egyértelműen megoldható. Először megoldjuk az egyenletrendszert F1 3 (t)-re. Jelöljük a megoldást ξ -vel. t a 2t 3 + 3t 2 = ξ harmadfokú egyenlet megoldása. Amennyiben t [0,1], az egyenletrendszer F 3 2 v 0 és F 3 3 v 1 ismeretlenekre adódó megoldásaiból v 0 és v 1 is meghatározható. Síkban a (2.1) lineáris egyenletrendszer csak két egyenletből áll. A t paramétert tetszőlegesen megválaszthatjuk. Legyen pl. t = 0,5: p b p 0 F 3 1 (0,5)(p 1 p 0 ) = F 3 2 (0,5)v 0t 0 + F 3 3 (0,5)v 1t 1. 3
p b p 0 p 1 3. ábra. Három pont interpolációja harmadfokú görbeívvel. Ha a két érintő egységvektor lineárisan független, akkor az egyenletrendszer v 0 -ra és v 1 -re egyértelműen megoldható. A bal oldalt l-lel jelölve, és a megoldásokat Cramer szabály segítségével kifejezve: (2.2) v 0 = 8 l,t 1 t 0,t 1, v 1 = 8 t 0,l t 0,t 1. 1. Feladat. A három pont interpolációs problémában jelüljük a megadott érintők metszéspontját q-val. A p b belső pont legyen a p 0 p 1 q háromszög q-ból induló súlyvonalának felezőpontja. Bizonyítsuk be, hogy ilyenkor a probléma előbbi megoldása parabolaív. 2.3. Görbeillesztés Hermite-eljárással Az interpolációs görbeillesztés alapfeladata: Adottak a p 0,p 1,...,p n R N kontrollpontok. Keressünk olyan p: [0,n] R N legalább C 2 osztályú parametrizált görbét, hogy i {0,...,n} : p(i) = p i, továbbá a (2.3) p i : [0,1] R N, p i (u) = p(u + i) (i {0,...,n 1}) parametrizált görbék harmadfokú görbeívek. 2.2. Tétel. Az interpolációs alapfeladatnak p (0) = v 0 és p (n) = v n tetszőleges rögzítése esetén egyértelműen létezik megoldása. Bizonyítás. A (2.3) feltételnek eleget tévő p görbe akárhányszor differenciálható az (i,i + 1) intervallumon. Ha p legalább C 2 osztályú, az azt jelenti, hogy: (2.4) p i(1) = p i+1(0), p i (1) = p i+1(0), (i = 0,...,n 2). 4
A p görbe sebességvektorát adjuk meg tetszőlegesen a rögzített kontrollpontokban a v 0,v 1,...,v n vektorokkal, azaz i {1,...,n 1} : és p (i) = p i 1(1) = p i(0) = v i ; p (0) = p 0 (0) = v 0,p (n) = p n 1 (1) = v n. A második deriváltakra vonatkozó (2.4) feltételt használva: F 3 0 (1)p i 1 + F 3 1 (1)p i + F 3 2 (1)v i 1 + F 3 3 (1)v i = = F 3 0 (0)p i + F 3 1 (0)p i+1 + F 3 2 (0)v i + F 3 3 (0)v i+1. A deriváltakat kiszámítva, behelyettesítve a 0 és 1 értékeket, valamint rendezve: v i 1 + 4v i + v i+1 = 3(p i+1 p i 1 ) (i = 1,...,n 1). Ez koordinátánként n 1 egyenlet v 0,...,v n koordinátáira, azaz a v 0 és v n vektorokat szabadon megválasztva koordinátánként egy (n 1) (n 1) típusú lineáris egyenletrendszert kapunk: 4v 1 + v 2 = 3(p 2 p 0 ) v 0 v 1 + 4v 2 + v 3 = 3(p 3 p 1 ). v i 1 + 4v i + v i+1 = 3(p i+1 p i 1 ). v n 2 + 4v n 1 = 3(p n p n 2 ) v n. Az előbbi lineáris egyenletrendszer alapmátrixa: 4 1 0 0 0... 0 1 4 1 0 0... 0 0 1 4 1 0... 0 (2.5) M n 1 =.. 0 0... 0 1 4 1 0 0... 0 0 1 4 Belátható, hogy detm n 1 0, tehát v 0 és v n tetszőleges megválasztása esetén az egyenletrendszer a (v 1,...,v n 1 ) vektorokra egyértelműen megoldható, és a görbeillesztési feladatnak egyértelműen van megoldása. 5
p 1 p 2 p 2 p 0 p 4 p 3 p 3 p 0 p1 4. ábra. Görbeillesztés Hermite eljárással: nyílt és zárt összetett Hermite görbe. (A sebességvektorok az ábrán skálázva láthatók.) v 0 és v n megválasztására a mérnöki gyakorlatban különböző, itt nem részletezett eljárásokat alkalmaznak. 2. Feladat. Határozzuk meg a (2.5) mátrix determinánsát. (Belátva ezzel, hogy a determináns ténylegesen nem zéró.) 1. Megjegyzés. Zárt göbe esetén p 0 = p n. Ha azt is előírjuk, hogy v 0 = v n, továbbá a teljes görbe legalább C 2 osztályú legyen, akkor az előzőekhez hasonló módon: v i 1 + 4v i + v i+1 = 3(p i+1 p i 1 ) (i = 1,...,n, v n+1 = v 1 ), koordinátánként n egyenlettel és n ismeretlennel. Az alapmátrix determinánsa nem zéró, azaz zárt görbe esetén a kontrollpontok a görbét egyértelműen meghatározzák a görbe legalább kétszeri folytonos differenciálhatóságát megkövetelve. 3. Feladat. Vegyük fel az origó középpontú egységkörön az (1, 0), (0, 1), ( 1, 0), (0, 1) pontokat és határozzuk meg az ezen pontokra illeszkedő összetett zárt Hermite görbét. Számítsuk ki a görbületi függvényét. A feladatok megoldásai 1. Útmutatás. A feltételek szerint p b = q 2 + p 0 4 + p 1 4. (2.2)-be történő egyszerű behelyettesítés után a görbe geometriai együtthatói: p 0,p 1,2(q p 0 ),2(p 1 q). 6
5. ábra. Kör közelítése Hermite görbékkel: a három zárt, összetett Hermite görbe kontrollpontjai a (szaggatott vonallal rajzolt) körön vannak. A görbe tehát: Legyen q = 0. Ekkor: p(u) = u 2 (p 0 + p 1 2q) + u(2q p 0 ) + p 0. p(u) = (u 2 2u + 1)p 0 + u 2 p 1. Az y tengelyt jelölje ki a (p 0 + p 1 )/2 vektor. Írjuk fel a görbe egyenletét az így meghatározott xy koordinátarendszerben! 2. A detm n = n determinánst az utolsó sor szerint kifejtve: n = 4 n 1 n 2. Tekintsük a valós sorozatok vektorterét. Ebben a vektortérben kétdimenziós altér az a n = 4a n 1 a n 2 rekurziónak eleget tévő sorozatok tere, melyet jelöljön L. Olyan λ számot keresünk, melyre (λ,λ 2,...,λ n,...) eleme L-nek. A rekurziót leíró feltétel λ-ra a λ 2 4λ +1 = 0 feltételt adja, ahonnan λ 1 = 2 + 3 és λ 2 = 2 3. Tehát a Λ 1 = (λ 1,λ 2 1,...,λ n 1,...) Λ 2 = (λ 2,λ 2 2,...,λ n 2,...) sorozatok L bázisát adják. Határozzuk meg a ( 1, 2,..., n,...) sorozat (α,β) koordinátáit a (Λ 1,Λ 2 ) bázisra vonatkozóan: α(2 + 3) + β(2 3) = 4 α(2 + 3) 2 + β(2 3) 2 = 15, 7
ahonnan Tehát n = α = 1 2 + 1 3 ( 1 2 + 1 ) 3 (2 + 3) n 3 1 3, β = 2 1 3. 3 ( 1 3 ) 1 3 (2 3) n. 2 n 0, mert az első tag egytől nagyobb, a második tag pedig egytől kisebb. 8