Approssimazione di dati e funzioni: generalità
Transcript
Approssimazione di dati e funzioni: generalità
Approssimazione di dati e funzioni: generalità Problema: approssimazione di una funzione f(x): – noti gli {fi } valori che la funzione assume nei punti {xi }, i=0,…,n si vuole ottenere una rappresentazione analitica della funzione in un intervallo [a,b] (in genere contenente gli {xi }); – l’espressione analitica della f(x) è nota ma complicata per le operazioni che si intendono effettuare (ad es. integrazione), se ne richiede una rappresentazione più semplice. In generale nota la tabella dei dati {xi , fi }, i=0,…,n si vuol trovare una funzione analitica che approssimi i dati. Per la funzione interpolante è necessario: – selezionare la classe di funzioni F alla quale deve appartenere; – scegliere un criterio per la selezione di una funzione tra quelle della classe F (metodo di approssimazione). Approssimazione di dati e funzioni: classi 1) Pn – insieme dei polinomi algebrici pn di grado n a coefficienti reali: { Pn = pn | pn ( x) = an x n + an −1 x n −1 + L + a1 x + a0 ; ak ∈ ℜ, ∀k } 2) Πn – insieme dei polinomi trigonometrici tn di ordine n a coeff. reali: { Π n = t n | t n ( x) = ∑k =0 [ak cos(kx) + bk sin(kx)]; (ak , bk ) ∈ ℜ, ∀k n } 3) Rn,m – insieme delle funzioni razionali: R n ,m = {rn ,m | rn ,m ( x) = pn ( x) / pm ( x); pn ( x) ∈ Pn , pm ( x) ∈ Pm } 4) En – insieme delle funzioni esponenziali: { E n = g n | g n ( x) = ∑k =1 ak exp(bk x ); (ak , bk ) ∈ ℜ, ∀k n } 5) Sn([a,b],∆) – insieme delle funzioni spline di grado n, ovvero delle n-1 funzioni di C , che si riducono a polinomi algebrici di grado n in ogni sottointervallo di misura ∆ di [a,b]. Approssimazione di dati e funzioni: metodi a) Interpolazione, la funzione approssimante fn(x) è tale che: f n ( xi ) = f i i = 0, K , n Condizioni di interpolazione normalmente impiegata se i dati iniziali sono accurati; b) Approssimazione ai minimi quadrati discreti: la funzione approssimante fm(x) è quella che renda minima la quantità: 2 [ ] f ( x ) − f ∑i=0 m i i n Scarto quadratico ovvero, introdotti i pesi wi: ∑i=0 wi [ f m ( xi ) − fi ] n 2 Scarto quadratico pesato metodo usualmente impiegato se i dati a disposizione sono in numero elevato, la seconda si preferisce se è noto, a priori, l’esistenza di valori ai quali si vuol dare un peso maggiore. App. di dati: interpolazione polinomiale Interpolazione polinomiale: fornita la tabella di dati {xi ,fi}, i=0,…,n, si cerca una funzione di approssimazione appartenente alla classe dei polinomi algebrici che interpoli i dati; si cerca il polinomio di grado minimo che soddisfi le condizioni di interpolazione: pn ( xi ) = f i i = 0, K , n n+1 dati => polinomio di grado n; sviluppando: ∑ ak xik = f i k =0 i = 0, K, n n 1 x0 1 x 1 ⇔ VA = F ⇔ L L 1 xn x02 L x0n a0 f 0 x12 L x1n a1 = f1 L L L M M xn2 L xnn an f n dove le incognite sono i coefficienti del polinomio pn(x). Interpolazione polinomiale: Vandermonde La matrice V dei coefficienti del sistema algebrico è detta matrice di Vandermonde; per la matrice di Vandermonde di n+1 nodi distinti {xi }, i=0,…,n, si dimostra che: det(V ) = ∏ (xi − x j ) ≠ 0 j >i Pertanto V è regolare, quindi esiste una unica soluzione del sistema e quindi il polinomio interpolatore è unico. Teorema: esiste uno ed un solo polinomio pn(x)∈Pn, che verifica le condizioni di interpolazione pn(xi)=fi per i=0,…,n. Problema: la matrice di Vandermonde generalmente è malcondizionata. Interpolazione polinomiale: basi Il polinomio interpolatore è unico ma può assumere espressioni diverse, basta cambiare la base del polinomio interpolatore: – polinomio algebrico. base dei monomi: pn ( x) = ∑k =0 ak xk n ⇔ {1, x, x , K, x 2 n −1 , xn } – formula di Lagrange, polinomi di base di Lagrange: Ln ( x) = ∑k =0 bk lk ( x) ⇔ n { l0 ( x), l1 ( x), K, ln−1 ( x), ln ( x) } Data l’unicità del polinomio interpolatore, è ovvio che: pn ( x) = Ln ( x) Base di Lagrange: formula di Lagrange Dati gli n+1 nodi {xi }, i=0,…,n, gli n +1 polinomi di base di Lagrange sono definiti come polinomi di grado n, tali che: 1 i=k lk ( xi ) = δ ik = 0 i ≠ k n ⇔ lk ( x ) = ∏ j =0 j ≠k x − xj xk − x j Dalla quale ne segue che Ln(xk)=fk: e pertanto per il polinomio interpolatore nella base {li }, i=0,…,n, assume l’espressione di Lagrange: n Ln ( x) = ∑k =0 f k lk ( x) – esplicita comparsa dei valori nodali della funzione; – base indipendente dai valori nodali della funzione; – formula esatta per polinomi di grado minore o uguale ad n; – posto f(x)=1 => ∑li(x)=1,∀x∈ℜ. Base di Lagrange: espressione alternativa Data la tabella {xi , fi}, i=0,…,n, e definendo il polinomio nodale πn(x) come: n π n ( x ) = ∏ ( x − xk ) k =0 la cui derivata prima assume la forma: π n′ ( x) x = x = i π n ( x) (x − xi ) x= x i ⇔ wi ( x) = π n ( x) (x − xi ) si ottiene che i polinomi della base di Lagrange possono essere espressi come: w ( x) li ( x) = i π n′ ( xi ) Interpolazione polinomiale: errori Nella procedura di int. pol. sono presenti i seguenti errori: – Errore di troncamento, dovuto alla sostituzione della funzione analitica con un polinomio interpolante: En ( x) = f ( x) − pn* ( x) dove con p*n(x) si è indicato il polinomio interpolatore ideale, cioè il polinomio interpolare in assenza dell’ – Errore di propagazione, dovuto a gli errori di misura o di approssimazione sui dati (εi=fi−f (xi)): En* ( x) = pn* ( x) − pn ( x) Per cui l’errore totale è esprimibile come: Et ( x) = f ( x) − pn ( x) = f ( x) − pn* ( x) + pn* ( x) − pn ( x) = = En ( x) + En* ( x) Int. polinomiale: errore di troncamento Per l’errore di troncamento nell’int. pol., si dimostra che: f (n +1) (ξ ( x) ) En ( x ) = π n ( x ) (n + 1)! ξ ( x ) ∈ [ a, b] n π n ( x ) = ∏ ( x − xk ) k =0 dove [a,b] è l’intervallo chiuso minimo contenente i nodi ed il punto di interpolazione x. Il punto ξ(x) non è noto a priori e dipende da x; nel caso siano noti (o stimati) i valori estremi della derivata n+1-esima di f(x): Λπ n ( x) λπ n ( x) ≤ En ( x ) ≤ π n ( x) > 0 n +1 ( ) ( ) + n 1 ! + n 1 ! λ ≤ f (x ) ≤ Λ ⇒ x ∈ [ a, b] λπ n ( x) ≥ E ( x) ≥ Λπ n ( x) π ( x) < 0 n (n + 1)! (n + 1)! n M π n ( x) f n +1 ( x ) ≤ M ⇒ En ( x ) ≤ (n + 1)! x ∈ [ a, b] Errore di troncamento: esempio Nodi equispaziati: xi=x0+ih, i=0,…,n; detta s una variabile continua tale che: x=x0+sh, per s=0,…,n coincida con xi=x0+ih, per i=0,…,n, si ha: π n ( x) = ( x − x0 )( x − x1 ) L ( x − xn ) = s( s − 1) L ( s − n)h n +1 = Pn ( s)h n +1 5 1000 5 P7(s) 800 600 3 2 200 1 0 0 -200 -1 -400 -2 -600 -3 -800 -4 0 1 2 3 4 P10(s) 4 400 -1000 -1 x 10 5 6 7 8 • Esercizio consigliato [GL] 3.12 -5 -1 0 1 2 3 4 5 6 7 8 9 10 11 Int. polinomiale: errore di propagazione Per l’errore di propagazione si ha: n n E ( x) = p ( x) − pn ( x) = ∑ li ( x) f ( xi ) − ∑ li ( x) f i = * n * n i =0 n i =0 n = ∑ li ( x)( f ( xi ) − f i ) = −∑ ε i li ( x) i =0 i =0 Se |ει|≤ε si ha: n E ( x) ≤ ε ∑ li ( x) = εΛ( x) * n i =0 n Λ( x) = ∑ li ( x) ≥ 1 (!!!!) i =0 Dove Λ(x) è la funzione di Lebesgue e rappresenta il coefficiente di amplificazione degli errori sui dati; si definisce costante di Lebesgue la quantità: Λ n = max Λ( x) a ≤ x ≤b Funzione di Lebesgue: proprietà Per la funzione di Lebesgue si ha che: – dipende solo dai polinomi fondamentali di Lagrange e quindi solo dalla distribuzione dei nodi; – è maggiore o uguale di uno; – nel caso di nodi equispaziati: xi = xo + ih 2 n +1 ⇒ Λn ≈ en log(n) i = 0, K , n – nel caso dei nodi Chebyshev in [a,b]: xi = b−a π 2i + 1 b + a cos + 2 2 2 ⇒ Λ n ≈ log(n) 2 n +1 π i = 0, K , n Interpolazione polinomiale: riepilogo Il polinomio interpolatore è unico ma può assumere espressioni diverse, basta cambiare la base del polinomio interpolatore: – base dei monomi → polinomio algebrico: {1, x, x , K, x 2 n −1 , xn } ⇔ n pn ( x) = ∑ ak xk k =0 – polinomi di base di Lagrange → formula di Lagrange: { l0 ( x), l1 ( x), K, ln−1 ( x), ln ( x) } n ⇔ Ln ( x) = ∑ f k lk ( x) k =0 polinomi di base di Lagrange: 1 i=k lk ( xi ) = δ ik = 0 i ≠ k n ⇔ lk ( x ) = ∏ j =0 j ≠k x − xj xk − x j Interpolazione polinomiale: errori (riepilogo) – Errore di troncamento: ( n +1) ( ξ ( x) ) f * En ( x ) = f ( x ) − pn ( x ) = π n ( x ) (n + 1)! – Errore di propagazione: n E ( x) = p ( x) − pn ( x) ≤ ε ∑ li ( x) = εΛ( x) * n εi ≤ε * n εi = fi − f (xi ) i =0 i =0,K,n Interpolazione polinomiale: esempio Esempio 6.3.1: Data la tabella di valori per f(x)=1/x: x f(x) 2.70 0.3704 2.72 0.3676 2.74 0.3650 dare un valore approssimato di 1/2.718 mediante il polinomio interpolatore di secondo grado, dare una stima dell’errore, e dopo aver valutato quali cifre si possono considerare esatte, calcolare il logaritmo naturale del numero così ottenuto, confrontandolo con log(1/e). Si eseguano i calcoli arrotondando sulla sesta cifra decimale. Interpolazione polinomiale: esercizio Esercizio [GL] 3.3: scrivere l’espressione del polinomio interpolatore di Lagrange relativo alla seguente tavola di valori della funzione: f ( x) = 2 π ∫ x 0 −t 2 e dt x 0.0 0.4 0.8 1.2 f(x) 0.00000 0.43839 0.74210 0.91031 E stimare l’errore di troncamento nei punti di ascissa ti=0.2(2i+1), i=0,1,2, tenendo conto che risulta: 0 < f ′( x) < 1.13 x ∈ [0,1.2] • Esercizi consigliati [GL] 3.4, 3.5, 7.2 Interpolazione polinomiale: convergenza • Cosa accade se si aumentano il numero dei nodi e quindi il grado del polinomio interpolatore? • L’errore di propagazione, cioè quello associato agli errori sui dati e di approssimazione, cresce. • Cosa accade all’errore di troncamento? • Ovvero, al crescere del numero dei nodi il polinomio interpolatore “tende” alla funzione? • In una unica parola il polinomio interpolatore è una approssimazione convergente della funzione analitica, ovvero in una formula: lim pn ( x) = f ( x) ⇔ lim En ( x) = 0 n →∞ n →∞ Convergenza: funzione di Runge In generale la convergenza non è garantita, ad esempio: f ( x) = 1 1+ x2 x ∈ [a, b] = [−5,5] i(b − a) = + , ( ) x a f x i i n 2.5 f(x) p5 (x) p9 (x) p15 (x) 2.0 1.5 1.0 0.5 0.0 -0.5 -5 -4 -3 -2 -1 0 x 1 2 3 4 5 Convergenza: condizioni sufficienti Teorema: se f(x)∈ C∞[a,b], e, posto |f(k)(x)|≤Mk, k=0,1,…, x∈[a,b] (ad es. funzione con derivate equilimitate), risulta: (b − a) k Mk = 0 lim k →∞ k! pn ( x) = f ( x) uniformemente e per qualunque allora: lim n →∞ scelta della distribuzione dei nodi in [a,b]. Teorema: se f(x) è lipschitziana in [a,b], la successione dei polinomi interpolatori sui nodi di Chebyshev, converge a f(x), uniformemente in [a,b]. Nodi di Chebyshev: definizione e proprietà I nodi di Chebyshev in [a,b] sono definiti come: xˆi = b−a π 2i + 1 b + a cos + 2 2 2 n +1 Inoltre il polinomio nodale costruito sulla base dei nodi di Chebyshev verifica le seguenti proprietà: n +1 ( b − a) max πˆ n ( x) = n +1 x∈[ a ,b ] 2 max πˆ n ( x) ≤ max π n ( x) x∈[ a ,b ] x∈[ a ,b ] dove πn(x) è un qualunque altro polinomio nodale costruito su una base di nodi diversa da quelli di Chebyshev. Nodi di Chebyshev: esempio 1 f ( x) = 1+ x2 x ∈ [a, b] = [−5,5] i(b − a) = + , ( ) x a f x i i n 2.5 p15C (x) p15 (x) f(x) 2.0 1.5 1.0 0.5 0.0 -0.5 -5 -4 -3 -2 -1 0 x 1 2 3 4 5