Appunti di Analisi Numerica Giuseppe Profiti 30 ottobre 2006 1 Esempi di curve di Bezier per caratteri Differenza tra carattere vettoriale e bitmap in un file PDF caratteri pfb in fontforge, modifica delle curve, esempio di riempimento con xccurv trasformazione da bitmap a vettoriale con xccurv importazione di file postscript in xccurv (il file contiene un immagine) 2 Interpolazione polinomiale Date n + 1 osservazioni su n + 1 punti distinti, cioé (x i, y i ),,n, cerco una ϕ φ (con φ P n ) tale che ϕ (x i ) = y i i = 0,, n Sono richieste esistenza unicità buona ricostruzione Licenza Creative Commons by-sa-nc ϕ (x) = a i ϕ i (x) 1
ϕ dipende dai punti e dalla base Cerchiamo di provare l esistenza nella base 1, x, x 2,,x n Una volta dimostrate l esistenza e unicità con una base, vale per tutto lo spazio Teorema 1 Dati n + 1 punti (x i, y i ),,n con x i distinti,!p(x) P n che verifica le condizioni p(x i ) = y i per i = 0,, n Dimostrazione: i = 0 a 0 + a 1 x 0 + a 2 x 2 0 + + a nx n 0 = i = 1 a 1 + a 1 x 1 + a 2 x 2 1 + + a nx n 1 = i = n a n + a 1 x n + a 2 x 2 n + + a n x n n = Formano un sistema di n + 1 equazioni lineari nelle incognite a 0, a 1,,a n il problema di interpolazione è quindi equivalente a trovare una soluzione del sistema 1 x 0 x 2 0 x n 0 1 x 1 x 2 1 x n 1 1 x n x 2 n x n n }{{} V (n+1) (n+1) a 0 a 1 } a n {{ } ā = } {{ } ȳ Il sistema ammette una e una sola soluzione se V non è singolare (det(v ) 0) V è una matrice di Vandermonde per cui det(v ) = i,j=0 j>i (x j x i ) è sempre diverso da zero perché nessun fattore sarà zero (x i x i j) Risolvendo il sistema trovo p(x), ma la matrice di vandermonde è mal condizionata 21 Interpolazione nella base di Bernstein (x i, y i ),,n x i distinti p(x i ) = y i con p(x) = b i B i,n (x) 2
B 0,n (x 0 ) B 1,n (x 0 ) B n,n (x 0 ) B 0,n (x 1 ) B 1,n (x 1 ) B n,n (x 1 ) B 0,n (x n ) B 1,n (x n ) B n,n (x n ) b 0 b 1 b n = è un sistema molto meglio condizionato del precedente Generalmente abbiamo x i [a, b] (con a = x 0 e b = x n come intervallo minimo), ma possiamo fare il cambio di variabile per tornare in [0, 1]: x [a, b] t [0, 1] Le matrici con x e con t sono uguali, però con t semplifichiamo (a livello computazionale) 22 Interpolazione polinomiale nella base di Newton La base di Newton è una base locale, costituita da 1, (x x 0 ), (x x 0 )(x x 1 ), (x x 0 )(x x 1 )(x x 2 ),, (x x 0 ) (x x n 1 ) p(x) = d 0 + d 1 (x x 0 ) + d 2 (x x 0 )(x x 1 ) + + d n (x x 0 ) (x x n 1 ) 1 0 0 0 1 (x 1 x 0 ) 0 0 1 (x 2 x 0 ) (x 2 x 0 )(x 2 x 1 ) 0 1 (x n x 0 ) (x n x 0 )(x n x 1 ) (x n x 0 ) (x n x n 1 ) d 0 d 1 d n = (gli altri termini si annullano) È una matrice triangolare (bassa), ha lo stesso determinante della matrice di Vanbdermonde d 0 = d 0 + (x 1 x 0 )d 1 = 3
221 Implementazione per k=0,n d(k)=y(k) per i=1,n per k=n,i d(k)=(d(k)-d(k-1))/(x(k)-x(k-i)) 222 Valutazione dei polinomi di Newton Si applica lo stesso metodo di Horner, si valuta dall interno verso l esterno: p(x) = d 0 + (x x 0 )[d 1 + (x x 1 )(d 2 + (x x 2 )(d 3 + )] 23 Interpolazione nella base di Lagrange L 0,n (x) L 1,n (x) L n,n (x) p(x) =? L i,n (x) vogliamo abbattere il costo computazionale 231 Costruzione di L i,n (x) p(x) = y i L i,n (x) { 1 se i = j L i,n (x) = 0 se i j È un polinomio con radici x 0,,x i 1, x i+1,,x n, grazie al teorema fondamentale dell algebra abbiamo che: L i,n = k(x x 0 )(x x 1 ) (x x i 1 (x x i+1 ) (x x n ) x i Per trovare k (che indica l ampiezza) sfrutto l uguaglianza con 1 nei punti L i,n (x i ) = 1 = k(x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i+1 ) (x i x n ) 1 k = (x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i+1 ) (x i x n ) 4
L i,n = = (x x 0 )(x x 1 ) (x x i 1 )(x x i+1 ) (x x n ) (x i x 0 )(x i x 1 ) (x i x i 1 )(x i x i+1 ) (x i x n ) (x x j )/ (x i x j ) j=0 j=0 j i j i Nota: con Lagrange e Newton posso interpolare qualsiasi siano gli y i una volta trovata la base Esempio/esercizio Dati gli x {0,1,3} 1 trovare i polinomi di lagrange su x 0, x 1, x 2 e rappresentarli graficamente 2 dati = 0 = 1 y 2 = 2 esplicitare il polinomio interpolante nella base di Lagrange 5