3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR 31 Interpolare cu ajutorul funcţiilor polinomiale Prin interpolare se înţelege următoarea problemă: se dau n + 1 puncte P 0, P 1,, P n în plan sau în spaţiu având vectorii de poziţie r 0,, r n şi se caută o funcţie vectorială ρ : [a, b] R 2, sau ρ : [a, b] R 3, astfel încât ρa) = r 0, ρt 1 ) = r 1,, ρb) = r n, unde a = t 0 < t 1 < < t n 1 < t n = b Punctele P 0, P 1,, P n se numesc noduri Vom cere ca funcţia ρ să fie cât mai simplă, adică, pe componente, să fie o funcţie polinomială sau o funcţie polinomială pe porţiuni, sau o funcţie raţională Prima soluţie a problemei inerpolării este dată de funcţiile liniare, adică interpolarea se face cu ajutorul segmentelor Considerăm n + 1 puncte P 0, P 1,, P n şi definim ρ i t) = tr i+1 + 1 t)r i, t [0, 1], i = 0, n 1 Evident, ρ i 0) = r i şi ρ i 1) = r i+1 Definim acum funcţia ρ prin ρ : [0, n] R 3, ρt) = ρ i t i), t [i, i + 1] Deoarece ρ i i + 1 i) = r i+1 = ρ i+1 i + 1 i + 1)), 65
66Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR rezultă că ρ este bine defnită Evident, ρ este netedă pe porţiuni, adică ρi,i+1) este netedă, i = 0, n 1, dar ρ este doar continuă; în t i, ρ nu este, în general, derivabilă Pentru a obţine ρ netedă global) vom cere că ρ să fie funcţie vectorială polinomială Vom studia două tipuri de interpolare cu funcţii polinomiale: interpolarea Lagrange şi interpolarea Hermite 32 Interpolarea Lagrange Fie P 0 x 0, y 0, z 0 ), P 1 x 1, y 1, z 1 ),, P n x n, y n, z n ), n + 1 puncte în R 3 şi considerăm un interval real [a, b] împreună cu o partiţie a sa a = t 0 < t 1 < < t n = b Vrem să determinăm o funcţie polinomială Lt) = L x t), L y t), L z t)), t [a, b], astfel încât Lt i ) = r i, i = 0, n, sau, pe componente, 321) L x t i ) = x i, L y t i ) = y i şi L z t i ) = z i, i = 0, n Vom determina funcţia L x, funcţiile L y şi L z determinându-se analog Deoarece un polinom de grad n are n + 1 coeficienţi iar ecuaţia 321) reprezintă de fapt n + 1 ecuaţii pentru L x, vom căuta L x sub forma L x t) = a 0 + a 1 t + + a n t n, unde a 0, a 1,, a n R şi trebuiesc determinaţi Lagrange Din 321) obţinem 322) 8>< >: a 0 + a 1 t 0 + + a n t n 0 = x 0 a 0 + a 1 t 1 + + a n t n 1 = x 1 a 0 + a 1 t n + + a n t n n = x n L x se numeşte polinom
32 Interpolarea Lagrange 67 Sistemul 322) este liniar cu n + 1 necunoscute a 0,, a n ) Matricea sa este 1 t0 t n 0 1 t A = 1 t n 1, 1 t n t n n iar det A = Q0 i<j n t j t i ) 0 Prin urmare avem un sistem Cramer Pentru a scrie L x mai convenabil vom introduce polinoamele Lagrange de bază L i, i = 0, n Ele sunt polinoame de grad n şi se definesc prin L i t j ) = δ ij, i, j = 0, n, unde δ ij sunt simbolii lui Kronecker, adică δ ij = 1 dacă i = j şi δ ij = 0 dacă i j Se obţine 323) L i t) = ny j=0 j i t t j t i t j Este uşor de verificat că L i t i ) = 1 şi L i t j ) = 0, j i, deci, într-adevăr L i este dat de 323) Acum putem scrie L x sub forma 324) L x t) = x 0 L 0 t) + x 1 L 1 t) + + x n L n t) = nx i=0 x i L i t) Polinoamele L i nu depind de x 0,, x n şi prin urmare, dacă se modifică unul din x 0, x 1,, x n, L x t) este uşor de recalculat din 324) Altfel ar trebui să recalculăm toţi a 0, a 1,, a n, conform regulii lui Cramer, ceea ce ar implica un volum mult mai mare de calcul Mai mult, soluţia la interpolarea Lagrange se scrie Lt) = nx i=0 L i t)r i Avantajul interpolării Lagrange este că se obţine o funcţie polinomială, deci foarte simplă Dezavantajul este gradul n al funcţiei polinomiale Pentru n mare, volumul de calcul şi deci acumularea erorilor) face ca procedeul să nu fie convenabil
68Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR Un caz particular al interpolării Lagrange este următorul: Considerăm P 0 x 0, y 0 ), P 1 x 1, y 1 ),, P n x n, y n ), n+1 puncte în plan, x 0 < x 1 < x n, şi vrem să determinăm o funcţie polinomială L astfel încât Lx i ) = y i, i = 0, n Analog putem scrie soluţia L sub forma Lx) = nx i=0 y i L i x), unde L i sunt polinoamele Larange de bază L i x j ) = δ ij şi L i x) =Qn j=0,j i x x j x i x j 33 Curbe Ferguson şi interpolare Hermite Se consideră două puncte P 0 şi P 1 în spaţiu date prin vectorii de poziţie r 0 şi r 1, precum şi doi vectori r 0 şi r 1 Dorim să găsim o curbă ρ : [0, 1] R3 care să satisfacă: ρ0) = r0, ρ1) = r 1 ρ 0) = r 0, ρ 1) = r 1 Căutăm ρ sub forma unei funcţi polinomiale şi, deoarece avem 4 condiţii, ρ va fi de forma 335) ρt) = a 0 + ta 1 + t 2 a 2 + t 3 a 3, unde a 0,, a 3 sunt vectori constanţi din R 3 ce urmează a fi determinaţi Din 331) rezultă ρ0) = a 0 = r 0 şi ρ1) = a 0 + a 1 + a 2 + a 3 = r 0 + a 1 + a 2 + a 3 = r 1, de unde obţinem 336) a 1 + a 2 + a 3 = r 1 r 0
33 Curbe Ferguson şi interpolare Hermite 69 Derivând 331) rezultă ρ t) = a 1 + 2ta 2 + 3t 2 a 3 şi avem 337) ρ 0) = a 1 = r 0, iar de unde ρ 1) = a 1 + 2a 2 + 3a 3 = r 0 + 2a 2 + 3a 3 = r 1 338) 2a 2 + 3a 3 = r 1 r 0 Din 332), 333) şi 334) obţinem a2 = 3r 1 3r 0 2r 0 339) r 1 a 3 = 2r 0 r 1 ) + r 0 + r 1 Prin urmare ρt) = r 0 + tr 0 + t 2 3r 1 3r 0 2r 0 r 1) + t 3 {2r 0 r 1 ) + r 0 + r 1} = 1 3t 2 + 2t 3 )r 0 + 3t 2 2t 3 )r 1 + t 2t 2 + t 3 )r 0 + t 2 + t 3 )r 1 = H 0 t)r 0 + H 1 t)r 1 +Ü H0 t)r 0 +Ü H1 t)r 1, unde H0 t) = 1 3t 2 + 2t 3, H 1 t) = 3t 2 2t 3 ÜH 0 t) = t 2t 2 + t 3, H1 Ü t) = t 2 + t 3 Polinoamele H 0, H 1,Ü H0 şi H1 Ü se numesc polinoamele Hermite de bază corespunzătoare lui t 0 = 0 şi t 1 = 1 Să observăm că polinamele Lagrange de bază L 0 şi L 1 sunt date de L 0 t) = 1 t şi L 1 t) = t, iar H0t) = 1 2L 0 0)t)L2 0 t), H 1t) = 1 2L 1 1)t 1))L2 1 t) ÜH 0 t) = tl Ü 2 0 t), H1 t) = t 1)L 2 1 t) Curba ρt) = H 0 t)r 0 + H 1 t)r 1 +Ü H0 t)r Ü 0 + H1 t)r 1 se numeşte curba Ferguson corespunzătoare configuraţiei r 0, r 1, r 0, r 1 )
70Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR Expresia lui ρ se poate scrie într-o formă mai compactă cu ajutorul matricelor Aceasta scriere este avantajoasă şi atunci când dorim să lucrăm cu MATLAB Fie deci matricele 1 0 0 0 T = 1 t t 2 t 3 0 0 1 0 ) M 1 4 R), C = M 3 3 2 1 4 4 R) 2 2 1 1 şi r0 r R = 1 r 0 r 1 Matricea C are pe coloane coeficienţii polinoamelor H 0, H 1,Ü H0 şi H1 Ü Putem scrie acum ρt) = T CR Considerăm acum n+1 puncte P 0, P 1,, P n date prin vectorii de poziţie r 0, r 1,, r n Deasemeni vom da n + 1 vectori r 0, r 1,, r n ce reprezintă vectorii tangenţi sau vectorii viteză) în punctele considerate Fie [a, b] un interval închis şi a = t < t 1 < < t n = b o partiţie a sa Căutăm o funcţie polinomială H : [a, b] R 3, Ht) = H x t), H y t), H z t)), care să satisfacă condiţiile Hti ) = r i, i = 0, n H t j ) = r j, j = 0, n După cum a fost sugerat de cazul n = 1, vom introduce polinoamele Hermite de bază H i şi Hj Ü definite prin Hi t j ) = δ ij, H i t j) = 0, i, j, = 0, n ÜH k t l ) = 0, Ü H k t l ) = δ kl, k, l = 0, n
34 Racordarea a două curbe Ferguson 71 Gradul polinoamelor H i şi Hj Ü este 2n + 1 Se obţine Hi t) = {1 2L i t i)t t i )}L 2 i t), i = 0, n ÜH j t) = t t j )L 2 j t), j = 0, n, iar H se scrie sub forma 3310) Ht) = nx i=0 nx H i t)r i + j=0ü Hj t)r j Avantajul folosirii interpolării Hermite este că se obţine un control mult mai mare asupra curbei sunt daţi şi vectorii viteză) dar dezavantajul este dat gradul mare al polinoamelor Hermite implicate Un caz particular al interpolării Hermite este următorul: se dau n + 1 puncte în plan P 0 x 0, y 0 ), P 1 x, y 1 ),, P n x n, y n ), x 0 < x 1 < < x n, şi n + 1 valori y 0, y 1,, y n Căutăm un polinom Hx) care să satisfacă 3311) Hx i ) = y i şi H x j ) = y j, i, j = 0, n Gradul lui H va fi 2n + 1, iar soluţia H se scrie sub forma Hx) = nx i=0 nx H i x)r i + j=0ü Hj x)r j 34 Racordarea a două curbe Ferguson Fie ρ 1 şi ρ 2 curbele Ferguson corespunzătoare configuraţiilor r 10, r 11, r 10, r 11 ) şi r 20, r 21, r 20, r 21 ), respectiv Vrem să determinăm condiţiile care trebuie să le îndeplinească cei 8 vectori pentru a a vea o racordare de clasă C 2, adică funcţia vectorială compozită ρ : [0, 2] R 3, ρt) = ρ1 t), t [0, 1] ρ 2 t 1), t [1, 2] să fie de clasă C 2 Este clar că ρ este de clasă C 2 dacă şi numai dacă ρ 1 1) = ρ 2 0), ρ 1 1) = ρ 2 0) şi ρ 1 1) = ρ 2 0) Să vedem cum rescriem
72Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR aceste 3 condiţii cu ajutorul celor 8 vectori Primele două condiţii se scriu echivalent r 11 = r 20 şi r 11 = r 20 Pentru ultima condiţie, reamintim că ρt) = 1 3t 2 + 2t 3 )r 0 + 3t 2 2t 3 )r 1 + t 2t 2 + t 3 )r 0 + t 2 + t 3 )r 1 de unde şi ρ t) = 6t + 6t 2 )r 0 + 6t 6t 2 )r 1 + 1 4 + 3t 2 )r 0 + 2t + 3t 2 )r 1, ρ t) = 6 + 12t)r 0 + 6 12t)r 1 + 4 + 6t)r 0 + 2 + 6t)r 1 Prin urmare ρ 11) = 6r 10 6r 11 + 2r 10 + 4r 11, ρ 20) = 6r 20 + 6r 21 4r 20 2r 21 = 6r 11 + 6r 21 4r 11 2r 21 şi deci obţinem că ρ este de clasă C 2 dacă şi numai dacă r11 = r 20, r 11 = r 20 r 10 + 4r 11 + r 21 = 3r 21 r 10 ) 35 Curbe Bezier de grad 3 şi racordarea lor Se consideră 4 puncte în spaţiu P 0, P 1, P 2 şi P 3 date prin vectorii de poziţie b 0, b 1, b 2 şi b 3, respectiv Dorim să găsim o curbă b : [0, 1] R 3 care să îndeplinească condiţiile: b0) = b0, b1) = b 3 b 0) b 1 b 0 ), b1) b 3 b 2 ) 3512) Spre deosebire de curba Ferguson, apare o relaxare în ceea ce priveşte vectorii viteză în extremităţi, în situaţa de faţă precizându-se doar direcţiile lor şi nu vectorii propriu-zişi
35 Curbe Bezier de grad 3 şi racordarea lor 73 P 1 P 2 P 0 P 3 Inginerul Bézier a avut ideea folosirii polinoamelor Berstein B 3 i u) = C i 3u i 1 u) 3 i, u [0, 1] Evident,P3 i=0 Bi 3u) = 1, u [0, 1], şi B3 i u) 0, i = 0, 3 şi u [0, 1] Bézier a considerat curba 3513) bu) = 3X i=0 B 3 i u)b i = 3X i=0 C i 3u i 1 u) 3 i b i = 1 u) 3 b 0 + 3u1 u) 2 b 1 + 3u 2 1 u)b 2 + u 3 b 3 Curba b definită mai sus se numeşte curba Bezier de grad 3 corespunzătoare configuraţiei b 0, b 1, b 2, b 3 ) Din cele două proprietăţi ale polinoamelor Bernstein rezultă că bu) aparţine înfăşurătorii convexe a punctelor P 0, P 1, P 2 şi P 3 Dacă P 0, P 1, P 2 şi P 3 formeaza un patrulater convex, atunci bu) aparţine interiorului patrulaterului, iar dacă P 0, P 1, P 2 şi P 3 nu sunt coplanare, bu) aparţine interiorului tetraedrului format de aceste puncte În plus, b0) = b 0, b1) = b 3, iar b u) = 31 u) 2 b 0 + 31 + 3u 2 4u)b 1 + 32u 3u 2 )b 2 + 3u 2 b 3, de unde b 0) = 3b 1 b 0 ) şi b 1) = 3b 3 b 2 ) Prin urmare curba Bezier definită de 352) îndeplineşte condiţiile 351) Este uşor de văzut ca Propoziţia 351 Curba Bézier corespunzătoare configuraţiei b 0, b 1, b 2, b 3 ) este curba Ferguson corespunzătoare configuraţei b 0, b 3, 3b 1 b 0 ), 3b 3 b 2 ))
74Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR Putem exprima 352) şi într-o formă mult mai restrânsă, cu ajutorul matricelor Avem 3514) bu) = UMB, unde U = 1 u u 2 u 3 ) este o matrice linie având ca elemente puterile parametrului u, matricea 1 0 0 0 M = 3 3 0 0 3 6 3 0 M 4 4 R) 1 3 3 1 se obţine din dezvoltarea polinoamelor Bernstein Bi 3 u) coeficienţii se pun pe coloană), iar B este matricea coloană b0 B = b 1 b 2 b 3 36 Calculul curburii în extremităţi Considerăm punctele P 0, P 1, P 2 şi P 3, cu vectorii de poziţie b 0, b 1, b 2 şi b 3, respectiv Vrem să determinăm curbura curbei Bézier corespunzătoare în u = 0 şi u = 1 Reamintim că curbura este dată de Avem ku) = b u) b u) b u) 3 b u) = 31 u) 2 b 0 + 31 4u + 3u 2 )b 1 + 32u 3u 2 )b 2 + 3u 2 b 3, b u) = 61 u)b 0 + 3 4 + 6u)b 1 + 32 6u)b 2 + 6ub 3, de unde obţinem b 0) = 3b 1 b 0 ), b 1) = 3b 3 b 2 ), b 0) = 6b 0 12b 1 + 6b 2 = 6b 0 b 1 ) + 6b 2 b 1 ), b 1) = 6b 1 12b 2 + 6b 3 = 6b 1 b 2 ) + 6b 3 b 2 )
36 Calculul curburii în extremităţi 75 Înlocuind în expresia curburii obţinem k0) = 2 b 1 b 0 ) b 2 b 1 ), k1) = 2 b 3 b 2 ) b 2 b 1 ) 3 b 1 b 0 3 3 b 3 b 2 3 Întotdeauna vom presupune că k0) 0 şi k1) 0 Înainte de a trece la racordarea a două curbe Bézier vom rezolva o ecuaţie vectorială Propoziţia 361 Fie a, b R 3, a 0 şi b a Atunci soluţiile ecuaţiei vectoriale a x = b sunt date de 3615) x = αa 1 a b, α R a 2 Demonstraţie Cazul 1: b = 0 Ecuaţia a x = 0 are soluţiile x = αa, α R, care sunt de tipul 361) pentru b = 0) Cazul 2: b 0 În acest caz, {a, b, a b} este o bază ortogonală Scriem x sub forma x = αa + βb + γa b, α, β, γ R Avem a x = b βa b + γa a b) = b βa b + γ{ a, b a a, a b} = b βa b γ a 2 b = b βa b γ a 2 + 1)b = 0 β = 0 şi γ = 1 a 2 Deci soluţia ecuaţiei a x = b este dată de 361) Considerăm acum două linii poligonale cadru cu vârfurile date de b 10, b 11, b 12, b 13 şi b 20, b 21, b 22, b 23, respectiv Notăm cu b 1 şi b 2 cele două curbe Bézier corespunzătoare Vrem să aflăm ce condiţii trebuie să satisfacă vârfurile celei de a doua linie poligonală astfel încât curba compozită să fie
76Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR continuă şi, în plus, să avem continuitate pentru vectorii reperului Frent şi pentru curbură Aceste condiţii se scriu echivalent 3616) 8>< >: b 20 = b 13 T 2 0) = T 1 1) B 2 0) = B 1 1) k 2 0) = k 1 1) Mai mult, sistemul 362) este echivalent cu sistemul 3617) 8>< >: b 20 = b 13 b 20) = λb 11), λ > 0 k 2 0)B 2 0) = k 1 1)B 1 1) Notăm că dacă în 363) cerem λ = 1 atunci avem racordare de clasă C 1, iar o racordare de clasă C 2 satisface automat condiţiile de mai sus cu λ = 1) Avem relaţiile b 11) = 3b 13 b 12 ), b 20) = 3b 21 b 20 ) b 11) = 6b 11 12b 12 + 6b 13, b 20) = 6b 20 12b 21 + 6b 22 şi atunci b 20) = λb 11) b 21 b 20 = λb 13 b 12 ), adică 3618) b 21 = 1 + λ)b 13 λb 12, sau 3619) b 13 = 1 1 + λ b 21 + λ 1 + λ b 12 Prin urmare b 13 aparţine segmentului determinat de b 12 şi b 21 Dacă λ = 1, atunci b 13 este mijlocul segmentului Vectorul b 21 este unic determinat
36 Calculul curburii în extremităţi 77 Reamintim expresiile curburii şi ale vectorului unitar al binormalei ku) = b u) b u) b şi Bu) = b u) b u) u) 3 b u) b u) Prin urmare k 2 0)B 2 0) = k 1 1)B 1 1) dacă şi numai dacă b 20) b 20) b 20) 3 = b 11) b 11) b λb 11) b 20) 11) 3 λ 3 b 11) 3 = b 11) b 11) b 11) 3 b 11) b 20) = λ 2 b 11) b 11) Ultima ecuaţie este o ecuaţie vectorială cu necunoscuta b 20) şi, conform Propoziţiei 361, obţinem unde b 20) = αb 11) = αb 11) λ 2 = µb 11) + λ 2 b 11), µ = α = α = α b 11) 2 b 11) b 11) b 1)) λ 2 b 11) 2 { b 11), b 11) b 11) b 11) 2 b 11)} λ 2 b 11) 2 b 11), b 11) λ 2 18 9 b 13 b 12 2 b 13 b 12, b 11 2b 12 + b 13 2λ 2 b 13 b 12 2 { b 13 b 12 2 b 13 b 12, b 12 b 11 } Relaţia b 20) = µb 11) + λ 2 b 11) este echivalentă cu 6b 20 12b 21 + 6b 22 = 3µb 13 b 12 ) + λ 2 6b 11 12b 12 + 6b 13 ) b 20 2b 21 + b 22 = µ 2 b 13 b 12 ) + λ 2 b 11 2b 12 + b 13 )
78Capitolul 3 ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR Prin urmare b 22 = b 13 + 21 + λ)b 13 2λb 12 + µ 2 b 13 b 12 ) + λ 2 b 11 2b 12 + b 13 ) = λ 2 b 11 2λ + µ 2 + 2λ2 )b 12 + 1 + 2 + 2λ + µ 2 + λ2 )b 13 3620) = λ 2 b 11 2λ + µ 2 + 2λ2 )b 12 + 1 + 2λ + µ 2 + λ2 )b 13 Observăm că suma coeficienţilor λ 2 2λ + µ 2 + 2λ2 ) + 1 + 2λ + µ 2 + λ2 ) = 1 şi deci punctele având vectorii de poziţie b 11, b 12, b 13 şi b 22 sunt coplanare Reamintim aici că dacă b = a 1 b 1 + a 2 b 2 + a 3 b 3 şi a 1 + a 2 + a 3 = 1, atunci punctele corespunzătoare lor, P, P 1, P 2 şi P 3 sunt coplanare Într-adevăr, b b 1 = a 1 b 1 + a 2 b 2 + a 3 b 3 b 1 = a 1 b 1 + a 2 b 2 b 1 ) + a 3 b 3 b 1 ) + a 2 b 1 + a 3 b 1 b 1 = a 1 + a 2 + a 3 1)b 1 + a 2 b 2 b 1 ) + a 3 b 3 b 1 ) = a 2 b 2 b 1 ) + a 3 b 3 b 1 ) de unde rezultă că P, P 1, P 2 şi P 3 sunt coliniare Vectorul b 22 nu este unic determinat, el depinzând de parametrul µ Pentru µ = 0 şi λ = 1, b 22 devine b 22 = b 11 4b 12 + 4b 13 În concluzie, date b 10, b 11, b 12 şi b 13 = b 20 R 3, şi dat λ > 0, din 364) şi 366) găsim b 21 şi b 22 astfel încât condiţiile de racordare sunt satisfăcute Vectorul b 23 poate fi ales arbitrar
36 Calculul curburii în extremităţi 79 b 10 b 11 b 12 b = 13 b 20 b 21 b 22 b 23