Introduzione ai polinomi di Bernstein e alle loro applicazioni grafiche Alessandra Sestini March 13, 2014 1 Polinomi di Bernstein Introduciamo la base polinomiale di Bernstein in quanto essa `e lo standard utilizzato nel CAGD per la rappresentazione di curve parametriche polinomiali. I polinomi di Bernstein di grado n sono n + 1 e sono definiti come segue 1 , n n Bi (t) := ti (1 − t)n−i , i = 0, . . . , n, (1) i n n! . dove indica il coefficiente binomiale i! (n−i)! i Tali polinomi costituiscono una base per lo spazio Πn dei polinomi di grado ≤ n. Infatti, mediante lo sviluppo del binomio di Newton di (1 − t)n−i , si ricava facilmente la seguente formula, X n−i n n−i n Bi (t) = (−1)n−i−j tn−j , i = 0, . . . , n. i j j=0 Quindi, usando una notazione matriciale, `e possibile esprimere i polinomi di Bernstein in termini della base canonica 1, t, . . . , tn come segue, B0n (t) 1 .. . (2) . = A .. , n n Bn (t) t 1 Si osserva che, per comodit` a di notazione nel seguito si considerano definiti e pari identicamente a 0 anche Bin (t), i < 0 e Bin (t), i > n. 1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figure 1: Grafico in [0 , 1] dei 4 polinomi di Bernstein cubici. dove A `e una matrice di dimensione (n + 1) × (n + 1)che risulta triangolare n superiore 2 e con elementi diagonali non nulli, Ai,i = . Ogni polinomio i p ∈ Πn pu`o quindi essere rappresentato in modo univoco per mezzo dei suoi coefficienti ci , i = 0, . . . , n in tale base che vengono detti coefficienti di B´ezier, p(t) = n X ci Bin (t). (3) i=0 I polinomi di Bernstein godono di propriet`a importanti che rendono attraente il loro impiego sia dal punto di vista del controllo geometrico sia da quello della affidabilit`a del calcolo in aritmetica finita. Elenchiamo nel seguito tali propriet`a P1, partizione dell’ unit` a, n X Bin (t) ≡ 1; i=0 2 Si osservi che la matrice A (cambiamento di base dai monomi ai polinomi di Bernstein) non `e nonnegativa e che invece `e possibile dimostrare che lo `e la sua inversa (sempre triangolare superiore), vedi Esercizio 1. 2 P2, non negativit` a in [0 , 1], Bin (t) ≥ 0, t ∈ [0 , 1], i = 0, . . . , n, ∀n ∈ IN, P3, cardinalit` a in 0 e 1, Bin (0) = 1 Bin (1) = se i = 0, i = 0, . . . , n 0 altrimenti, 1 se i = n, i = 0, . . . , n 0 altrimenti. P4, unimodalit` a in [0 , 1], Bin (t) ha un unico punto stazionario in (0 , 1) che `e punto di massimo. i n ed esso `e un P5, recursivit` a, n−1 Bin (t) ≡ (1 − t)Bin−1 (t) + tBi−1 (t), i = 0, . . . , n. Osserviamo che P2, P3 e P4 discendono immediatamente dalla definizione (1). La dimostrazione della identit`a riportate in P1 e P5 `e lasciata per esercizio. Esaminiamo qui invece le implicazioni che ha questo primo gruppo di propriet`a sul legame fra ogni p ∈ Πn e i suoi coefficienti di B´ ezier. P n n P1 intanto implica che, se p2 (t) = ap1 (t) + b, a, b ∈ IR, p1 (t) = i=0 ci Bi (t), allora n X p2 (t) = (aci + b) Bin (t). i=0 P1 e P2 implicano che, ∀t ∈ [0 , 1] p(t) `e una combinazione convessa dei suoi coefficienti di B´ezier, c0 , . . . , cn . Ne consegue che p(t) ∈ CH{c0 , . . . , cn } = [ min ci , max ci ], ∀t ∈ [0 , 1]. i=0,...,n i=0,...,n (4) P3 implica che i coefficienti di B´ezier di indici estremi vengono riprodotti esattamente da p(t) agli estremi dell’intervallo [0 , 1], cio`e p(0) = c0 , p(1) = cn . 3 (5) P4 implica la pseudolocalit`a dei coefficienti di B´ezier. Infatti, osserviamo che se il coefficiente ci in (3) viene modificato, ci → c˜i = ci +δci , il corrispondente nuovo polinomio p˜(t) cambia in tutti i punti dell’intervallo [0 , 1] in quanto p˜(t) = p(t) + δci Bin (t). Tuttavia in ni si ha il massimo della variazione di |˜ p(t) − p(t)| e quindi si parla di pseudolocalit`a. Esercizio 1. Si dimostrino le seguenti identit`a, k n X j Bkn (t) , j = 0, . . . , n . tj ≡ n k=j j (6) (suggermento: si moltiplichi tj per 1 = [t + (1 − t)]n−j svisuppando questo fattore con il binomio di Newton). Si osservi che tali identit`a implicano la nonnegativit`a dell’inversa della matrice A introdotta all’inizio del paragrafo. Un’altra importante proprieta dimostrata nel seguente paragrafo `e costituita dal fatto che si pu`o provare che i polinomi di Bernstein formano un sistema di funzioni strettamente totalmente positivo su (0 , 1). Essa avr`a un’ importante implicazione, che consiste nella possibilit`a di maggiorare il numero di variazioni di segno di un polinomio in (0 , 1). Vedremo poi in Sezione 3 la successiva conseguenza geometrica per le curve di Bezi´er. 1.1 Condizionamento della valutazione di un polinomio Considerando il condizionamento del problema della valutazione di un polinomio P ∈ Πn in un punto, siamo interessati a stimarne la variazione |P˜ (t) − P (t)| per t fissato in un certo intervallo [a , b] (assoluta in quanto potrebbe anche essere P (t) = 0) che `e prodotta da perturbazioni sui suoi coefficienti in una base di Πn fissata. Siano quindi φ0 , · · · , φn , (n + 1) polinomi di grado minore o uguale a n che costituiscono una base di Πn . Posto Φ := (φ0 , · · · , φn )T , un generico altro polinomio P ∈ Πn si pu`o allora univocamente rappresentare in tale base, P (t) = cT Φ(t) , dove c := (c0 , . . . , cn )T `e il vettore le cui componenti sono i coefficienti del polinomio nella base scelta. Se ora si perturbano questi coefficienti, c˜i = ci (1 + i ) , 4 i = 0, . . . , n , se si suppone che :: maxni=0 |i | , posto P˜ (t) = c˜T Φ(t), con c˜ := (˜ c0 , . . . , c˜n )T , si ha |P˜ (t) − P (t)| ≤ KΦ (P, t) , dove si `e posto KΦ (P, t) := n X |ci | |φi (t)| i=0 che `e quindi il numero di condizionamento del problema. Osserviamo quindi che, fissato il polinomio P e il punto di valutazione t, a parit`a di massima perturbazione relativa sui suoi coefficienti in basi diverse di Πn , la perturbazione sul valore P (t) in generale varia al variare della base. Notiamo anche che sePla base utilizzata risulta non negativa in [a , b], allora si ha u compatta si scrive KΦ (P, t) = ni=0 |ci | φi (t) , che in forma pi` KΦ (P, t) = |c|T Φ(t) , (7) dove |c| := (|c0 |, . . . , |cn |)T . Sorge quindi spontaneo confrontare da questo punto di vista la base dei monomi che `e quella usualmente utilizzata con la base di Bernstein. La seguente proposizione ci sar`a utile a tale scopo. Proposizione 1. Siano φ0 , . . . , φn e ψ0 , . . . , ψn due basi di Πn entrambe nonnegative in [a , b]. Se la matrice F del cambiamento di base da Φ a Ψ := (ψ0 , . . . , ψn )T , ossia la matrice tale che ∀t risulta Ψ(t) = F Φ(t), `e nonnegativa, allora per ogni polinomio P di Πn e per ogni t ∈ [a , b] si ha che KΦ (P, t) ≤ KΨ (P, t) . Dimostrazione : Dato P ∈ Πn , sia P (t) = cT Φ(t) = aT Ψ(t). Usando il cambiamento di base si ottiene facilmente che c = FT a. Usando laP disuguaglianza triangolare, per la nonnegativit`a di F si ha allora che |ci | ≤ nj=0 Fj,i |aj | , ∀i = 0, . . . , n che in forma vettoriale si pu`o scrivere |c| ≤ F T |a| . Quindi dalla definizione di numero di condizionamento in (7) valida per basi nonnegative si ottiene che KΦ (P, t) = |c|T Φ(t) ≤ |a|T F Φ(t) = |a|T Ψ(t) = KΨ (P, t) , 5 che dimostra l’asserto. Ora abbiamo visto all’inizio del paragrafo che la matrice del cambiamento di base da polinomi di Bernstein a monomi risulta nonegativa (vedi nota). Quindi, lavorando in [0 , 1] dove entrambe le basi sono non negative si deduce che il numero di condizionamento K relativo alla base di Bernstein risulta minore di quello relativo alla base dei monomi. Nel caso di un intervallo [a , b] qualsiasi stesso confronto si pu`o fare fra la base Mi (x) := (x − a)i , i = 0, . . . , n , (b − a)i e la base di Bernstein generalizzata, 1 n n (x − a)i (b − x)n−i , i = 0, . . . , n , Bi (x) := n i (b − a) che sono entrambe nonnegative in [a , b]. 2 Sistemi di funzioni totalmente positivi Prima di definire un sistema di funzioni totalmente positivo su un certo intervallo I ⊂ IR abbiamo bisogno di alcune definizioni e di qualche risultato preliminare nell’ambito dell’algebra lineare. Definizione 1. Siano k ed n due interi con k ≤ n. Indicheremo con Qk,n il seguente insieme di multiindici a k componenti, Qk,n := {α = (α1 , . . . , αk )T ∈ INk | 1 ≤ α1 < · · · < αk ≤ n} . Un multiindice α ∈ Qk,n pu`o essere quindi pensato come una struttura utile a stabilire come estrarre k righe (colonne) da una matrice avente in tutto n righe (colonne). Proseguendo in questo utilizzo, data quindi una matrice A ∈ IRn×m e α ∈ Qk,n , β ∈ Qk,m (dove k ≤ min{n , m}), indicheremo con A[α|β] la sottomarice quadrata k × k definita come segue, aα1 ,β1 , · · · , aα1 ,βk .. .. .. . A[α|β] := . . . aαk ,β1 , · · · , aαk ,βk 6 Definizione 2. Dicesi minore di ordine k di una matrice A ∈ IRn×m il determinante di una sua qualunque sottomatrice quadrata A[α|β], α ∈ Qk,n , β ∈ Qk,m , k ≤ min{n , m} . Definizione 3. A ∈ IRn×m dicesi totalmente positiva di ordine k, con k ≤ min{n , m}, e si scrive A ∈ T Pk , se tutti i suoi minori di ordine ≤ k sono nonnegativi. Definizione 4. A ∈ IRn×m dicesi strettamente totalmente positiva di ordine k, k ≤ min{n , m}, e si scrive A ∈ ST Pk , se tutti i suoi minori di ordine ≤ k sono positivi. Definizione 5. A ∈ IRn×m dicesi totalmente positiva e si scrive A ∈ T P se tutti i suoi minori di ordine ≤ min{n , m}, sono nonnegativi. Definizione 6. A ∈ IRn×m dicesi strettamente totalmente positiva e si scrive A ∈ ST P se tutti i suoi minori di ordine ≤ min{n , m}, sono positivi. A riguardo di queste matrici si enunciano il seguente lemma, detto lemma di Fekete, e il successivo teorema, Lemma 1. A ∈ IRn×m `e STP sse sono positivi tutti i minori delle sue sottomatrici quadrate A[α|β] con α ∈ Qk,n , β ∈ Qk,m , k ≤ min{n , m}, tali che αi+1 = αi + 1, βi+1 = βi + 1 , i = 1, . . . , k − 1 . Teorema 1. A ∈ IRn×m `e TP sse essa `e fattorizzabile nel prodotto di matrici bidiagonali nonnegative a banda di ampiezza 1. Tenendo presente il precedente teorema possiamo dimostrare il seguente, Teorema 2. Se A ∈ IRn×m `e TP allora, ∀v ∈ IRm , risulta S − (Av) ≤ S − (v) , dove S − (v) indica il numero di variazioni di segno nel vettore v. Dimostrazione : Osserviamo che, grazie al teorema precedente, `e sufficiente dimostrare l’asserto solo per il caso in cui A sia bidiagonale a banda di ampiezza 1, ossia esista ` ∈ Z tale che Ai,j 6= 0 sse j−i = l oppure j−i = l+1. Siano allora {˜ vi } e {˜ zi } due sequenza infinite tali che (Av)i se 1 ≤ i ≤ n , vi se 1 ≤ i ≤ m , v˜i := z˜i := 0 altrimenti. 0 altrimenti. 7 Osserviamo che si pu`o scrivere z˜i = Ai,i+` v˜i+` + Ai,i+`+1 v˜i+`+1 . Ora, essendo A TP per ipotesi, essa necessariamente `e nonnegativa e quindi, dalla formula precedente segue che se v˜i e v˜i+1 sono concordi, z˜i−` ha il loro segno. A partire da queste due sequenze, definiamo allora una terza sequenza, {w˜i } come segue, w˜2i := v˜i , w˜2i+1 := z˜i−` , Per come risulta definita quest’ultima sequenza e per quanto detto prima, si deduce che se w2i e w2i+2 hanno lo stesso segno, ha il loro segno anche w2i+1 . Quindi S − (w) ˜ = S − (˜ v ) = S − (v). Per come `e definita la sequenza z˜, risulta naturalmente S − (Av) = S − (˜ z ) e, essendo z˜ una sottosequenza (infinita) di w, ˜ risulta anche S − (Av) = S − (˜ z ) ≤ S − (w) ˜ . Se ne deduce quindi la tesi. Definizione 7. Sia I un intervallo della retta reale e sia (u0 , · · · , un ) un sistema di funzioni su I assegnate, ui : I → IR, i = 0, . . . , n. Presi ti ∈ I, i = 0, . . . , m con t0 < · · · < tm , la seguente matrice M ∈ IR(m+1)×(n+1) dicesi matrice di collocazione del sistema (u0 , · · · , un ) nelle ascisse t0 , . . . , tm , u0 (t0 ) · · · un (t0 ) u0 · · · un .. .. .. M =M := (8) . . . . t0 · · · tm u0 (tm ) · · · un (tm ) Definizione 8. Un sistema di funzioni su I dicesi T Pk (ST Pk ) (u0 , · · · , un ) u0 · · · un se ogni sua matrice di collocazione M con ti ∈ I, t1 < · · · < t1 · · · tk tk `e T Pk (ST Pk ). Definizione 9. Un sistema di funzioni ) su I dicesi T P (ST P ) se (u0 , · · · , un u0 · · · un ogni sua matrice di collocazione M con ti ∈ I, t0 < · · · < tn t0 · · · tn `e T P (ST P ). Osservazione 1. Se (u0 , · · · , un ) `e un sistema di funzioni T P su I, allora ui (t) ≥ 0, ∀t ∈ I, i = 0, . . . , n. Vediamo alcune semplici propriet`a di un sistema di funzioni T P su I. 8 1. Composizione con funzione crescente. Se (u0 , · · · , un ) `e un sistema di funzioni T P su I e f `e una funzione crescente definita su un altro intervallo J di IR e a valori in I, allora anche (v0 , · · · , vn ) `e un sistema di funzioni T P su J, dove vi := ui ◦ f, i = 0, . . . , n. 2. Prodotto con funzione positiva. Se (u0 , · · · , un ) `e un sistema di funzioni T P su I e f : I → IR `e tale che f (t) > 0∀t ∈ I, allora anche (v0 , · · · , vn ) `e un sistema di funzioni T P su I, dove vi (t) := ui (t)f (t), i = 0, . . . , n. 3. Prodotto con matrice T P. Se (u0 , · · · , un ) `e un sistema di funzioni T P su I e A ∈ IR(n+1)×(n+1) `e una matrice T P, allora anche (v0 , · · · , vn ) `e un sistema di funzioni T P su I, dove (v0 (t), · · · , vn (t))T = A(u0 (t), · · · , un (t))T . Esercizio 2. Dimostrare le propriet`a 1,2 e 3 per un sistema di funzioni T P su I. Definizione 10. Data una funzione f : I → IR, la seguente quantit`a S − (f ) dicesi numero di variazioni di f su I, S − (f ) := supm∈IN sup{S − ((f (x0 ), · · · , f (xm )) , x0 < · · · < xm , xi ∈ I} Il seguente teorema permette di maggiorare S − (f ) quando f `e combinazione lineare di un sistema di funzioni T P su I. Teorema 3. Sia (u0 , · · · , un ) un sistema di funzioni T P su I e sia f una loro combinazione lineare, f (t) = u(t)T a , dove a ∈ IRn+1 e dove si `e posto u(t) := (u0 (t), · · · , un (t))T . Allora S − (f ) ≤ S − (a) . Dimostrazione : Sia m ∈ IN e siano x0 < · · · < xm , m + 1 punti distinti ma arbitrari appartenenti ad I. Posto f = (f (x0 ), · · · , f (xm ))T , per definizione si ha che u0 · · · un f = M a. x0 · · · xm 9 Ora per ipotesi sappiamo che M `e T P e quindi S − (f ) ≤ S − (a) . Per l’arbitrariet`a delle ascisse scelte in I e di m, segue la tesi. Il seguente corollario del precedente teorema ne costituisce un’importante conseguenza geometrica, Corollario 1. Sia (u0 , · · · , un ) un sistema di funzioni T P su I che formano anche una partizione dell’unit`a. Ogni curva parametrica piana X(t) definita mediante il poligono di controllo associato a (n + 1) punti di controllo assegnati Qi , i − 0, . . . , n, X(t) := n X Qi ui (t) , t∈I, i=0 interseca una qualsiasi retta r del piano un numero di volte minore o uguale al numero di intersezioni fra r e il poligono stesso. La dimostrazione `e lasciata per esercizio. Data la notevole portata del teorema e del corollario precedente, in grafica siamo particolarmente interessati a lavorare con basi di spazi di funzioni prefissati che formino un sistema T P. Riferendoci per il momento allo spazio dei polinomi Πn , facciamo prima vedere che la base dei monomi 1, t, · · · , tn forma un sistema ST P in (0 , +∞) e poi che la base di Bernstein forma un sistema ST P in (0 , 1). Teorema 4. La base dei monomi 1, t, · · · , tn di Πn forma un sistema ST P su (0 , +∞) . Dimostrazione : Dobbiamo dimostrare che, se 0 < t0 < · · · , tm , la matrice M che colloca la base dei monomi in queste ascisse risulta ST P, dove 1 · · · tn0 .. . M = ... ... . n 1 · · · tm Per il lemma di Fekete sappiamo che ci`o `e vero se sono positivi tutti i determinanti di sottomatrici quadrate di M (r+1)×(r+1), r ≤ n ottenute estraendo da M r + 1 righe e colonne successive e quindi del tipo della seguente Mr , tki · · · tr+k i .. .. . Mr := ... . . r+k k ti+r · · · ti+r 10 Ma essendo Mr = Dr Vr con Dr = diag(tki , · · · , tki+r ) e con Vr matrice di Vandermonde relativa alle ascisse ti , . . . , ti+r , risulta det(Mr ) = det(Dr ) det(Vr ) . La tesi consegue osservando Y che det(Dr ) > 0 essendo ti > 0 e anche det(Vr ) > 0, essendo det(Vr ) = (tj − tk ) . j>k≥i Teorema 5. La base dei polinomi di Bernstein Bin (t), i = 0, . . . , n di Πn forma un sistema ST P su (0 , 1). Dimostrazione : Dobbiamo dimostrare che, se 0 < t0 < · · · < tm < 1, la matrice M che colloca i polinomi di Bernstein in queste ascisse risulta ST P. Ma ricordando la definizione dei polinomi di Bernstein, si pu`o fattorizzare M in M = D1 G D2 , con D1 = diag((1 − t0 )n , · · · , (1 − tm )n ) , τ00 · · · τ0n .. .. , G = ... . . D2 0 n τm · · · τm n n = diag( ,··· , ), 0 n dove nella definizione di G si `e posto τi := ti /(1 − ti ) . Di conseguenza, il determinante di una qualsiasi sottomatrice quadrata M [α, β], k × k di M sar`a dato dal prodotto fra k elementi diagonali di D1 , k elementi diagonali di D2 e il determinante della sottomatrice G[α, β] di G. Essendo Di , i = 1, 2 entrambe diagonali a elementi diagonali positivi e G ST P in (0 , +∞), segue che tale determinante `e positivo. 3 Curve di Bezi´ er Una curva di Bezi´er di grado n `e una curva parametrica polinomiale X : [0 , 1] → Ed , definita come segue X(t) = n X Qi Bin (t) , i=0 11 t ∈ [0 , 1] , (9) dove i Qi , i = 0, . . . , n formano un set di punti ordinati assegnato in Ed . Tali punti si dicono punti di controllo e si assegnano dando le loro coordinate cartesiane in un sistema di riferimento prefissato nel piano (se siamo interessati a definire una curva di Bezi´er piana) o nello spazio. La spezzata che li congiunge dicesi poligono di controllo. Dalle propriet`a dei polinomi di Bernstein `e facile derivare le seguenti propriet`a della curva di Bezi´er definita in (9) , PG1, invarianza per trasformazioni affini Se T : E d → E d `e una trasformazione affine (ossia tale che T (P) = AP + b con A e b rispettivamente matrice e vettore che definiscono la trasformazione affine), allora T (X(t)) = n X T (Qi ) Bin (t) , t ∈ [0 , 1] . i=0 PG2, convex hull ∀t ∈ [0 , 1] , si ha che X(t) ∈ CH(Q0 , · · · , Qn ) , dove CH(Q0 , · · · , Qn ) denota la convex hull dei punti di controllo, ossia l’unione di tutte le loro possibili combinazioni convesse. PG3, end–point interpolation X(0) = Q0 , X(1) = Qn . PG4, controllo pseudo–locale ˜ j = Qj + ∆q e, Q ˜ i = Qi , per i 6= j, detta Se per un certo j risulta Q ˜ ˜ i , i = 0, . . . , n, X(t) la curva di Bezi´er relativa ai punti di controllo Q risulta ˜ X(t) − X(t) = Bjn (t) ∆q , ossia la curva risulta modificata ∀t ∈ (0 , 1) e lo spostamento in ogni t `e parallelo allo spostamento fatto sul punto di controllo e ha la lunghezza massima in t = j/n. 12 PG5, variation–diminishing Se X(t) `e una curva di Bezi´er piana, il numero di intersezioni che essa ha con una qualsiasi retta del piano `e minore o uguale al numero di intersezioni che tale retta ha con il suo poligono di controllo. Inoltre `e possibile dimostrare che la derivata X0 (t) pu `o essere scritta come segue n−1 X X0 (t) = n (Qi+1 − Qi ) Bin−1 (t) , (10) i=0 dalla quale discende che in particolare (tangenza agli estremi al poligono di controllo) X0 (0) = n (Q1 − Q0 ) , X0 (1) = n (Qn − Qn−1 ) . Inoltre dalla propriet`a recursiva dei polinomi di Bernstein discende la legittimit`a dell’uso del seguente algoritmo detto Algortmo di de Casteljau, per la valutazione di una curva di Bezi´er in un punto t, X(t) = bn0 (t) , dove, b0i (t) = Qi , i = 0, . . . , n , r−1 r−1 r bi (t) = (1 − t)bi (t) + tbi+1 (t) , i = 0, . . . , n − r, r = 1, . . . , n . Osservazione 2. Osserviamo che `e sempre possibile elevare di grado una curva di Bezi´er, ossia scriverla in termini di polinomi di Bernstein di grado maggiore. In particolare, moltiplicando X(t) come scritta in (9) per 1 = [(1 − t) + t] e manipolando algebricamente quanto si ottiene si dimostra che si pu`o utilizzare il seguente algoritmo di degree elevation, X(t) = n+1 X ci Bin+1 (t) , i=0 dove n+1−i i Qi−1 + Qi , i = 0, . . . , n + 1 , n+1 n+1 dove si assume per comodit`a Q−1 = Qn+1 = 0. Si osservi che in generale le l’operazione inversa di degree reduction non `e invece fattibile (almeno esattamente). ci = 13 Esercizio 3. Si individui un modo costruttivo per stabilire quale `e il grado effettivo di una curva di Bezi´er associata a un dato poligono di controllo. Oltre che poter essere elevata di grado, una curva di Bezi´er pu`o essere suddivisa (algoritmo di suddivisione), ossia, scelto τ ∈ (0 , 1) `e possibile rappresentare le due restrizioni XL (ξ) = X(ξ), ξ ∈ [0 , τ ] e XR (ξ) = X(ξ), ξ ∈ [τ , 1] della curva definita in (9) in forma di Bezi´er XL (ξ) = n X i=0 ξ QLi Bin ( ) , τ XR (ξ) = n X n QR i Bi ( i=0 ξ−τ ), 1−τ dove QLi = bi0 (τ ) , n−i QR (τ ) , i = 0, . . . , n , i = bi dove si `e utilizzata la notazione dell’algoritmo di de Casteljau. Tale fatto pu`o essere dimostrato formalmente osservando che si pu`o scrivere bri (t) = [(1 − t)I + tE]r Qi , dove il simbolo I denota l’operatore identit`a e il simbolo E l’operatore di shift. 3.1 Continuit` a classica e geometrica fra curve parametriche Consideriamo due curve parametriche C(ξ), ξ ∈ [a , b] e D(η), η ∈ [c , d] differenziabili fino all’ordine m e che si connettono in un punto P ossia tali che C(b) = D(c) = P. Definizione 11. Diremo che le curve C e D si connettono con continuit`a classica C k , k ≤ m, in P se risulta dj D dj C (b) = (c) , j = 0, . . . , k . dj ξ dj η In pratica stiamo considerando quindi η = ξ e semplicemente vediamo la funzione D(η) come un prolungamento di C(ξ). Parlando di curve parametriche questo per`o non `e necessario in quanto siamo interessati a studiare il raccordo in P fra le due immagini di C e D (ossia fra le due vere e proprie curve). Introduciamo allora il concetto di continuit a` geometrica Gk , 14 Definizione 12. Diremo che le curve C e D si connettono con continuit`a geometrica Gk , k ≤ m, in P se esiste una riparametrizzazione ammissimile (ossia strettamente monotona) w = w(η) : [c , d] → [e , f ] per D, tale che dj D dj C (b) = (e) , j = 0, . . . , k . dj ξ dj w In particolare abbiamo focalizzato l’attenzione su G1 e G2 , osservando che G1 significa chedere che esista uno scalare ω1 > 0 tale che dC dD (b) = ω1 (b) , dξ dη (11) la qual cosa corrisponde alla continuit`a del versore tangente alla curva in P. Inoltre abbiamo osservato che G2 corrisponde a chiedere oltre a (11) che esista un secondo scalare ω2 tale che 2 d2 C dD 2 d D (b) = ω (b) + ω (b) ., 2 1 d2 ξ d2 η dη (12) la qual cosa corrisponde a richiedere la continuit`a del versore tangente alla curva, del Frenet frame e della curvatura in P. Vediamo quindi come si formulano in termini di restrizioni sui poligoni di controllo le condizioni di raccordo C k e Gk , k = 1, 2 quando le curve coinvolte sono curve di Bezi´er (che senza perdita di generalit`a si possono considerare stesso grado), dove quindi [a , b] = [c , d] = [0 , 1] Pn si assume Pdello n n n e C(ξ) = i=0 ci Bi (ξ), D(η) = i=0 di Bi (η), con cn = d0 = P. 3.2 Curve Bezi´ er–spline Fissata una partizione a = u0 < u1 < · · · < um−1 < um = b dell’intervallo [a , b] , dicesi curva Bezier-spline una curva parametrica X : [a , b] → Ed tale che X(u) = Xk (u), u ∈ Ik := [uk , uk+1 ), i = 0, . . . , m − 1 (con l’ultimo chiuso), con Xk (u) = n X i=0 Qi,k Bin ( u − uk ), hk u ∈ Ik , k = 0, . . . , m − 1 , dove hk := uk+1 − uk , e dove Qi,k , i = 0, . . . , n, rappresenta un set ordinato di n + 1 punti di controllo in Ed . Naturalmente affinch´e la curva non presenti discontinuit`a occorre che si assuma Qn,k = Q0,k+1 , k = 0, . . . , m − 2 . 15 (13) Se invece si richiede che la curva sia C 1 o G1 , utilizzando (10) e la regola di derivazione delle funzioni composte, si ottiene che oltre a dover valere (13), rispettivamente deve essere ∆Q0,k+1 ∆Qn−1,k = , hk hk+1 (14) ∆Qn−1,k = ω1 ∆Q0,k+1 , (15) per C 1 e per G1 , dove ∆ indica l’operatore differenza (rispetto al primo indice) e ω1 un qualsiasi scalare positivo. Analogamente la curva Bezi´er–spline sar`a C 2 se, oltre a valere (13) e (14), varr`a anche la seguente equazione, ∆2 Qn−2,k ∆2 Q0,k+1 = , h2k h2k+1 (16) e sar`a G2 se, oltre a valere (13) e (15), varr`a anche la seguente equazione, ∆2 bn−2 = ω12 ∆2 c0 + ω2 ∆c0 , n−1 (17) dove ω2 indica un qualsiasi altro scalare. Si osservi che le condizioni ghe garantiscono la continuit`a geometrica sono sempre indipendenti dal dominio parametrico e dalla particolare partizione usata in esso. Si lascia inoltre per esercizio la verifica che sia le curve Bezi´er–spline C 1 che G1 garantiscono la continuit`a del versore tangente alla curva e che sia le curve Bezi´er–spline C 2 che G2 garantiscono oltre a ci`o la continuit`a della curvatura e quella del Frenet frame. 4 Spazi tensor–product di funzioni bivariate Allo scopo di definire degli spazi di funzioni bivariate di semplice utilizzo in applicazioni grafiche ma anche in applicazioni diverse dell’analisi numerica, a partire da due spazi di funzioni monovariate finito-dimensionali V1 e V2 , introduciamo il cosiddetto spazio tensor–product V1 ⊗ V2 . Sia quindi V1 = < A0 (u), · · · , Am (u) > , 16 V2 = < B1 v), · · · , Bn (v) > , dove le Ai e le Bj sono rispettivamente funzioni definite nell’intervallo [a , b] e nell’intervallo [c , d] e dove dim(V1 ) = m + 1, dim(V2 ) = n. + 1 Si pone allora m X n X V1 ⊗ V2 := {q(u, v) | q(u, v) = ci,j Ai (u)Bj (v) } . (18) i=0 j=0 dove i ci,j sono scalari liberamente selezionabili in R . Si noti che in forma matriciale pi` u compatta si pu`o anche scrivere q(u, v) = A(u)T C B(v) , dove si `e utilizzato la matrice dei coefficienti C := (cij ) di dimensione (m + 1) × (n + 1) e i vettori A(u) := (A0 (u), · · · , Am (u))T ∈ Rm+1 e B(u) := (B0 (u), · · · , Bn (u))T ∈ Rn+1 contenenti le due basi monovariate che rispettivamente definiscono V1 e V2 . Naturalmente per definizione le funzioni di V1 ⊗ V2 risultano definite sul dominio parametrico Ω := [a , b] × [c , d] . Si noti inoltre che, essendo dim(V1 ) = m + 1 e dim(V2 ) = n + 1, segue facilmente che dim(V1 ⊗ V2 ) = (m + 1)(n + 1) e questo motiva il termine di spazio prodotto con cui esso viene indicato. In sostanza questo spazio di funzioni bivariate `e costituito da funzioni scrivibili come combinazione lineare di funzioni prodotto di funzioni monovaria- te.Grazie a questo il calcolo in un punto (u, v) ∈ Ω di una funzione f ∈ V1 ⊗ V2 pu`o essere realizzato mediante m + 1 (n + 1) ripetizioni di un algoritmo per la valutazione di funzioni in V2 (V1 ) seguito da un singolo utilizzo di un algoritmo per la valutazione di una funzione in V1 (V2 ). In particolare vogliamo qui considerare lo spazio prodotto V1 ⊗ V2 con V1 = Πm e V2 = Πn che per brevit`a viene indicato con Πm,n . Se in particolare risulta m = n, esso viene detto spazio dei polinomi bi–ennesimi (bilineari se m = n = 1, biquadratici se m = n = 2, bicubici se m = n = 3...) Usando la base dei monomi sia in V1 che in V2 si vede facilmente che Πm,n contiene alcuni polinomi di grado totale m + n in quanto gli appartiene il monomio um v n , tuttavia esso non permette di rappresentare qualunque polinomio bivariato di grado totale ≤ N := m+n in quanto dim(Π2N ) = (N +1)(N +2)/2 > (m+ 1)(n + 1). Per quanto detto prima sugli spazi prodotto, lo spazio Πn,m risulta comunque particolarmente utile quando si intende lavorare separatemente sulle due variabili facendo riferimento a domini di definizione rettangolari. Un problema che viene subito in mente di affrontare in Πm,n come generalizzazione di quanto fatto ad Analisi Numerica I per il caso monovariato `e quello dell’interpolazione polinomiale. Supposte note le terne (ui , vi , fi ), i = 17 1, . . . , (m+1)(n+1), dove si assume che i punti (ui , vi ) ∈ Ω siano distinti e che fi = f (ui , vi ), ci si chiede se `e possibile determinare univocamente q ∈ Πm,n tale che q(ui , vi ) = fi , i = 1, . . . , (m + 1)(n + 1) . Considerando il semplice caso dell’interpolazione bilineare si vede che la risposta `e negativa in quanto se si usano per esempio (u1 , v1 ) = (1, 0) , (u2 , v2 ) = (0, 1) , (u3 , v3 ) = (−1, 0) , (u4 , v4 ) = (0, −1) utilizzando la base 1, u, v, uv per esprimere i polinomi di Π1,1 , per determinare i coefficienti dell’interpolante si deve risolvere un sistema lineare con matrice dei coefficienti singolare. L’interpolante in Πn,m risulta invece univocamente definita se i valori della funzione da interpolare sono noti su una griglia rettangolare di punti del dominio parametrico Ω, ossia i dati sono del tipo (ui , vj , fi,j ), i = 0, . . . , m , j = 0, . . . , n , dove fi,j = f (ui , vj ) e dove a ≤ u0 < · · · < um ≤ b e c ≤ v0 < · · · < vn ≤ d . Infatti in tal caso, essendo q(ui , vj ) = A(ui )T C B(vj ), le condizioni di interpolazione possono essere compattamente scritte come segue ACB T = F , dove F ‘e la matrice (m + 1) × (n + 1) tale che F = (fi,j ) e A (B) `e la matrice (m + 1) × (m + 1) ((n + 1) × (n + 1)) che colloca una base di Πm (Πn ) nelle ascisse distinte ui , i = 0, . . . , m (vj , j = 0, . . . , n). Usando per esempio la base dei monomi si ottengono proprio le classiche matrici di Vandermonde che si sa essere non singolari se le ascisse sono distinte (ricordiamo comunque che utilizzare la base dei monomi non `e certo la scelta migliore...). La matrice dei coefficienti C risulta quindi univocamente definita come C = A−1 F B −T . Naturalmente al solito non si calcolano in pratica le inverse delle matrici A e B T ma si ottiene C in due fasi: prima si trova la matrice Y di dimensione (m + 1) × (n + 1) tale che AY = F (risolvendo quindi n + 1 sistemi lineari di dimensione (m + 1) × (m + 1) con la stessa matrice dei coefficienti A) e poi si determina C T tale che BC T = Y T (risolvendo quindi m + 1 sistemi lineari di dimensione (n + 1) × (n + 1) con la stessa matrice dei coefficienti B). Per esempio questo tipo di procedimento deve essere effettuato se si usa la base di Bernstein per rappresentare i polinomi. Nella seguente sottosezione si mostra come tale base sia effettivamente utile in grafica per ottenere un’interpretazione geometrica dei coefficienti anche nel caso tensor product. 18 4.1 Bezi´ er patches tensor–product Dicesi Bezi´er patch tensor–product una superficie parametrica X : [0 , 1]2 → Ed definita come segue, X(u, v) = m X n X Qi,j Bim (u)Bjn (v) , (u, v) ∈ [0 , 1]2 , i=0 j=0 dove i Qi,j ∈ Ed , i = 0, . . . , m, j = 0, . . . , n sono un insieme assegnato di punti di controllo. L’unione di tutte le spezzate che ∀i congiungono i punti Qi,j j = 0, . . . , n e che ∀j congiungono i punti Qi,j i = 0, . . . , m formano il Bezi´er net che costituisce quindi la generalizzazione al caso bidimensionale tensor–product del poligono di controllo di Bezi´er. Grazie alle propriet`a dei polinomi di Bernstein possiamo dedure le seguenti propriet`a geometriche di tali patches, PG1, invarianza per trasformazioni affini Se T : E d → E d `e una trasformazione affinecon T (P) = AP + b, allora T (X(u, v)) = m X n X T (Qi,j ) Bim (u)Bjn (v) , (u, v) ∈ [0 , 1]2 . i=0 j=0 PG2, convex hull ∀(u, v) ∈ [0 , 1]2 , si ha che X(u, v) ∈ CH(Q0,0 · · · , Qm,n ) , PG3, corner interpolation X(0, 0) = Q0,0 , X(1, 0) = Qm,0 , X(0, 1) = Q0,n , X(1, 1) = Qm,n . PG4, controllo pseudo–locale ˜ i,j = Qi,j +∆q e tutti gli Se per una certa coppia di indici (i, j) risulta Q ˜ altri siano immutati, detto X(u, v) il patch di Bezi´er relativo al nuovo net di controllo, risulta ˜ X(u, v) − X(u, v) = Bim (u)Bjn (v) ∆q , 19 ossia il patch risulta modificato ∀(u, v) ∈ (0 , 1)2 e lo spostamento in ogni (u, v) `e parallelo allo spostamento fatto sul punto di controllo e ha la lunghezza massima in (u, v) = (i/m, j/n). Per questo motivo i punti (k/m, r/n), k = 0, . . . , m, r = 0, . . . , n si dicono punti dominio del patch. Osservazione 3. Come caso particolare si pu`o considerare una curva di Bezi´er X(t) = (x(t), y(t)) piana di grado n avente come punti di controllo i punti Qi = (i/n, qi ), i = 0, . . . , n. In tal caso si ha che per la (6) risulta x(t) = t ossia la curva `e semplicemente il grafico di un polinomio di Πn (espresso nella base di Bernstein). Analogamente nel caso del tensor-product, posto X(u, v) = (x(u, v), y(u, v), z(u, v)) se Qi,j = (i/m, j/n, qi,j ), i = 0, . . . , m, j = 0, . . . , n, si ha che x(u, v) = u, y(u, v) = v e quindi il patch `e semplicemente il grafico di un polinomio bivariato appartenente a Πm,n . References [1] G. Farin (2002), Curves and Surfaces for CAGD: a practical guide, Kaufmann series in computer graphics and geometric modelling, San Francisco M. Kaufmann Publishers. [2] R. T. Farouki and T. N. T. Goodman (1996), On the optimal stability of the Bernstein basis, Mathematics of Computation 65, 1553–1566. [3] T.N.T. Goodman (1996), Total positivity and the shape of curves, Total positivity and its applications, M. Gasca and C. Micchelli eds., Dordrecht: Kluwer, 157–186. [4] J. Hoscheck and D. Lasser (1993), Fundamental of Computer aided Geometric Design, Wellesley, Mass. Peters. 20
© Copyright 2024 Paperzz