INTERPOLAZIONE Quali condizioni si possono richiedere sulla
Transcript
INTERPOLAZIONE Quali condizioni si possono richiedere sulla
INTERPOLAZIONE Problema generale di INTERPOLAZIONE Dati n punti distinti (x i,yi)i=1,..,n si vuole costruire una funzione f(x) tale che nei nodi (x i)i=1,..n soddisfi a certe condizioni, dette Condizioni di interpolazione Quali Quali condizioni condizioni si si possono possono richiedere richiedere sulla sulla funzione funzione interpolante interpolante ?? 1 Esempio 1 condizioni di interpolazione: la funzione deve passare per i punti assegnati in ciascun nodo xi è assegnata una condizione sulla funzione interpolante x1 y1 x2 y2 … xn y2 Interpolazione di Lagrange 2 Interpolazione di Lagrange: formulazione generale Sia F uno spazio di funzioni di variabile reale o complessa. Assegnati: • n valori distinti reali o complessi {xi } i=1,..n • n valori distinti reali o complessi {y i} i=1,..n Si cerca una funzione f(x)∈F tale che: f(xi)=yi i=1,…,n Condizioni di interpolazione di Lagrange Esempio 2 condizioni di interpolazione: la funzione deve passare per i punti assegnati con una fissata tangente 3 In ciascun nodo sono assegnate condizioni sulla funzione f(x) e sulle sue derivate…. x1 x2 y01 y02 y11 y12 y22 y32 … … … xn-1 xn y0n-1 y0n y1n-1 y1n y2n-1 N.B.….se è assegnata in un nodo la condizione sulla derivata di ordine q, deve essere assegnata anche la condizione sulle derivate dall’ordine 0 fino a q-1. Interpolazione di Hermite Interpolazione di Hermite: Formulazione generale Sia F uno spazio di funzioni di variabile reale o complessa. Assegnati n numeri interi {li } i=1,..n tali che Σ n i=1 li = m+1 n valori distinti reali o complessi {xi }i=1,..n m+1 valori distinti reali o complessi {y ji } i=1,…,n j=0,1,…,l i -1 Si cerca una funzione f ∈F tale che: f(j)(xi)=yji i=1,…,n j=0,1,…,l i-1 Condizioni di interpolazione di Hermite 4 In ciascun nodo c’è almeno una condizione sulla funzione o sulla derivata di qualunque ordine x1 x2 y01 y02 y11 y22 y32 xn-1 xn y0n-1 y0n y1n y2n-1 … … … Interpolazione di Hermite-Birkoff …. ….quale quale forma forma può può avere avere una una funzione funzione interpolante interpolante ?? OVVERO: OVVERO: quale quale spazio spazio di di funzioni funzioni FF utilizzare utilizzare ?? 5 Esempio x -2 -π/2 -1 π/ 3 π/ 2 3 y 0.41 1.08 -0.31 -0.39 -1.58 -0.97 Interpolazione mediante polinomio di quinto grado x -2 -π/2 -1 π/ 3 π/ 2 3 y 0.41 1.08 -0.31 -0.39 -1.58 -0.97 6 Interpolazione mediante polinomio trigonometrico di quinto grado x -2 -π/2 -1 π/ 3 π/ 2 3 y 0.41 1.08 -0.31 -0.39 -1.58 -0.97 un confronto …… Quale funzione scegliere ? 7 In generale, la scelta della forma della funzione interpolante ovvero la scelta dello spazio F dipende : • dalle caratteristiche del problema reale • dal costo computazionale relativo alla costruzione ed alla valutazione della funzione interpolante …. ….fissiamo fissiamo lo lo spazio spazio dei dei polinomi polinomi …. …. Costruiamo Costruiamo ilil polinomio polinomio interpolante interpolante di di Lagrange Lagrange ….è unico ? 8 Esempio: Siano P1, P2 due punti fissati. Esistono infinite parabole per P1, P2 Ma una sola retta per P1, P2 dati dati ii due due punti punti che che grado grado deve deve avere avere ilil polinomio polinomio affinché affinché la la curva curva interpolante interpolante sia sia univocamente univocamente determinata determinata ?? 9 Quindi... 1) Per m < 1 (in generale m< n-1 ) Non esiste alcun polinomio interpolante ( tranne se i due punti hanno la stessa ordinata ) 2) Per m =1 (in generale m=n-1 ) Esiste un unico polinomio di grado 1 interpolante i due punti ( esiste un’unica retta passante per due punti ) 3) Per m > 1 (in generale m >n-1 ) Esistono infiniti polinomi di grado maggiore di 1 interpolanti i due punti ( esistono infinite parabole, cubiche , etc. per due punti ) Teorema Dati n nodi distinti {xi } i=1,..n n valori corrispondenti {yi } i=1,..n il polinomio p(x)∈Π m tale che: p(xi ) = yi i=1,…,n è unico se: m = n-1 10 Dimostrazione 1 Siano p(x), q(x) ∈Π n-1 tali che: p(xi ) = yi i=1,..n q(xi ) = yi i=1,..n Dimostriamo che i due polinomi sono identicamente uguali. Posto: z(x) = p(x)- q(x) Si ha: (z(x) ∈Π n-1 ) z(xi ) = 0 i=1,..n 1/2 1)Se z(xi ) = 0 i=1,..n ⇒ il polinomio ha n zeri distinti ⇓ z(x) =a(x- x1) (x- x2)… (x- xn) a∈ℜ 2) Un polinomio non nullo di grado al più n-1 ha al più n-1 zeri distinti (Teorema fondamentale dell’algebra) 3) L’unico polinomio al più di grado n-1 che ha n zeri distinti è il polinomio identicamente nullo z(x) è il polinomio identicamente nullo cioè p(x)=q(x) 2/2 11 Dimostrazione 2 Se p(x) ∈Π n-1 è il polinomio interpolante gli n punti: (xi , yi ) i=1,..n dovendo soddisfare le condizioni di interpolazione p(xi ) = yi i=1,..n a0 + a1x1 +…+ an-1x1 n-1 =y 1 ⇓ ……………………………………………………………… a0 + a1xi +…+ an-1xi n-1 =yi ……………………………………………………………… a0 + a1xn +…+ an-1xn n-1 =y n Sistema lineare di dimensione n 1/4 La matrice dei coefficienti di questo sistema è: 1 1 V = ... 1 x1 ... x1n −1 x2 ... x2n −1 ... ... ... xn ... xnn −1 Matrice di Vandermonde n det(V ) = ∏ ( xi − x j ) j =1 i> j 2/4 12 Esistenza ed unicità del polinomio Esistenza ed unicità della soluzione del sistema lineare Dimostriamo che il sistema ammette una ed una sola soluzione 3/4 Poiché i nodi sono a due a due distinti allora det(V)≠0 Il sistema è non singolare Esiste un’unica soluzione c.v.d 4/4 13 …. ….quali quali condizioni condizioni garantiscono garantiscono l’unicità l’unicità del del polinomio polinomio interpolante interpolante di di Hermite Hermite ?? ESEMPIO 6 Traiettoria di una pallottola Una pallottola è sparata vero l’alto dalla sommità di un edificio alto 100 m. Dopo 10 sec. dal lancio la pallottola raggiunge la massima altezza a 590 . Disegnare la traiettoria della pallottola. Q2 (10,590) Q1 (0,100) 14 Come Come costruire costruire la la parabola parabola che che descrive descrive la la traiettoria traiettoria della della pallottola pallottola ?? L’espressione della parabola è p(x) = ax2 + bx + c Sappiamo che p(0)=100 p(10)=590 Possono esistere Più parabole… •Q2 (10,590) II condizione I condizione Q1 (0,100) III condizione Sappiamo inoltre che il punto Q2 è il vertice della parabola Esiste una sola parabola… 15 Si ottiene il sistema … p(x1)=y 1 ax12 + bx1 + c=y1 p(x2)=y2 ax22 + bx2 + c=y2 p’(x2)=0 2ax2+b=0 c=100 c=100 100 a + 10 b + 100=590 20a+b=0 b=88 a=4.4 UNICA SOLUZIONE Interpolazione di Hermite n=2 nodi ( 2 punti per cui deve passare la parabola) m=3 nodi condizioni di interpolazione (appartenenza dei due punti alla parabola + vertice nel primo) # condizioni = # incognite 16 TEOREMA Dati n nodi distinti {xi } i=1,..n n numeri interi positivi {li } i=1,..n tali che Σ ni=1 li = m+1 ed m+1 valori {y ji } con i=1,…,n j=0,1,…,l i-1 Il polinomio p (x) ∈ Π q tale che: p(j)(xi )=y ji è unico se: q=m Dimostrazione Siano p(x), q(x) ∈Π m tali che: p(j) (xi ) = y ji i=1,..n j=0,1,…,l i -1 q(j) (xi ) = y ji i=1,..n j=0,1,…,l i-1 dimostriamo che i due polinomi sono identicamente uguali. Posto: z(x) = p(x)- q(x) (z(x) ∈Π m ) dimostriamo che z(x) è un polinomio identicamente nullo. Si ha: z(j) (xi ) = 0 1/2 17 Un polinomio z∈Π m tali che: z(j) (xi ) = y ji i=1,..n j=0,1,…,l i -1 È necessariamente del tipo: z(x) =a(x- x1)l1 (x- x2) l2 … (x- xn) ln a∈ℜ Cioè ammette n zeri distinti x1 x2 … xn rispettivamente con molteplicità : l 1 , l 2 ,… ,l n n Poiché Σ i=1 li =m+1 e siccome z(x) ha la più grado m, z(x) è necessariamente il polinomio identicamente nullo. c.v.d 2/2 In generale… Se poniamo F = Πm spazio dei polinomi di grado al più m Interpolazione polinomiale di Lagrange di Hermite 18 Sia per l’interpolazione di Lagrange che per l’interpolazione di Hermite l’unicità della soluzione è garantita # condizioni = # incognite Metodi costruttivi del polinomio interpolante di di LAGRANGE 19 METODO DEI COEFFICIENTI INDETERMINATI p(x) ∈Π n-1 è p(x)= a0 + a1x +…+ an-1xn-1 Imponendo le condizioni di interpolazione p(xi) = yi i=1,..n p(x1 ) = y1 a0 + a1 x1 +…+ an-1 x1 n-1 =y 1 p(x2 ) = y2 a0 + a1 x2 +…+ an-1 x2 n-1 =y 2 …..….. p(xn) = yn …………………………… a0 + a1 xn +…+ an-1 xn n-1 =y n Sistema di equazioni lineari di ordine n La matrice dei coefficienti di questo sistema è: 1 1 V= ... 1 x1 x2 ... x1n−1 ... x2n−1 ... ... ... xn ... xnn−1 n det(V) = ∏ (x i − x j ) j =1 i> j Matrice di Vandermonde ( mal condizionata!) 20 Formula di Lagrange Esempio: Siano P1(x1,y 1), P2(x2,y 2) punti del piano. Costruiamo il polinomio p(x) interpolante P1, P2 . Poniamo p(x) =y 1 l 1 (x) + y 2 l2(x) con l1(x), l2(x) polinomi di primo grado. Di che tipo devono essere i polinomi l1(x) e l2(x)? Dalle condizioni di interpolazione 1 0 p(x1) = y 1 l1 (x1) + y2 l2(x1) = y1 p(x2) = y 1 l1 (x2) + y 2 l2(x2) = y 2 0 l1(x2)=0 l2(x1)=0 l1(x1)=1 l2(x2)=1 1 l1(x)= a (x(x-x2) l2(x)= b (x(x-x1) l1(x1)= a (x1-x2) =1 l2(x2)= b (x2-x1)=1 a=1/(x1-x2) b=1/(x2-x1) 21 Cioè: p(x) = y1 (x − x2 ) (x − x1 ) + y2 (x1 − x2 ) (x 2 − x1 ) IN GENERALE: GENERALE : p(x) = y1l 1(x) + y2 l 2 (x)+ ... + yn l n (x) FORMULA DI LAGRANGE con n l i(x) = ∏ j=1 j≠i (x − xj ) i -mo polinomio fondamntale di Lagrange (xi − xj ) Complessità computazionale della formula di Lagrange n li (x) = ∏ i =1 i ≠j (x − xi ) (xi − x j ) (n − 1)( 2 A + 1M ) complessità computazionale di un polinomio fondamentale di Lagrange n p(x) = ∑ yi li (x) n [( n − 1)(2 A + 1M ) + M ] i =1 complessità computazionale della formula di Lagrange T (n) = O(n 2 ) 22 Formula di Lagrange nodi ( xi , yi ) punto di valutazione z formula di Lagrange p (z ) valore del polinomio in z Complessità computazionale T (n) = O(n 2 ) E se si vuole cambiare il punto di valutazione z ? Osservazione La formula di Lagrange p(x) = y1l 1(x) + y2l 2(x) + ... + ynl n (x) valuta il polinomio contemporaneamente alla sua determinazione cambiare punto di valutazione Rifare tutti i calcoli (Complessità computazionale T (n) = O(n 2 ) ) 23 MA se si conoscessero i coefficienti, quanto costerebbe valutare il polinomio? L’algoritmo di Horner valuta un polinomio con una complessità T(n)=O(n) Obiettivo: Separare il calcolo dei coefficienti del polinomio di Lagrange dalla valutazione del polinomio stesso FORMULA DI NEWTON Assegnato il punto P1 =(x1,y 1) Qual’e’ il polinomio P(0)(x)= a0 di grado 0 che interpola P1 ? y1 x1 Imponendo la condizione di interpolazione P(0)(x1)= y 1 a0 = y 1 P(0)(x)= y1 24 Assegnato ora il punto P2 =(x2,y2) Qual’e’ il polinomio P(1)(x) di grado 1 che interpola P2 (oltre che P1 ) ? (x2 , y2 ) P(0)(x)=y 1 incognita P(1)(x) = P(0)(x) + a1 (x-x1) = y 1+a1 (x-x1) Determiniamo a1 imponendo che la retta passi oltre che per (x 1,y 1 ) anche per (x2,y 2): y 2 = P(1)(x2) =y1+a1(x2-x1) a1 = y2 − y1 x2 − x1 P (1) (x) = a0 + a1 (x − x 1 ) con a0 = y 1 a1 = y2 − y1 x2 − x1 25 Assegnato ora il punto P3 =(x3,y3) Qual e’ il polinomio P(2)(x) di grado 2 che interpola P3 (oltre che P1 e P2 )? P(1)(x)=y1 +a1 (x-x1 ) (x3 , y3 ) incognita P(2)(x) = P(1)(x) +a2 (x-x1)(x-x2) = a0+a1 (x-x1) +a2 (x-x1)(x-x2) Determiniamo a2 imponendo che la retta passi oltre che per (x 1,y 1 ) e (x2,y 2) anche per (x3,y 3): y 3 = P(2)(x3) =y 1 + a1 (x-x1) +a2 (x-x1)(x-x2) y3 − y1 y2 − y 1 − x3 − x1 x2 − x1 a2 = x3 − x2 P (1) (x) = a0 + a1 (x − x1 ) + a2 (x − x1 )(x − x2 ) con a0 = y 1 y − y1 a1 = 2 x2 − x 1 y 3 − y 1 y 2 − y1 − x 3 − x1 x 2 − x1 a2 = x3 − x2 26 FORMULA DI NEWTON IDEA: costruire il polinomio P(k-1) interpolante k punti (xi ,yi ) i=1,…,k a partire (k-2) dal polinomio P interpolante k-1 punti (xi ,yi ) i=1,…,k-1 P(k-1)(x) = P(k-2)(x) + Q(x) con Q(x) = ak-1 (x-x1)(x-x2)...(x-xk-2) k=1,2,.... e P(0)(x)= y 1 FORMULA DI NEWTON P(x)=a0+a1(x-x1)+…+an-1(x-x1)…(x-xn-1) a0 = y 1 y − y1 a1 = 2 x2 − x 1 y3 − y1 y 2 − y1 − x3 − x1 x 2 − x1 a2 = x3 − x2 Osservazione I coefficienti del polinomio dipendono solo dai nodi di interpolazione: In generale come calcolare ak ? 27 Definizione: y [x1 , x 2 ] = y2 − y1 x2 − x 1 differenza divisa del primo ordine y [x1 , x 2 ,...,xk ] = y [x2 , x3 ,...,x k ] − y [x 1 , x2 ,...,xk -1 ] x k − x1 differenza divisa di ordine k-1 Proprietà fondamentale delle differenze divise: Detta i1 , i2 ,..., ik una permutazione degli indici 1,2,..,k [ y[x1,x2,...,xk ] =y xi1 ,xi2 ,...,xik ] non è importante l’ordine con cui vengono interpolati i nodi Esempi: y [x1, x2 ] = y[x2, x1 ] y[x1 , x2 , x3 ] = y[x3 , x2 , x1 ] 28 Teorema: Dati n nodi distinti {xi } i=1,..n n valori corrispondenti {yi } i=1,..n Detto P(x)=a0+a1(x-x1)+…+an-1(x-x1)…(x-xn-1) il polinomio interpolante di Lagrange ak = y[x1x2…xk-1] k=0,1,..,n-1 i coefficienti del polinomio di Lagrange sono differenze divise Dimostrazione (per induzione) Siano: • P(k-1)(x) polinomio interpolante i nodi x1,x2,…,xk (per ip. di induzione) P(k-1)(x) = P(k-2)(x) + y[x1… xk](x-x1)…(x-xk-1) P(k-1) ∈∏k-1 • Q(k-1)(x) polinomio interpolante i nodi x2,…,xk+1 (per ip. di induzione) Q(k-1)(x) = Q(k-2)(x) + y[x2… xk+1](x-x2)…(x-xk) Q(k-1) ∈∏k-1 29 Consideriamo il polinomio: R(x) = (x − x 1 )Q (k -1) (x) − (x − x k +1 )P (k- 1) (x) x k +1 − x k R(x) ∈ ∏k Poiché R(xi)=yi i=1,…,k+1 ( R(x) interpola i nodi x1, x2,…, xk+1) Per l’unicità del polinomio interpolante R(x) = P(k)(x) per il principio di identità dei polinomi coefficiente di coefficiente di grado massimo di P(k) (x) grado massimo di R(x) coincide ak = y[x2 ...x k +1 ] − y[x1 ...x k ] x k +1 − x 1 = y [x1 ,..., xk +1 ] 30 Algoritmo costruttivo delle differenze divise nodo 1 a0 x1 y1 a1 nodo 2 x2 y2 y[x1 x2] nodo 3 x3 y3 y[x1 x3] y[x1 x2 x3] nodo 4 x4 y4 y[x1 x4] y[x1 x2 x4] y[x1 x2 x3 x4] y[x1 x5] y[x1 x2 x5] y[x1 x2 x3 x5] nodo 5 x5 y5 a2 a3 a4 y[x1 x2x3x4x5] Complessità computazionale della formula di Newton calcolo di a1 1 differenza divisa calcolo di a2 2 differenze divise calcolo di a3 3 differenze divise calcolo di an-1 n-1 differenze divise Totale = 1 + 2 +....+ n-1 = n(n-1)/2 differenze divise T(n) = n(n − 1) (2A + 1M ) = O(n 2 ) 2 31 Formula di Newton nodi (x i , y i ) formula di Newton T (n) = O(n 2 ) E se si vuole cambiare il punto di valutazione z ? z punto di coefficienti valutazione algoritmo di Horner Solo algoritmo di Horner T (n) = O(n) T (n) = O(n) p(z) valore del polinomio in z E se si vuole aggiungere un nodo? nodo 1 x 1 y1 nodo 2 x 2 y2 y[x 1 x 2] nodo 3 x 3 y3 y[x 1 x 3] y[x 1 x 2 x 3] nodo 4 x 4 y4 y[x 1 x 4] y[x 1 x 2 x 4] nodo 5 x 5 y5 y[x 1 x 5] nodo 6 x 6 y6 y[x 1 x 6] y[x 1 x 2 x 5] y[x 1 x 2 x 6] y[x 1 x 2 x 3 x 4] y[x 1 x 2 x 3 x 5] y[x 1x 2x 3x 4x 5] y[x 1 x 2 x 3 x 6] y[x 1x 2x 3x 4x 6] calcolo del solo coefficiente a5 a5 y[x 1x 2x 3x 4 x 5x 6] T(n)=O(n) 32 Algoritmo di Horner per la valutazione dei polinomi Si vuole valutare un polinomio p(x) di grado n in un punto z. Esempio: p(x) = a0 + a1 x + a2 x2 + a3 x3 + … + an xn Idea dell’algoritmo L’algoritmo si basa sull’idea di calcolare il valore del polinomio nell’indeterminata x, mediante successive messe in evidenza . 33 Esempio Un polinomio di grado 3 P(x)=a3 x3 + a2 x2 + a1 x + a0 può scrivere nella forma: (a3 x2 + a2 x + a1) x + a0 e ancora come: ((a3 x + a2) x + a1 ) x + a0 . Da cui si ricava una semplice relazione per ricorrenza: y1 = a3 * x; y2 = y1 + a2; y3 = y2 * x; y4 = y3 + a1; y5 = y4 * x; y6 = y5 + a0; 34 In generale p(x)= an xn + … + a3 x3 + a2 x2 + a1 x + a0 avremo: y1 = an * x; y2 = y1 + an-1; … yn-1 = yn-2 * x; yn = yn-1 + a0. In matlab function p=valnewton(a,x,xval) n=length(x); nval=length(xval); p=a(n)*ones(1,nval); for i=n:-1:1 p=p.*(xval-x(i))+a(i); end 35